Splitting atoms in XNU - <AUTHOR> https://googleprojectzero.blogspot.com/2019/04/splitting-atoms-in-xnu.html <comment><USER2> Blows my mind that there's people who figure this stuff out. Do they just spend their day to day time at work attempting all sorts of variations of this kind of stuff? How often does discovery or research like this lead to a dead end?

<comment><USER3> Apple pays handsomely for bugs, they have a bug bounty program (1). At some point there are fewer and fewer exploits and the system becomes harder to crack. All companies who care about security should have security bounty programs.

[https://motherboard.vice.com/en_us/article/qvapxq/apple- ipho...](https://motherboard.vice.com/en_us/article/qvapxq/apple-iphone-bug- bounty-payments)

<comment><USER4> So long as it's an iOS bug of course... the situation with macOS is pretty absurd.

</comment></comment></comment><comment><USER5> _"Quickly dropping a very important lock and retaking it is a common anti- pattern I 've observed across the XNU codebase

[…]

This is trying to detect whether another thread acquired and dropped the lock while this thread dropped it then reacquired it. If so, the code checks whether there's still a vm_map_entry covering the current address its trying to copy and then bails out and looks up the entry again."_

I find that disconcerting. Apparently, the writers of this didn't have a clear model of what locks are needed where, or (worse) they had a model, but knew it didn't work.

Anybody writing that code should have seen this coming.

<comment><USER6> Any sufficiently complex software will at some point require dropping and reacquiring a lock.

The trick is you have to assume everything changed under you when you dropped the lock, and recheck everything

</comment></comment><comment><USER7> That first paragraph is a ride and a half.

Props to Project Zero. There's some seriously talented people on than crew.

<comment><USER8> Indeed, the most impressive part of this is that it's actually half a dozen different exploits carefully chained together to produce the final result. I can't even imagine the amount of perseverance required for each single sub- exploit. Mad props.

</comment></comment><comment><USER9> I constantly get a kernal panic on multiple machines under heavy load of the sort of _trying to interlock destroyed mutex_ from within, according to the backtrace, com.metakine.handsoff.driver. I'm wondering if it's exploitable.

<comment><USER10> Is that a third party kernel extension? Sounds like a buggy one if so, and if it's this <[https://www.oneperiodic.com/products/handsoff/>](https://www.oneperiodic.com/products/handsoff/>) then it might be lessening security instead of increasing it.

<comment><USER11> Yeap. I wouldn't say lessening unilaterally but with the nuance of changing the attack surface in different areas. IIRC "Hands Off!" is a firewall and an app firewall that can selectively limit disk and network access.

</comment></comment></comment><comment><USER12> Great deep dive into iOS use of tagged memory, and a good example that security needs to go all the way down the stack to actually be effective.

</comment><comment><USER13> That is one contrived exploit.

</comment><comment><USER14> That TL;DR is super condensed...

</comment><comment><USER15> Why did they post this on April Fools?

At first I thought this was a convoluted HalfLife reference [https://half- life.fandom.com/wiki/Xen](https://half-life.fandom.com/wiki/Xen)

</comment><comment><USER16> It would be interesting to see how many of these bugs would be possible if an operating system written in Rust would be used.

I would treat any code allocating / deallocating / moving / locking memory by hand instead of using higher level constructs unsafe now that we know that it's possible to automate checking safety of the operations.

</comment><comment><USER17> I just noticed that they renamed Project Fi to just Google Fi. When I first saw this post, due to _Project_ in the name I thought it was Google Fi. Good on them for changing the name. Maybe it's a sign that Google will be more consistent in their naming in the future.

<comment><USER18> I'm surprised they're still using a blogspot subdomain . Something like zero.google or projectzero.google would work (with redirects for existing links)

<comment><USER19> 0.google would be nice.</comment></comment></comment>


May the 404orce be with you. GitHub Awesome Error Page - <AUTHOR> http://easycaptures.com/fs/uploaded/684/3388505838.jpg <comment><USER2> I'm not certain, but I suspect many of the different variants in the Octodex had a 404 page at some point.

[http://octodex.github.com/](http://octodex.github.com/)

</comment><comment><USER3> The link just redirects me to this ad, hosted on imgur [http://i.imgur.com/sOhJVBq.jpg](http://i.imgur.com/sOhJVBq.jpg)</comment>


Understanding schizophrenia: What exactly is schizophrenia? - <AUTHOR> http://www.paulmorrison.org/understanding-schizophrenia-what-exactly-is-schizophrenia/ <comment><USER2> I was diagnosed with schizophrenia and ten years later, bipolar.

I didn't trust that western psychiatry could heal the underlying causes so I basically just shut up about it for a decade.

After about 10 years, I was suicidal and couldn't ignore it anymore.

My intuition told me to find another way, so I started to research on my own. I found a way through that involved MDMA therapy, NARM therapy, holotropic breathwork, and creating a loving romantic relationship.

I now live symptom-free, with no medication, and am really grateful I trusted my intuition and made my own path.

<comment><USER3> I am very happy for you. It is great that you are able to recognize your schizophrenia. Many people who suffer from schizophrenia also suffer from anosognosia, which is a condition of not being able to recognize one's illness.

A person close to me is suffering from schizophrenia. We found, to our surprise, that anti-psychotic medications work very well. It changes a person who is not able to function (delusions, disorganized speech, unable to focus or carry conversation, very poor judgement and actions that result in total loss of all possessions and homelessness) back to a person we know well and who can be a normal member of society.

Unfortunately, they don't recognize any of their past symptoms. Eventually they stop taking medication (which is logical on their part, because why would you take medication, if you are not sick?), and a scary slide back begins.

Imagine, if sometime last week, family or friends came to you and told you that you have schizophrenia, and that you should take medication because you have delusions. You don't know what they are talking about. If this happened to you, what would you do? This is the situation many find themselves in.

For any mentally healthy person out there who finds themselves surrounded by loved ones telling them they may have schizophrenia and to please get treatment - please do, even if that sounds ridiculous to you. If you are on and off medication, keep a journal to record how you feel. Do not rely on your own judgement alone - please listen to your friends and loved ones.

<comment><USER4> This kind of stuff is super scary for me. Although I don't suffer from any mental illnesses (that I know about!), I take medication for high blood pressure. At one point I was taking amlodipine which eventually caused some bad side effects with swollen legs and the like, so I changed to a different medication. Pretty quickly, I noticed that my life was dramatically better and, for want of a better word, I wasn't in the least depressed.

I've never suffered from depression before, so I hadn't been aware of how depressed I had gotten while taking amlodopine. After switching, I checked the known side effects and sure enough depression is one of them -- to the point where some countries have disallow its use!

It really surprised me how much this drug affected my life without my noticing _anything_ out of the ordinary. What's even more interesting is that this summer I got very stressed about work (something that has never actually happened before) and ended up having a panic attack. So _now_ I'm wondering about the new medication! It's crazy.

The big thing that I keep thinking about is, how much of my state of mind is "me" and how much is my medication (or any other things, like drinking coffee, or beer, or not exercising enough, or whatever). It's made me much more conscious about monitoring my mental state and taking some actions rather than just assuming everything is OK. But it's incredibly scary. I've had quite a few friends with mental illnesses and this helps me understand a tiny bit better what they are going through.

Oh, and +1,000,000 on the journal. It's the only way I can keep track of what's going on in my head.

</comment></comment></comment><comment><USER5> I've been diagnosed with Delusional Disorder after a long term infection with the Epistein Barr Virus. I spent a period of time in a deep psychosis. What it seems like now is my brain trying to make meaning out of something traumatic. I believed I was one of the most important people in the world when I was in a state of shock. The delusion still persists despite heavy doses of psychiatric drugs.

<comment><USER6> How does the delusion persist if you've clearly just stated that you realize it's a delusion?

<comment><USER7> It doesn't matter if you consciously know something is false if your brain still presents it as true.

Think anxiety. Or like on the movie A Beautiful Mind (I know it's a movie but it happens IRL too). Or being under the influence of some psychedelics (you know you're under the influence but it still feels like reality).

</comment></comment></comment><comment><USER8> I'm surprised the article still considers schizophrenia as a single entity, when evidence points to there being several diseases with symptoms overlapping to some degree...

<comment><USER9> At the bottom it says that the next post will be on what causes schizophrenia, and I imagine the author will get into the different diseases there.

</comment></comment><comment><USER10> Schizophrenia is not a disease and never was. It is behavioral disorder.

Who is then defining what is schizophrenia?

Is it a physician? Does it have any pathological evidences?

The clear answer is NO.

So it cannot be a disease.

It is defined by psychiatrists by voting the "disorders" in their meetings of American Psychiatric Association. Such disorders are then published in the Diagnostic and Statistic Manual: [https://en.wikipedia.org/wiki/Diagnostic_and_Statistical_Man...](https://en.wikipedia.org/wiki/Diagnostic_and_Statistical_Manual_of_Mental_Disorders)

Further, by researching, one will come to conclusion that those mental disorders are added and removed as their assembly wants it. Or whatever the lobby wants.

It would be good to review the writings of Dr. Thomas Szasz:

[https://en.wikipedia.org/wiki/Thomas_Szasz](https://en.wikipedia.org/wiki/Thomas_Szasz)

[https://www.cchrint.org/about-us/co-founder-dr-thomas- szasz/...](https://www.cchrint.org/about-us/co-founder-dr-thomas-szasz/quotes- on-his-book-the-myth-of-mental-illness/)

For human problems there exist human solutions.

How can be a "disorder" which cannot be pathologically proven be "healed" by taking more and more drugs?

<comment><USER11> I'm schizotypal, which is basically schizophrenia lite... pretty sure there's nothing "behavioral" about my recurring auditory hallucinations of a brass band playing nonsense music.

<comment><USER12> I think the parent is challenging the circular definition used by psychiatry. Aka you hear voices, therefore you have schizophrenia and you have schizophrenia which is why you hear the voices.

For example, I found the following texts thought provoking:

[http://behaviorismandmentalhealth.com/2010/01/21/schizophren...](http://behaviorismandmentalhealth.com/2010/01/21/schizophrenia- is-not-an-illness/)

[http://behaviorismandmentalhealth.com/2013/01/03/schizophren...](http://behaviorismandmentalhealth.com/2013/01/03/schizophrenia- not-an-illness/)

</comment></comment></comment><comment><AUTHOR> This is the first post in a series about schizophrenia, and will discuss the difference between schizophrenia and other forms of psychosis.

<comment><AUTHOR> (For clarity, I didn't write this article).

<comment> ryan-allen Thanks for writing it. I'm looking forward to reading the rest.

</comment></comment></comment><comment><USER13> I have a good friend who was diagnosed with schizophrenia before he graduated high school. It was very tragic to watch. Who was once such a bright and capable person, can no longer function in normal society. I found it very difficult to invite him places. Often times I would need to back him up in a physical fight. He wasn't violent, simply incapable of seperating reality from what he saw, often times taking the form of disturbing subjects such as women or children being raped. And being the good person he was at heart, would not let something like that go, but would rather confront it right on. At wich point the person being accused of such a heinous act would do one of two things; Realize the guy clearly has some kind of mental issue and leave the area a bit shaken but no worse for wear, or more frequent the case, challenge him to a fight, even assaulting him with deadly weapons in some cases. When he wasn't engaged in some form of direct confrontation, he would be yelling racial slurs at the tormentors in his head. And the torment was constant. I am sorry to say there was even a period in my life when I stopped being a friend and started being someone concerned with ones own social standing, wich of course in my mind, had no room for any social pariahs tagging along.

Fast forward 10 years when his mother passes away, his other family had written him off long ango, and we find our tragic hero homeless, with symptoms noticeably worse than before. being the only person he trusted, it was up to me to get him the help he needs. It was the hardest thing I've ever had to do. I gave him a room in my house, which was the least I could do really, and even helped cosign for a car. But all of this mattered little in changing his actual situation, which still seemed to be getting worse not better. The challenge for me was balancing the line between being a friend, and being just another person trying to convince him his mental model is faulty and he needs treatment. For one reason or another he absolutely refused to go. He called that place rape factory, and insisted he'd rather be homeless then spend even a single night there. And who am I to hold the definitive truth on reality? Where I saw dysfunction, he saw a "gift of sight," only a few are capable of. In the end, I'm afraid that my unwillingness to convince him he has a problem is coming more from a position of weakness rather than strength. Had I been able to convince him to get treatment, than perhaps he wouldn't be in jail today, and I wouldn't have lost the lease to my house; ultimately leading to my own homelessness to this day.

Despite all of the headaches, I learned some valuable lessons from Ben. Mostly, don't worry so much what other's think of you. Take life as it comes without being so serious all the time. And reality is not some fixed thing, and is mostly a function of the beholder.

<comment><USER14> I have a sibling who's in and out of the mental hospital. It's easy to show support in the early days, but ten years in when they still have psychotic breaks and most around them have given up is when the real test starts. Glad to hear your story and wish you the best. For myself I've vowed to never forget the person who was there before the illness. You still see the glimpses here and there

<comment><USER12> I also have a sibling like that. But there's no ifs or buts, when the situation gets worse, off to the institution you go until you get back to normal. At first, you cry and sob, it's hard seeing them strapped to a bed. But tough love is the best love, when everything else fails. Now he is on injections and there is no more horsing around about taking or not taking pills.

</comment></comment></comment><comment><USER15> Maybe this is because I've been watching Maniac but I've been thinking about this. My hypothesis is based upon the idea that the brain's main purpose is to make sense of the world and to do that it makes predictions and theories of "world" as it goes about.

Schizophrenia just seems like this process on overdrive where some of the key processes involved with keeping this overall process stable go awry. One of these minor processes is probably a belief process where the brain classifies things by True / not True. Since minor psychochis can occur to recreational drug users using psychedelics that make their mind more open to ideas, this seems to make sense to me.

<comment><USER16> It seems more like a defect in attention, but not a deficit; it's an overabundance of attention to irrelevant details that the brain ascribes significant meaning to. The reason I have this hypothesis is that ADHD patients tend to have lower concentration of dopamine, whereas schizophrenics have a higher concentration than normal.

An example would be ascribing significant meaning to an event that is random. But for the schizophrenic the event isn't random, it's the result of a persecutory delusion, at least in the paranoid variant. It looks very close to religious thinking, but in a negative way: "The dry cleaners I go to are secretly a front for a shady government organization that is attempting to study my every action"

<comment><USER17> On a lower level, the brain has two hierarchies of synapses: a top-down processing hierarchy, driven by the neurochemical AMPA, and the bottom-up processing hierarchy, driven by the neurochemical NMDA. These hierarchies have salience passed back and forth between them by dopaminergic and adrenergic signalling from other brain regions. Whichever side of processing is "dominant" at the time, is training its dual to respond with the signals the active side is receiving, in response to the signals the active side is sending. Additionally, the bottom-up processing hierarchy is wired to your senses and your motor neurons.

In short, the top-down processing hierarchy is "the model", and the bottom-up processing hierarchy is "the evidence." The brain switches between using the evidence to train the model (when the evidence is salient and the model is weak), and using the model to predict and "fill in for" the evidence (when the model is salient and the evidence is noisy.)

It would make a lot of sense to me if psychosis were simply a result of chronically overdriven AMPA signalling, such that evidence is always being "fit to" the existing model, with the bottom-up hierarchy never being granted enough dominance to use the evidence to _correct_ the model.

<comment><USER18> This is fascinating. I grew up with a schizophrenic parent and relatives. My interpretation has been that the disease is a defect in the systems that weights between internal models and external evidence.

It's interesting that to know that there might be a fairly straight forward mapping of the to brain chemistry/neural mechanisms.

Do you any references the AMPA signaling pathways and associated neurological structures that you can recommend as a starting point?

</comment></comment></comment></comment><comment><USER19> My landlady's son is schizophrenic. Could a diet of alcohol, pot, and sugar and carbs make the condition worse?

<comment><USER20> Alcohol and pot, yes, though use of the two are common because of addiction and self-medication. The other two, no.

<comment><USER21> Ketogenic diet showed better results in treating bipolar disorder than medication. Bipolar disorder and schizophrenia seem to have to do with mutant mitochondria which metabolize differently. Fed a normal (carb-heavy) diet they are unable to produce sufficient energy, which leads to neurological degeneration.

<comment><USER22> I think link to sources would help here.

<comment><USER23> A finding of this magnitude which was actually proven in a way that the post seems to suggest would not be something you see only in one hacker news comment, because it would be _huge_.

<comment><USER20> This.

Not to mention all of the other variables to check, such as simply putting less energy into food prep (less stress) and so on.

</comment></comment></comment></comment></comment></comment><comment><USER5> 40% of cases of schizophrenia are from the immune system attacking synapses in the brain.

<comment><USER24> Do you have any links to research or papers on this? Thanks.

<comment><USER5> [https://www.nature.com/articles/s41380-018-0235-x](https://www.nature.com/articles/s41380-018-0235-x)

<comment><USER25> Thank you.

Any tips for lowering inflammation? I only know of these; lower intake of alcohol, sleep well, kurkuma, aspirin.

Just as a datapoint, I suffer from psychosis and experience a good response to aspirin.

<comment><USER24> CBD oil is a very powerful anti-inflammatory; CBD can be more effective for people if mixed with some THC, CBD counteracts the psychoactive properties of THC, however I believe THC is contraindicated for the diagnosis of schizophrenia?

<comment><USER25> Thank you. CBD oil is something worth to try out then.

THC delivers the high in the weed. I know people who use pot, but I stay far away from it.

<comment><USER26> probably a good policy - THC exacerbates the inflammatory symptoms that CBD alleviates. There's a theory that older people who used to self-medicate with CBD-rich cannabis in their youth are now doing more harm than good because of increased breeding for higher THC content.

</comment></comment></comment></comment></comment></comment></comment><comment><USER27> it'd be great if you also dove into the other less known schizotypees like _schizoaffective_ and _schizotypal_ aka "Schizophrenia _Lite_ "

I think people have an idea of what schizophrenia looks like but they might be surprised by other very closely related disorders.</comment>


How Discovery Will Drive Transactions - <AUTHOR> http://techcrunch.com/2011/08/21/how-discovery-will-drive-transactions/

<comment><USER2> Good post. No one has cracked the discovery nut well in e-comm yet. If they do though, the bigger challenge will be monetizing effectively. You don't want to end up like Yelp, waiting for a Groupon to leapfrog you.

Inspyr (www.theinspyr.com) has an interesting take on the monetization, and unique UI to boot.</comment>


Microsoft to delete Bing users' IP addresses after 6 months - <AUTHOR> http://arstechnica.com/microsoft/news/2010/01/bing-beats-google-but-not-yahoo-in-keeping-search-records.ars <comment><USER2> Wow, they are doing something right?</comment>


The best knowledge source of exclusive designs - <AUTHOR> https://www.everious.com

<comment><USER2> Nice site.

You probably don't need the splash screen though. It a blocker to the user in getting to the information contained within. I clicked the the "Browse Knowledge" link first and spent a few minutes happily discovering information about the history of industrial design. However when I went back and clicked "Discover design" I thought I had landed on a poor pinterest clone for product design.

Personally I think the Commentary on the items is your USP and it should be front and center. Possibly allow users to filter between the imagery and the posts within in the same view.

All of this aside I have bookmarked your site I like it a lot. Great work and good luck.

<comment><AUTHOR> What do you think about a grid/list view switch in the listing page, by clicking that, you can switch between grid and list view? Thanks.

<comment><USER2> That sounds perfect. It is probably best to make the default view a list. [http://blog.getprismatic.com/list-beats-grid-linear-feeds- pe...](http://blog.getprismatic.com/list-beats-grid-linear-feeds-perform-two- to-three-times-better-than-grids-2/)

<comment><AUTHOR> Great to know this! Thank you so much for your input!

</comment></comment></comment></comment><comment><AUTHOR> Could you please give us some feedback on our just launched website? We are a small startup company.

Name: Everious / www.everious.com

Pitch: The best knowledge source of exclusive designs

More Details: At Everious, you can - Discover and upload designs that you love. Share your knowledge with other design addicts. Make friends and enjoy more fun of designs.

Looking for: Your feedback is very much appreciated.</comment>


Facebook Buys a Stake in $450M Asian Undersea Cable Consortium - <AUTHOR> http://www.pcworld.com/businesscenter/article/258844/facebook_buys_a_stake_in_450m_asian_undersea_cable_consortium.html

<comment><USER2> It is not about net neutrality, it is about them buying bandwidth as cheaply as possible. 54.8Tbps now split in some proportion amongst the investors, 2.5x that once they upgrade to 100Gbit optics.

</comment><comment><USER3> Super high-speed connections between South East Asia, China, and Japan will benefit everybody. It will be the backbone of cheap hosting in the SEA region.

</comment><comment><USER4> Sounds like "outside are of core competency" to me. What does anyone a Facebook know about undersea cables?

<comment><USER5> What does anyone at Facebook know about throughput? A lot(1).

(1) - <http://gigaom.com/2009/12/16/facebook-dyno/>

</comment></comment><comment><USER6> anyone else worried about net neutrality?

<comment><USER7> This has nothing to do with net neutrality. Pretty much every big company in the world has their own backhaul connections between their data centers; not everything goes over the public Internet and not every piece of electrical wire or fiber optic cable is for the public Internet. In fact, the Internet itself is just a bunch of private networks that have agreed to exchange traffic.

<comment><USER8> Do you think Facebook is investing in infrastructure to reduce their own network costs (by traffic swaps)?

<comment><USER9> There are many reasons for this, not just cost, but also link quality, latency, non-contention etc...</comment></comment></comment></comment>


Chrome 20 Takes Over Adobe Flash On Linux - <AUTHOR> http://www.phoronix.com/scan.php?page=news_item&px=MTEyNzc

<comment><USER2> This is good news for Flash, but it does make me sad. Not because it means Flash will continue to be around, but because I really don't like Chrome on Linux.

Don't get me wrong, I love Chrome. I use it on Windows all the time. But Linux has this little niggle I can't stand with default browser behavior: Firefox calls it "browser.urlbar.clickSelectsAll". And Firefox allows you to change that to true or false.

I'm not often changing small bits of a URL; when I click the URL bar it's for the specific intent of removing what is there and replacing it with something completely different. I understand the arguments for both use cases. Firefox does as well. The Chrome developers don't. In searching their bug tracker, you find the Chrome guys don't consider this a bug [1] (it's really not) but worse yet, don't plan on having the option to change this behavior. That's poor customer service, and inconsistent with Chrome on Windows. When I switch between OSes as often as I do, the last thing I want to worry about is how my browser will behave on this machine vs that one.

So now if/when I want to use Flash, I have to switch from Firefox to Chrome. When I'm done using Flash, I have to switch back. Google, please... please don't tell me about your keyboard shortcuts, don't tell me to click three times, don't tell me to click and drag... if you're making me use your browser, let me use it the way I want to. The way it works on Windows or even in Firefox.

[1] <https://code.google.com/p/chromium/issues/detail?id=26140>

<comment><USER3> _Do not try and bend the spoon. That is impossible. Instead, only try and realize the truth - there is no spoon. Then you will see it is not the spoon that bends, it is only yourself._

Eg - when you can't adapt the world to yourself, adapt yourself to the world. Don't get emotionally affected by every little annoyance in the world and especially technology, that way madness lies.

Eg - pick a workaround, go with it, habitualize it, then move on. Personally I like click address bar, then almost simultaneously CTRL+a. tjoff's ALT-d is awesome too, didn't know about that one.

<comment><USER4> _Don't get emotionally affected by every little annoyance in the world and especially technology, that way madness lies._

Madness, but occasionally madness and change. The OP and his angry cohort are trading their collective sanity for thousands of mostly invisible minor improvements that make the world a better place.

I mainly use Chrome on Mac, but also hate this behavior. Yes, clicking on an insertion point, cussing, and using Ctrl-A works if I want to select the beginning of the URL, but if I wanted to do this I would have stuck with the keyboard and not bothered carefully selecting my insertion point.

Rage on OP!

</comment></comment></comment><comment><USER5> This is exactly why relying on plugins and closed-source components for the web is dangerous. Adobe can just decide to stop supporting a platform (Linux), and only companies partnering with Adobe (Google) get to keep using Flash.

</comment><comment><USER6> Does that include a fix for the smurf bug?

[https://bugbase.adobe.com/index.cfm?event=bug&id=3109467](https://bugbase.adobe.com/index.cfm?event=bug&id=3109467)

Unfortunatelly, the last and final release of Adobe Flash for Linux has a bug, which shuffles the colors in Youtube videos. So far it seemed they never fix that.

<comment><USER7> You can fix that by disabling hardware acceleration.

Right click on a flash element -> settings -> untick

<comment><USER8> Took me 3 months of hallucinogenic youtube videos for me to discover that.

</comment></comment></comment><comment><USER9> What will happen to Flash on the Ubuntu LTS releases? Will it be automatically removed at some point?

<comment><USER10> Adobe is still providing bugfix versions of the 11.2 tree for NPAPI linux.

</comment></comment><comment><USER11> Phoronix is currently down, but there wasn't much to this story to begin with:

[http://webcache.googleusercontent.com/search?q=cache:www.pho...](http://webcache.googleusercontent.com/search?q=cache:www.phoronix.com/vr.php%3Fview%3DMTEyNzc&hl=en&prmd=imvns&strip=1)

 _Google's Chrome web-browser reached version 20 yesterday and for Linux users this marks the point that the web company has taken over Flash Player support on Linux from Adobe using its PPAPI implementation.

As shared back in February, Adobe is abandoning support for Flash Player on Linux. However, they are allowing Google to continue the Flash Linux support via a PPAPI (Pepper) plug-in, which right now is a plug-in API only implemented by the Chrome/Chromium web-browser.

In March Adobe pushed out the last major Linux update meanwhile today with Chrome 20 we have the Google-maintained Flash by default for Linux x86 and x86_64 users.

The Google Chrome 20 release announcement can be found on their blog, but it's not too exciting. Aside from supporting the new Flash implementation for Linux users, there's bug-fixes and the usual round of other enhancements._

</comment><comment> chao- Crossing my fingers that Chromium will stop finally yelling at me about my outdated* Flash.

*While providing a helpful link to solutions that don't work.

<comment><USER12> Yes, it stops moaning and groaning about that in v20.

On a side note, Google Chrome/Chromium's at version 20 already?

<comment><USER13> Welcome to the infinite version.

[http://www.codinghorror.com/blog/2011/05/the-infinite- versio...](http://www.codinghorror.com/blog/2011/05/the-infinite-version.html)

<comment><USER12> I'm actually looking forward to running a v100 piece of software. I don't think I've ever seen software reach that monumental milestone, although I expect I will next year.

I wonder whether Firefox or Chrome will win the race.

</comment></comment></comment></comment><comment><USER14> For what its worth, I have an Nvidia card and am running Ubuntu 12.04: Chrome's Flash plugin does not work very well on the latest dev build; it has some weird issue with playing flash at double speed or something. I had to switch back to Adobe's flash plugin until this issue is resolved... This could potentially be hardware specific in my case, but, just wanted to let others know that Adobe's plugin still works.

<comment><USER15> I've experienced the same issues. Some sites, like Udacity, is borderline broken for me. I applaud the effort to move off the Adobe plugin, but it's important to remember that to the end user, we just really care about how well it works. In the meantime, I've gone back to using Firefox.

</comment></comment><comment><USER16> Google is so invested in Flash at this point. Why don't they just take over/buy "Flash" with it's engineers from Adobe? Probably hard to separate them from the Air team and all the other "products" from Adobe.

<comment><USER17> Are they really? I'd say they are far more invested in WebKit, HTML5 and Java.

<comment><USER18> The only things I can think of are Flash in YouTube provides far more control over playback for things like downloading, ad delivery etc.

But fundamentally... Street View. I can't see how that will be delivered with high performance by HTML5 any time soon.

<comment><USER7> It doesn't seem that unlikely, street view is mostly a fancy slideshow.

<comment><USER19> It does some pretty sweet 3d-aware image manipulation. I wouldn't call that a slide show.

<comment><USER7> On the client end?

<comment><USER19> Yes.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> Does this mean Flash is being executed in the native client sandbox as well? If so, hooray! (and can we enable this on other platforms)?

<comment><USER21> No. Adobe has stopped supporting Flash for Linux. Google has announced that they continue to maintain Flash for Linux, but only for Chrome. Google has been bundling Flash with Chrome for a while, so this announcement is simply that Google won't stop doing what they've already been doing.

</comment></comment><comment><USER22> For one happy moment i was expecting a working open source implementation. Then i crashed on the ground...

<comment><USER23> I played yesterday with some SVG demos again and with Raphael JS library. We need to invest more efforts into open source technology instead of trying to patch existing proprietary and inefficient solution.

</comment></comment><comment><USER24> what is this news? can somebody read and try to explain me/all what exactly is happening here?

<comment><USER25> iirc Adobe has dropped NPAPI support for browsers on Linux, leaving Chrome on Linux as the only browser that support the new PPAPI interface.

So if you want to use new versions of Flash on Linux, you have to use Chrome.

<comment><USER26> Obviously Chromium supports PPAPI too, but as far as I can tell the PPAPI version of Flash isn't available for it so the official Google-branded Chrome releases really are the only option for Flash on Linux.

<comment><USER27> The only option to get _newer_ versions of the Adobe plugin. The 11.2 branch will get security updates into 2017 (2012-03-27 + 5 years): [https://blogs.adobe.com/flashplayer/2012/02/adobe-and- google...](https://blogs.adobe.com/flashplayer/2012/02/adobe-and-google- partnering-for-flash-player-on-linux.html)

</comment></comment></comment></comment><comment><USER28> Hopefully this will lead other browser makers to integrate Native Client as well which would lead to a world free of browser-plugins!

<comment><USER29> Native Client Flash isn't available for Chromium, which obviously implements NaCl, so I don't see why other browser makes implementing NaCl would let them use NaCl Flash.

<comment><USER27> PPAPI flash works in Chromium, scan this thread (unless that was your point). It's just that the fully open-source browsers aren't interested in setting up a distribution channel for it.</comment></comment></comment>


Interpol's New Software Will Recognize Criminals by Their Voices - <AUTHOR> https://spectrum.ieee.org/tech-talk/consumer-electronics/audiovideo/interpols-new-automated-platform-will-recognize-criminals-by-their-voice <comment><USER2> Reinhard Heydrich, architect of the Holocaust, was Interpol President 1940-42.

[1] [https://en.wikipedia.org/wiki/Interpol#History](https://en.wikipedia.org/wiki/Interpol#History)</comment>


Lessons I wish I had been Taught - <AUTHOR> http://alumni.media.mit.edu/~cahn/life/gian-carlo-rota-10-lessons.html <comment><USER2> Some excellent points even for a non-maths guy like me. And I learned a new word: incunabulum.

</comment><comment><USER3> Rota's reflections, anecdotes, and musings are always a good read. I enjoyed his book of essays (with Jacob Schwartz and Mark Kac) "Discrete Thoughts"

[http://books.google.com/books?id=5waLQ06J9VwC&pg=PA1&...](http://books.google.com/books?id=5waLQ06J9VwC&pg=PA1&lpg=PA1&dq=rota+discrete+thoughts&source=bl&ots=4ciczbh_cT&sig=Q_xO4eleD1-SGHTRLVXNBUICAgo&hl=en&ei=HqG8TpP- FITbiAKqgIWBAw&sa=X&oi=book_result&ct=result&resnum=1&ved=0CBoQ6AEwAA#v=onepage&q&f=false)

and I see he has another called "Indiscrete Thoughts".

</comment><comment><USER4> Point 5 reminds me of this: [http://en.wikipedia.org/wiki/Differentiation_under_the_integ...](http://en.wikipedia.org/wiki/Differentiation_under_the_integral_sign#Popular_culture)

</comment><comment><USER5> He was a fine professor, and these notes captured his attitude in the lecture hall pretty well.

</comment><comment><USER6> Uh, isn't citing papers that have nothing to do with your paper unethical or plagiarism and could be seen as padding your paper? I don't think citing sources that have nothing to do with your paper is a good idea...

<comment><USER7> Not really. Plagiarism means something else, and padding your paper or citing some random guy doesn't help you in any way. (A lot of work is done to _shorten_ papers to get them under journals' page limit, and many have at least a full page of citations.) And he only did it once; if nothing else, he can plausibly say "I had these papers on my desk, had a deadline, and wanted to make sure I wasn't accidentally using their work without giving credit".

[I'm doing a PhD in crypto after my MSc in math, my girlfriend is doing her PhD in math, lots of friends are mathematicians.]

</comment></comment><comment><USER8> Loved this:

Richard Feynman was fond of giving the following advice on how to be a genius. You have to keep a dozen of your favorite problems constantly present in your mind, although by and large they will lay in a dormant state. Every time you hear or read a new trick or a new result, test it against each of your twelve problems to see whether it helps. Every once in a while there will be a hit, and people will say: "How did he do it? He must be a genius!"

<comment><USER9> In Brazil there is a saying, "água mole em pedra dura, tanto bate até que fura", which means something like "Soft water on hard rock will eventually poke holes in it", but it sounds way less folksy than the original.

<comment><USER10> Unusually, the German version is much more concise:

Stetes Wasser höhlt den Stein.

<comment><USER11> My apologies, but I can't resist playing with national stereotypes:

German vs. Brazilian (Portuguese)

I think the best English approximation of the German version is: Steady water drills the stone.

First we see that the German at once describes and commands the actions: "drills". There is no time measure here, the point is the damn rock's getting drilled and that's that.

In Brazilian/Portuguese the talk is of eventually. As in, sure it's inevitable but the stone and the water will have a lot of time together, they will change over time.

Next we can observe that while Portuguese/Brazilian provides details, like many holes, the German is light on flowery detail, one hole, many holes, not relevant to the pain point, which is: rock->drilled rock.

Lastly we can see the German implies the stone is hard, hard is the default nature of all things in Germany, especially stones.

The Portuguese/Brazilian on the other hand specifically qualifies the stone as hard, presumably because Brazil is filled with soft stones, gently dancing under the feet of girls in Ipanema.

<comment><USER10> Made me smile... or would have, if I wasn't a German Very Serious Person. ;)

I don't think "drill" is such a good translation though. Höhlen comes from "Höhle", meaning "cave". Maybe a better translation:

Steady water hollows the stone.

And you got to admit that the "German assumption of hardness" is actually pretty accurate when it comes to stones! (Except those in Brazil, presumably.)

</comment></comment></comment></comment></comment><comment><USER12> Lesson #1: Which words in a sentence need to be capitalized.

</comment><comment><USER13> I figured out most of these aspects of the academic game before I bomed out of it.

<comment><USER14> I am unfamiliar with the verb "to bome".

<comment><USER15> <http://www.urbandictionary.com/define.php?term=bome> "Verb, " I just Bomed that math test!" (Meaning you did a good job)"

Although based on context, I'd guess a misspelt "bombed"?

<comment><USER16> I think "bowed" is far more likely.</comment></comment></comment></comment>


Ross King on his book "Leonardo and The Last Supper" [audio] - <AUTHOR> http://www.cbc.ca/asithappens/features/2013/01/25/ross-king-on-his-book-leonardo-and-the-last-supper/

<comment><AUTHOR> I highly recommend taking half an hour and a cup of tea and listening to this. It is so interesting that I actually found it thrilling.</comment>


Ask HN: Intellectual Property in A.I. Consulting? - <AUTHOR> Hi HN,
I'm about to launch a small AI/ML consulting group (we're US-based).  We want to be able to own and spin out any commercializable technology we develop in the project. (Without infringing on clients' IP.[1])
How do we define "IP" when it refers to architectures, math, and systems? How do we write our agreements so that we own that IP, rather than our clients?
[1] We see it similar to a consulting firm like McKinsey – we can't sell a competitor the trade secrets/IP of our clients, but any approaches to solving the problem should be ours to sell. (Except in our case, we are developing protectable IP, not just knowhow.) <comment><USER2> How you draft your contract agreement with clients will be significant to the success of this business model. Also, will you be developing your protectable IP during or after each client engagement or prior where you use your R&D result as a solution for the client?</comment>


This Company Might Make Apple and Google Irrelevant - <AUTHOR> https://shift.newco.co/this-little-company-just-might-make-apple-and-google-irrelevant-af161f320cb8#.853c0dtqa <comment><USER2> This article lost me when it pretended that search engines did not exist before Google, and that all we had were portals. Search engines did exist, and they were pretty good. Google was pretty good too, but to pretend it was the first good one is ludicrous.

Also when it felt it had to censor the word "shitshow." It's ok to say "shit" on the Internet. And it's arguable the current ecosystem is way more of a shitshow with all the tracking, underhanded ads, and spammy content. I don't look forward to having a shitshow intermediated by an AI who I can't get around because it decides what to serve me.</comment>


Ask HN: Have YC alumns seen adverse effects from pricing common stock early? - <AUTHOR>

It is my understanding that it can be advantageous for both the investor and entrepreneur to use preferred stock in early financing deals.  From the entrepreneur's perspective the common stock value will remain low.
Has anyone seen effects in practice, perhaps surrounding recruitment, of pricing common stock early for a YC (or other) deal?
Part two: Right now our company has 10M common shares, with a par value of .00001.  Is there a "trick" that incubators use to keep the common stock value low when dealing with such small investment amounts?
Edit: formatting. <comment><USER2> Yes to the first question... this is pretty common. But do yourself a favor and hire a decent attorney to help you. Financing missteps can kill your company and/or make future financing much more challenging.</comment>


RNTS Media buys mobile ad network Heyzap (YC W09) for $45M - <AUTHOR> http://venturebeat.com/2015/12/23/rnts-media-buys-mobile-ad-network-heyzap-for-20m/ <comment><USER2> They had $13MM in annual revenue (in 2014) and were acquired for $45MM (~3.5x). Interesting.

<comment><USER3> They will end the year with $20m revenue and the deal is $20m cash plus incentives. So effectively a 1x deal at the outset, rising to 2x if they meet performance and retention goals.

<comment><USER4> Me thinks the future is not looking too bright.

</comment></comment></comment><comment><USER5> Congratulations to Jude & Immad on getting to exit. They are some of the hardest working entrepreneurs I know. And it wasn't plain sailing.

</comment><comment><USER6> This seems like a weird acquisition given HeyZap's claims they were profitable since mid-2014.

In the spirit of numerous recent articles, given they raised $8m and were acquired for only $20m cash, this sounds like a bust for everybody but the founders. For example, a 1% pre-A options package fully vested would probably be diluted to roughly .2% (or less!) and is worth $32k. Pretax. Yes there are earnouts but I haven't heard of too many of those being paid.

Also, I hold shares in a private adtech company. The valuations of the handful being acquired or going public aren't propitious for me.

<comment><USER7> But I'm sure those employees were paid a high salary, so the mediocre return is fine. Right? Right? They totally made more money off this startup than just working at someplace bigger.

<comment><USER8> Seriously though, you don't get it both ways. There's been this backlash against startups paying below market on the promise of equity, so then many startups in reality do start paying at or above market, and then people are still unhappy when things like this happen. This is a side effect of the increased cost of labor which makes many startups less viable. Silicon Valley doesn't run on "screw you pay me". At or above market salaries are a huge cost to startups to the detriment of their equity, and so honestly I'm not too upset about employees who have been making market salaries not getting much out of an acqui-hire. Hopefully the ones who were in the trenches with the founders will be rewarded, and if it's the case here where that's much of the team, then hopefully there's an earn out structure that provides that if the acquirer is trying to manage the acquisition risk.

<comment><USER9> > many startups in reality do start paying at or above market

I think that's the key phrase here. I don't know if they paid at or above market rate and that would be where I'd start looking before passing judgement.

Your company's job postings suggest "competitive salary and meaningful equity", which is a much better signal than Heyzap's posting[0] i.e. no mention of compensation whatsoever (I personally prefer a salary range to know if the discussion is even worth our collective time).

They're a small startup so the data is incomplete and meaningless, but assuming the one salary posted on Glassdoor ($65-75k for a marketing manager) is accurate, I think it's fair to say that their compensation package was quite low and heavy on equity.

> I'm not too upset about employees who have been making market salaries not > getting much out of an acqui-hire

I completely agree with you. If you're getting market or above market salary then equity shouldn't be an issue whatsoever.

[0] [https://www.glassdoor.com/job-listing/software-engineer- heyz...](https://www.glassdoor.com/job-listing/software-engineer-heyzap- JV_IC1147401_KO0,17_KE18,24.htm?jl=1162901135)

[1] [https://www.glassdoor.com/Salary/Heyzap- Salaries-E493011.htm](https://www.glassdoor.com/Salary/Heyzap- Salaries-E493011.htm)

<comment><USER10> If any startups pay high market salaries, it's in ad-tech. There's little "I believe in the product" and frequently tech is boring. The only redeeming quality is they pay well.

That said, this doesn't seem like a successful exit.

</comment></comment></comment></comment></comment><comment><USER11> It amazes me that someone would be interested in creating a startup for this.</comment>


Disputed Island Disappears Into Ocean - <AUTHOR> http://www.weather.com/outlook/weather-news/news/articles/indian-island-submerged_2010-03-25

<comment><USER2> _Scientists at the School of Oceanographic Studies at the university have noted an alarming increase in the rate at which sea levels have risen over the past decade in the Bay of Bengal._

 _Until 2000, the sea levels rose about 3 millimeters (0.12 inches) a year, but over the last decade they have been rising about 5 millimeters (0.2 inches) annually, he said._

This is obviously bad reporting. Simple arithmetic:

           5 mm x 10 years = 50 mm (2.0 inches)

For 30 years

          3mm x 20 years + 5mm x 10 years = 110 mm (approximate 4.5 inches).

There is no way that an island would disappear because of 2.0 inches of water. Low level islands disappear due to erosion very quickly (especially volcanic ones). I actually remember reading in the SA sometime back of a case near NZ or Australia.

<comment><USER3> Spot on. There has to be other geological reasons for the island subsiding. A _ripple_ has a wave height of 5mm.

I don't know how these stories are getting past editors and into news reporting. It's like their brain switches off whenever they see something remotely linked to 'global warming'.

</comment></comment><comment><USER4> It's an estuary, good grief! It's a transient mud and sand bar not a block of granite, they do this (disappear).

</comment><comment><USER5> Add another dubious item to the list of things that global warming supposedly causes.

I mean, come on, Weather Channel!. If you want people to take AGW seriously, then clean house on your editorial board.

Edit: Looks like this is an AP article, which, of course, explains everything. Sloppy to quote something so obviously wrong.</comment>


Andrew Morrow: Multi-Threaded CoreData Done Right [vimeo] - <AUTHOR> https://vimeo.com/106877641 <comment><AUTHOR> Here's a link to the project code on Github:

[https://github.com/doubleencore/360iDev_CoreData_2014](https://github.com/doubleencore/360iDev_CoreData_2014)</comment>


Announcing Sysdig: strace + tcpdump + lsof + awesome sauce - <AUTHOR> http://www.sysdig.org/

<comment><USER2> This is super interesting. My debugging workflow for "weird" problems typically involves some combination of those tools already, so it's really cool to see this. Definitely going to try it out.

</comment><comment><USER3> sysdig something is up with your character encoding:

      than it should be — especially in distributed,

I have never seen the first three comments all come from accounts that have never posted a comment before. To make things even more spectacular 2 of 3 accounts were created two days ago. It is strange that all three accounts were able to notice the story, click the link, read/absorb the information and post a response that ends with an exclamation point within three minutes of submission being posted. What are the odds?

<comment><AUTHOR> OP here, and I agree. I shared as the founders are good friends and the project is pretty impressive. I didn't post the link to the story anywhere so don't really know.

</comment></comment><comment><USER4> There goes my day.

</comment><comment><USER5> Well done guys! I have to try it for sure.

</comment><comment><USER6> Cool stuff!

</comment><comment><USER7> Nice! Thank you!

</comment><comment><USER8> Great idea

</comment><comment><USER9> great!</comment>


Cyber's Most Wanted – FBI - <AUTHOR> https://www.fbi.gov/wanted/cyber <comment><USER2> I am impressed by how terrible that page is to use on mobile. Essentially every individual's wanted poster has unreadable text on the site itself, because the image gets resized. You can't tap on it to make it larger either or open in another tab, because tapping on it starts a download.

</comment><comment><USER3> Foreign nationals committing offense against the united states is fbi territory? Interdasting</comment>


Feature Macros, an Alternative to Feature Expressions in Clojure - <AUTHOR> https://github.com/feature-macros/clojurescript/tree/feature-macros/feature-macros-demo

<comment><USER3> I was just talking about the potential problems of FX last night - <USER2> interesting to see such an impressive and simple alternative approach. I'm not sure what the drawbacks are, but looking forward to seeing the discussion that grows from this.

<comment><USER4> I'm curious what problems came up in your conversation?

</comment></comment><comment><USER5> Many of the most useful applications of feature expressions simply will not work as macros. You'd need to create one new feature-cond enabled macro for each other macro use case. Feature expressions, on the other hand, are a general solution that can be used at the call site without having to reinvent every macro that may ever need platform-conditional behavior, like your ns+ macro.

Consider the proposed +clj form in the body of an extend-protocol or a deftype:

        (defmacro +clj
          "Form is evaluated only in the JVM."
          [form]
          (when (= :clj *host*) form))

        (deftype Foo

          SomeCommonProtocol
          (aMethod [blah blah] ...)

          (+clj
            JvmOnlyInterface
            (someMethod [blah] ...)
            )

          )

Of course, this _does not work_. The deftype macro gets the +clj form unmodified and must handle it on its own.

At best, you could have a syntax-quote style wrapper form:

        (feature-quote
          (deftype Foo

            SomeCommonProtocol
            (aMethod [blah blah] ...)

            (+clj
              JvmOnlyInterface
              (someMethod [blah] ...)
              )

            ))

However, this is essentially what Feature Expressions are anyway. Only broken, since macros don't only operate on syntax/edn, they can operate on any compile-phase value, like dates and times or the output of any tagged literal handler. Without being part of the phase before the macro expander, you can't prevent platform specific types from reaching the macro body.

The reality is that Clojure, in the tradition of most lisps, has rigid read/compile/run phase separation where each phase has a varied evaluation strategy, but the phases run interleaved. Unlike say something like Mathematica, which does not run the reader interleaved with the evaluator - and the evaluator uses normal-order rather than applicative-order! Without such a uniform evaluation strategy (nevermind Mathematica's evaluator's other problems) it simply doesn't make sense to fight so hard against beefing up the read phase.

Related: I've written before about how I don't think that this impacts tooling as badly as you guys thing it does. I just don't understand why you guys are so against feature expressions, nor do I think you've succeeded in proposing a desirable alternative.

<comment><AUTHOR> What's wrong with:

        (deftype Foo
          SomeCommonProtocol
          (aMethod [blah blah] ...))

        (+clj
         (extend-type Foo
           JvmOnlyInterface
           (someMethod [blah] ...)))

Can you come up with another example you consider intractable?

<comment><USER5> Your change is invalid. I picked my example very carefully: You can not extend an interface to an object after the type has been created. That only works with protocols.

That said, there are countless examples. I already mentioned the proposed ns+ form, but there are a couple more in the design spec here: [http://dev.clojure.org/display/design/Feature+Expressions](http://dev.clojure.org/display/design/Feature+Expressions)

I'm not going to bother constructing more concrete examples, since it's trivial to do and each and everyone will have case-specific solutions that will seem "nicer" than feature expressions. But that's just it: It will be a case-by-case solution, rather than a general solution. Case-by-case application-centric solutions are preferable for the platform abstractions of your major subsystems, but often you just want to hack it and feature-macros simply don't offer the flexibility you need.

<comment><AUTHOR> Ah, point taken. Here is a valid version:

        (case-host
         :clj
         (deftype Foo []
           JvmOnlyInterface
           (aMethod [blah blah] ...))
         :cljs
         (deftype Foo []))

        (extend-type Foo
          SomeCommonProtocol
          (someMethod [blah] ...))

It is true there are countless examples. There are also countless counter- examples. And for the examples that are competitive in terseness, there is already cljx.

I personally don't "just want to hack it", especially when it comes to writing portable code. I agree that portability poses subtle new challenges to application design. I just prefer to meet those challenges in a way that is programmable, which syntactic extension is definitely not.

<comment><USER5> Let me rephrase "just hack it": Feature expressions are a low-level primitive for platform switching. If you have cross platform abstractions, consumers of your code shouldn't need to use feature expressions. However, they are very useful in the implementation of such abstractions.

As for the programability complaint: I just don't see why it is important. If you are generating code, you can already add/remove content from the generated code. That is: you can always just write a "feature macro"! Feature expressions don't add any power you don't already have: Only affordances for humans.

Unrelated thought: Haskell/GHC uses the C preprocessor to address this problem.

<comment><AUTHOR> I agree that Feature Expressions don't add power, because yes, they are semantically equivalent to C preprocessing and orthogonal to the idea of Lisp.

What excites us most about Feature Macros is that they _do_ add power. Here is an example of something we think is powerful from the proposal - a cross- platform macro:

        (case-host
          :cljs nil
          :clj  (defmacro my-macro [name & body]
                  (case-target
                    :clj  `(.println (System/-out) (str (do ~@body)))
                    :cljs `(.log js/console (str (do ~@body))))))

<comment><USER5> 1) I don't understand what this example is supposed to demonstrate.

2) By "power" I meant a formal notion of expressiveness: Neither feature expressions nor feature macros add anything to the language that you can't already express with existing constructs. Like I said: It's about affordances, not capability.

<comment><USER6> The example demonstrates how you can define a macro that runs its code in Clojure but can emit code to both Clojure and ClojureScript. How would you do this with feature expressions?

<comment><USER7>
      #+clj
      (defmacro my-macro []
        (cond
          (contains? *features* :clj)  `(some-clojure-thing)
          (contains? *features* :cljs) `(some-cljs-thing)))

If that was too verbose for you, you could of course write a `feature-case` _function_ that looks almost identical to what you have in that example.

<comment><AUTHOR> This was a great example, and I think you are absolutely right that it is the identical in function, if not in form, to mine.

Interestingly, in the course of concocting a counter-counter example, I came up with this in an effort to show the two dynamic variables we stipulate - _host_ and _target_ \- were absolutely required:

        #+clj
        (defmacro my-macro []
          (cond
            (contains? *features* :clj)  `(some-clojure-thing)
            (contains? *features* :cljs) `~(do (require 'some-ns)
                                               ((resolve 'some-ns/some-fn)))))

My hope was to make the point that 'some-ns/some-fn would run in a context where ( _features_ :cljs) is true - as it is in the caller's (macro body) environment - which would result in the system attempting to run ClojureScript code, which would explode because the macro is Clojure. Then I realized that require runs load, and load is in the macro body. The load/require available in the environment is Clojure-specific! Thus, load/require can bind disj :cljs and conj :clj before reading and compiling some-ns.

My counter-example failed, but did bring me a little closer to the truth - that we only need one dynamic variable, _platform_. Any platform that has the ability to load code also has an opportunity to bind _platform_ and thereby inform macros of target. This simplifies the Feature Macro proposal by half and we are excited to amend it.

Our updated cross-platform example becomes:

        (case-platform
          :cljs nil
          :clj (defmacro my-macro []
              (condp = *platform*
                :clj  `(some-clojure-thing)
                 :cljs `(some-cljs-thing))))

Instead of _host_ and _target_ , we are down to just _platform_. We continue to see no need for a _features_ set because of Clojure's platform-symbiosis.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I do like the idea of keeping them regular forms as it feels more future proof than cljx style expressions.

</comment><comment><USER9> It seems to me that Feature Macros will be trivially implementable as a library once Feature Expressions land:

        #+clj (def *host* :clj)
        #+cljs (def *host* :cljs)

<comment><USER6> They're trivially implementable without feature expressions, as we demonstrated with our 20 lines of code.

<comment><USER8> Except on Windows due to Boots current lack of support.

<comment><AUTHOR> The proposal is not dependent on boot, only our demonstration of it is.

</comment></comment></comment></comment><comment><USER10> I am looking at one of the examples:

[https://github.com/feature- macros/clojurescript/blob/feature...](https://github.com/feature- macros/clojurescript/blob/feature-macros/feature-macros- demo/src/demo/util.clj)

But if I run Clojure on the JVM, the following fails:

         (def host nil)
         (defn foo [] (when (= :cljs host)
                        (gstring/format "something")))

... the error being that there is no "gstring" namespace.

Since the proposed solution with macros would produce such code (I am right?), how does it solve the issue of namespaces that only exist in a specific platform?

<comment><USER6> I think the `case-host` macro is what you're looking for: [https://github.com/feature- macros/clojurescript/blob/feature...](https://github.com/feature- macros/clojurescript/blob/feature-macros/feature-macros-demo/boot- shim.clj#L13-L15)

<comment><USER10> Ok, thanks. So unlike Common Lisp, symbol resolution does not occur at read time.

</comment></comment></comment><comment><USER4> Does this also affect the #_ discard macro? And what about anonymous functions like `#(+ 5 %)`? Since those are reader macros I assume yes?

<comment><USER6> The Feature Macros proposal is only adding macros and vars to Clojure---the reader isn't modified at all. Since all of the things you mentioned are reader macros (as you pointed out), Feature Macros never even see them, so they won't be affected in any way. (Reader macros are expanded before regular macros are, so regular macros don't see things like `#(...)`, they see `(fn [] ...)`.)

<comment><USER11> The great point made in the README is that we can't generate feature expressions. With feature macros we can have macros that generate cross- platform code. That's big in my mind.

That hasn't been a problem with reader macros in the past since you don't need to generate `#(...)` if you have `(fn [] ...)`.

<comment><USER5> See my comment here: [https://news.ycombinator.com/item?id=8924227](https://news.ycombinator.com/item?id=8924227)

I don't understand when I would ever want to generate a feature expression. The goal is to generate platform-specialized code. You never have to generate code that generates platform-specialized code!

</comment></comment></comment></comment><comment><USER11> a clean and simple approach to the problem, +1

</comment><comment><USER12> tldr:

        git clone git://github.com/feature-expressions/clojurescript
        cd clojurescript/feature-macros-demo
        make deps
        make demo</comment>


Microsoft Research Publications - <AUTHOR> http://research.microsoft.com/apps/catalog/default.aspx?t=publications

<comment><USER2> How is it that they can say "Our research" about publications from 1951, like:

[http://research.microsoft.com/apps/pubs/default.aspx?id=6500...](http://research.microsoft.com/apps/pubs/default.aspx?id=65008)

and

[http://research.microsoft.com/apps/pubs/default.aspx?id=6503...](http://research.microsoft.com/apps/pubs/default.aspx?id=65035)

are they just part of Microsoft's IP portfolio, or are these authors previous incarnations of Bill Gates?

<comment><USER3> This is just a guess, but maybe those are papers that are cited in others from MS Research authors, and there was a data migration bug at some point that mixed citations with authored papers.

<comment><USER4> It is obviously a bug since MSR was founded in...1991. Many researchers also insert papers into the system written in other labs or universities before joining MSR; these seem to be included as well even though these days we clearly get to distinguish between was written when at MSR and what wasn't. This behavior seems to only apply to older papers and not newer ones.

</comment></comment></comment><comment><USER5> I didn't know they made videos of visiting speakers available:

[http://research.microsoft.com/apps/catalog/default.aspx?p=1&...](http://research.microsoft.com/apps/catalog/default.aspx?p=1&sb=no&ps=25&t=videos&sf=&s=&r=&vr=105128&ra=)

There's also an RSS feed:

[http://research.microsoft.com/rss/visitingSpeakers.xml](http://research.microsoft.com/rss/visitingSpeakers.xml)

</comment><comment><USER6> I'm curious about this paper: The use of Melodic Scales in Bollywood Music: An Empirical Study

Cool that Microsoft does research into Bollywood music?

[http://research.microsoft.com/apps/pubs/default.aspx?id=1983...](http://research.microsoft.com/apps/pubs/default.aspx?id=198398)

<comment><USER7> I took an interdisciplinary course in University and one of the CS professors did a whole lecture series on research in music and analysis. A lot of beat analysis, understanding rhythms and predicting popularity of songs based on the distribution of the timing between their beats. It was very cool and extremely creative.

Here's his homepage if you want to learn more [http://cgm.cs.mcgill.ca/~godfried/](http://cgm.cs.mcgill.ca/~godfried/)

Edit: Looks like he recently published a book on it too [http://www.crcpress.com/product/isbn/9781466512023](http://www.crcpress.com/product/isbn/9781466512023)

<comment><USER8> His research is definitely fascinating. Funny to see my CS professor pop up in here though. :)

</comment></comment></comment><comment><USER9> Be aware - some algorithms described in publications on research.microsoft.com can be patented by microsoft (and this fact not referred in publication itself, google patent search can be useful for this).

<comment><USER10> How interesting.

Isn't there a requirement to mark every publication of a patented idea? Did Microsoft just invalidated those patents? (Do they even know what patents apply?)

<comment><USER11> I'm not an academic, but I read a lot of scholarly publications in computer science and I have never seen a single reference to a patent in any of them. Usually I only discover that something is patented or patent pending later, after some heavy Googling.

I copied down this quote from somewhere earlier this year but I can't find the source now: "One of the things they tell us developers here at Microsoft is that we should never read any patents. That's because you're liable for triple damages if you knowingly infringe on a patent."

<comment><USER12> Yes, I went through that training, and that's an accurate summation of the commandments given. Do not peruse patent databases because it only takes one person at Microsoft reading the patent, and someone else totally unrelated infringing, to turn a simple "oops" into "knowing infringement".

</comment></comment></comment></comment><comment><USER13> There are lots of machine learning papers in there, and lots of papers about mobile, search, social networks, etc. This one seemed a little out of place: "Taking Stock of Toilets in Bangalore's Government Schools: Status, Challenges and Opportunities"

<comment><USER14> Many if not most large corporations employ anthropologists who conduct ethnographic studies of how people all over the world use technology. Toilet jokes aside, this is not at all out of place.

<comment><USER13> I had no idea that Microsoft did that kind of research. Maybe this is connected to Bill Gates's philanthropic work.

<comment><USER14> I don't think so. It's pretty standard for companies with a global presence – they need to employ to find out how (potential) customers use technology in other parts of the world with different cultural and socioeconomic conditions. Intel, IBM, Microsoft, Nokia, etc. all do this. A great blog from a Nokia ethnographer: [http://janchipchase.com/themes/future- perfect/](http://janchipchase.com/themes/future-perfect/).

</comment></comment></comment></comment><comment><USER15> Also this:

[https://github.com/MicrosoftResearchSVC/](https://github.com/MicrosoftResearchSVC/)

Dryad under an Apache license!

</comment><comment><USER16> See also this more applied site, where you can try out results of some of a part of MS research in your browser -- [http://rise4fun.com/](http://rise4fun.com/) \-- this comes from the "research in software engineering" group: [http://research.microsoft.com/en- us/groups/rise/default.aspx](http://research.microsoft.com/en- us/groups/rise/default.aspx)

</comment><comment><USER17> Am I the only one who noticed they had articles published in August 2014 on that site?

Also, the first blog post I clicked on [1] brought this quote: "We propose a new progressive analytics system based on a progress model called Prism" _WHY_ is Microsoft so terrible at picking names for their products?

1: [http://research.microsoft.com/apps/pubs/default.aspx?id=2001...](http://research.microsoft.com/apps/pubs/default.aspx?id=200169)

<comment><USER18> > Am I the only one who noticed they had articles published in August 2014 on > that site?

It's probably the papers that have just been accepted for publication, but haven't actually been published yet. The submission-reviewing-publication process is very slow and usually takes at least 5 months in CS conferences. So, many authors make the papers available right after they get an acceptance notification from the program committee. So, my best guess is that the publication date refers to the date those papers would be published _officially_.</comment></comment>


Revenue Analytics - <AUTHOR> https://mixpanel.com/revenue/ <comment><USER2> I already have a revenue property on all my users in mixpanel. It seems like this new feature does two things

1) It keeps track of a revenue property as a time series. I.e. you can later look at the changes of revenue for a user over time (in their HTTP API you use a new $append command instead of $set)

2) It allows you to look at aggregate values (such as sum and average) for all revenues of all people in a certain group

I'm curious if this is something that could be extended to arbitrary properties on users. I operate a phone service and track usage of minutes in a similar way. It'd be great if I could do a similar kind of analysis.

It would be even better, if people analytics and events tied in a little more closely. I'm already tracking a "Charge succeeded" event that's tied to a distinct_id. If I could segment events by people properties (i.e. show me the "Charge succeeded" events for all people with Source=x), I could use the aggregate functions of the segmentation screen to do a lot of what revenue analytics provides and much more. I also wouldn't have to redundantly attach people properties to all my events anymore. Currently all of my events contain all people properties (such as Revenue, Number of minutes used, etc), so that I can segment by them.

In case suhail or anyone else is following along this thread, it'd be great to hear your thinking.

<comment><USER3> We hear you and we're thinking about how. It's a huge engineering/scalability challenge given the amount of data a single customer potentially can have.

<comment><USER2> Thanks Suhail! I'd gladly compromise on convenience/ease of use to make it easier to build (I'm sure you're more careful about making those trade offs for the less technically inclined users though)

For instance, I'd be happy to manually designate a small number of events and properties as available for the revenue-like analysis. I could say "For all _Amount_ properties on all _Charge succeeded_ events, I want to be able to see the average value per user, the sum per user and the sum across all events on all users". Technically that doesn't seem much different from what you already built except I could maybe add two or three of my own events.

As for segmenting events by people properties, it seems like you already have most of the infrastructure in place. Events are indexed by distinct_id and I can use the People tool to retrieve a list of distinct_ids of people matching certain criteria. Tying that together would be huge.

The related but different functionality of segmenting events by the people properties as they were when the event occurred is less important to me (this is what I can already do by copying people properties into each event). I can see how this would be a bigger headache. On the other hand though, you're already allowing us to do this because there's no restriction on the number of properties on an event.

</comment></comment></comment><comment><USER4> Awesome to see Mixpanel getting into the revenue game, since it's pretty much the most important thing to get a handle on.

We've just added support for revenue in Analytics.js this morning! (Just track a `revenue` property on your events and we'll take care of the differences between Mixpanel, KISSmetrics and the rest of the providers.)

<comment><USER5> First thing I wondered when I saw the announcement was how long until you'd support it :)

Great work!

</comment></comment><comment><USER6> Sorry to dissapoint you guys @ Mixpanel, but Cost Per Acquisition or Cost Per Sale metric is a very standard feature in most advertising systems...something that doesn't even get mentioned.

<comment><USER7> Mixpanel is still fairly early in the game, but their development pace is pretty rapid. They also seem to be able to build on existing features pretty well; for example, they rolled out the ability to build user profiles a few months ago, and then the ability to message those profiles a couple months later.

I've used GA, KISSMetrics and now Mixpanel, and I've been personally been really happy with them. Nearly everything is there, and the missing parts look like they're being worked on.

</comment></comment><comment><USER8> I wonder how this could integrate with ad revenue.

</comment><comment><USER9> Orthogonal to this discussion, I use Ghostery because I don't believe MixPanel and their customer's best interests always align with my best interest.

I only mention this here because the linked page does not work when JavaScript is enabled but MixPanel is not. Defensive programming, people!

Timestamp: 1/29/2013 1:28:52 PM Error: TypeError: mp.landing is undefined Source File: <https://mixpanel.com/revenue/> Line: 98

<comment><USER2> I share some of your concerns, but I just wanted to point out that this is not something about Mixpanel or tracking services. It's just the way web applications works. At the very least, the server that the app is running on will always know all your actions because otherwise it couldn't respond to them!

<comment><USER9> As I explained elsewhere, the problem is when 3rd parties track users across completely different websites.

Your point regarding how the web works makes sense on an individual request basis, but imagine something like Scroogle over Tor... sure my actions would be known, but 'which my' would not.

</comment></comment></comment><comment><USER10> That link seems to be missing CSS. The content is fine, but it looks straight out of circa 1995 internet (minus the "under construction" sign).

<comment><USER11> Ghostery (or something similar) may be blocking everything on cdn.mxpnl.com, which would prevent both css and js from loading.

<comment><USER10> safari adblock was the culprit here.

However, I'm not going to turn it off to see their site, so they should probably figure a way to rectify the issue.</comment></comment></comment>


Ask HN: Stripe Atlas for LLC. Worth It? - <AUTHOR> Stripe Atlas: https://stripe.com/atlas
I'm looking into forming an LLC, and while I am a big fan of Stripe, I can't really understand the value proposition of using Stripe Atlas to form an LLC. Forming a Delaware LLC costs about ~$200 online through some other services. While Stripe Atlas does provide Azlo (https://www.azlo.com/) for LLC's, Azlo is free regardless. So what am I getting for the additional $300 I am giving to Stripe?
Has anyone here formed their LLC through Stripe Atlas and was it worth it? <comment><AUTHOR> Dig some searching and found patio11's response to a similar question: [https://www.indiehackers.com/forum/you-can-now-use-stripe- at...](https://www.indiehackers.com/forum/you-can-now-use-stripe-atlas-to- form-an-llc-got-questions-patrick-mckenzies-here-to-answer-them-91fe08b8b0)

So in case anyone else is wondering, this is what's offered for the additional $300. For myself personally, it doesn't seem worth it at the moment.

</comment><comment><USER2> I don't know about that. But why US company? There are many countries with 10% tax rate</comment>


Show HN: Node-cli-proxy: web front end for interactive command-line programs - <AUTHOR> http://tmskfk.com:3999/

<comment><USER2> Not gonna lie, had to read that title 4 times lol...

whoa whoa whoa...a WEB front end for INTERACTIVE command line programs???

</comment><comment><AUTHOR> I just added Zork game! Get eaten by grue in your browser!</comment>


ASK Everyone: How to describe major purchases in 3 words or less? - <AUTHOR>

Hey everyone, I am working on the YC application. I am trying to describe complex/major purchases in 3 words or less.
Some examples of major purchases would be: -A CAR -A Mortgage -A Boat -A Web Designer -A Consultants Services
Anyone know of a way to put it in a nutshell?
I've got "services/major purchases/commitment based decisions" so far, can anyone condense that? It seems way to long. <comment><USER2> "Over ten kilobucks". :-)

</comment><comment><USER3> why can't you just say major purchase?

<comment><USER4> Agreed.

</comment></comment><comment><USER5> High-value transactions? Major transactions? Significant transactions? Important transactions?</comment>


I open sourced my game along with a tutorial on how to make it using Lua - <AUTHOR> https://github.com/a327ex/BYTEPATH <comment><USER2> The author has some relevant blog posts (in GitHub issues) too:

[https://github.com/a327ex/blog/issues/35](https://github.com/a327ex/blog/issues/35) \- BYTEPATH Postmortem (2018)

[https://github.com/a327ex/blog/issues/44](https://github.com/a327ex/blog/issues/44) \- One Year Sales Data for BYTEPATH (2019)

<comment><USER3> That's a very interesting way to use GitHub issues. I wonder what sort of problems can arise with vendor lock-in, though.

<comment><USER4> It's probably better to just make them Markdown inside the directory, you can export the Markdown files (since they're in git) but you can't export issues. Github renders both the same since, well, they're both Markdown.

</comment></comment></comment><comment><USER5> I've never heard of Lua, but now that I am looking at it, it seems very friendly. Love how they call things what they are, for example `local` is just a local variable, or `repeat X until Y` for a loop. It's a joy to see, to be honest.

<comment><USER6> 1-index kept throwing me off though

<comment><USER7> How about this: The empty string and 0 are truthy. Why?

<comment><USER8> This is probably a good thing, if you don't want to have tickets filed about whether midnight (time of day) is truthy, whether Jan 1, 1970 is truthy, why some type of empty collection is truthy but others are not, etc.

<comment><USER9> > This is probably a good thing, if you don't want to have tickets filed about > whether midnight (time of day) is truthy

Agreed. Here is an example of exactly that in Python:

[https://bugs.python.org/issue13936](https://bugs.python.org/issue13936)

</comment></comment></comment></comment></comment><comment><USER10> For those interested, a very quick and easy way to start making games in Lua is with Roblox Studio.

[https://www.roblox.com/create](https://www.roblox.com/create)

<comment><USER11> Roblox was strangely unmentioned in the online bubble I was living in before having a child. I discovered it only after I started searching for child- appropriate games, and even then initially dismissed it as "some dirtily monetized Minecraft clone", but it actually predates it, and is completely different.

As you mention, Roblox is actually a huge platform for creating games in Lua, and helping other players discover them. Not only do you get a cross-platform game engine with multiplayer built in, it also seems to be quite pleasant to develop for.

For instance, you can create both client-side and server-side Lua in the same IDE, and spin up a local server with a client that connects to it in a single click with no configuration. You can also add breakpoints and step through both sides in the debugger. Pretty awesome as I was used to client-side JavaScript and server-side Python before.

Because the platform encourages experimentation, I think we'll see many new game ideas and probably even new genres emerging from Roblox.

</comment></comment><comment><USER12> Cool project with awesome visuals!

It's always interesting to see games published made with LÖVE in lua. I'm writing an "Advance Wars 2" clone at the moment in LÖVE and hope to get some inspiration from your code.

You seem to use a lot of global variables. Is that on purpose? I try to do as much as possible with local variables (although especially in game logic global entities are sometimes just the easiest way). I'm very wary of 1. global lookup overhead and 2. confusing errors when accidentally overwriting an existing global variable.

As I have never noticed both of these I'm not sure whether my angst is justified ;-)

<comment><USER13> The author explains their reasoning about globals here.

[https://github.com/a327ex/blog/issues/24](https://github.com/a327ex/blog/issues/24)

It mainly boils down to the fact that an indie game written by one person and never maintained after release doesn't need to be written for maintainability. Supposedly there are productivity gains the author receives from doing this.

Personally, I disagree from past experiences dealing with hundreds of globals in legacy code, but to each their own.

<comment><USER12> Thank you for the link, that's exactly what I was looking for.

I see the point that a single developer does not have to focus on maintainability so much. And if it works for him -- as it obviously does -- more power to him.

But for me, I do not think I am mentally capable to reason about my program if it has to many globals. If I can have as much as possible local, my mental model also can be local.

I am very new to gamedev, so this way of thinking may not be appropriate in the long run.

</comment></comment></comment><comment><USER14> Stunning visuals by the way, seems to have been designed carefully with pixelation in mind, in a way that adds to the overall aesthetic.

</comment><comment><USER15> Something that really annoys me is a blob of code suddenly pushed to GitHub without a commit message, and then 10 random Update Readme commits. The repository holds no history.

A rich git history a lot of the times imo is necessary to understand why some parts are written the way they are written, and is also enjoyable to read.

</comment><comment><USER16> Another great example of a nice looking game with basic graphics. So much polish on this, good job!

</comment><comment> the-dude-abides Very cool. Thanks for doing something like this. I'm curious about making indie games and love the idea of being able to understand a finished project that I can analyze to understand things better.

</comment><comment><USER17> What was the process of compiling your love to a standalone executable? I'd love to try out LOVE but I dont want to sink time in unless the process of packaging it up into something I can send my friends is painful or not well supported.

Also, are you using moonscript and SDL2 in this?

Great project by the way! The pixellated graphic effects are clever and unique.

<comment><USER8> On Windows, you can add your project to a zip file, concatenate that zip file to love.exe to get game.exe, and distribute a zip file containing game.exe and the dlls used by love.

When I packaged a game for Mac it was a bit more painful but not too bad, and I told Linux users to use wine. Some people have made it pretty easy to package love games for Linux since then though.

</comment></comment><comment><USER18> @GithubStaff: The new two columns design made my eyes sick. :( Please bring back the simple one column design.

</comment><comment><USER19> I always enjoy seeing projects done in Love2D; it's such a great little game engine!

</comment><comment><USER20> I'm gonna dig into this also. Thanks for your contribution to the gaming community.

</comment><comment><USER21> Awesome that you open sourced the game. I got it on Steam from a post on /r/PathOfExile

(PoE is a awesome ARPG with a massive build customization and I believe inspired game creates by OP)

</comment><comment><USER22> Go Adonaac! It's nice to read about you on the internet from time to time! \- Lisardo

</comment><comment><USER23> A whiff of fresh air! Really interesting graphics!! Thanks for sharing

</comment><comment><USER24> Wonderful job!

</comment><comment><USER25> I tried posting this 15 hours ago lol</comment>


A Neural Algorithm of Artistic Style - <AUTHOR> https://github.com/jcjohnson/neural-style <comment><USER2> The HN discussion of the mentioned paper has a link to a video of the authors:

[https://news.ycombinator.com/item?id=10141516](https://news.ycombinator.com/item?id=10141516)

[https://www.youtube.com/watch?v=-R9bJGNHltQ&list=PLujxSBD- JX...](https://www.youtube.com/watch?v=-R9bJGNHltQ&list=PLujxSBD- JXgnqDD1n-V30pKtp6Q886x7e)

It's nice to see an(other) implementation of this paper. I looked through the references of the paper and didn't find any source links.

</comment><comment><USER3> Unfortunately, AG Bethge has not (and most likely will not) released the original code, so this is very nice to have! The results from karpathy's implementation definitely feel a little "off" but it is very good nonetheless. Also see: Kai Sheng Tai's implementation - [https://github.com/kaishengtai/neuralart](https://github.com/kaishengtai/neuralart)

It seems like the original implementation still has a few undocumented tricks up its sleeve for improving accuracy that have yet to be figured out.

</comment><comment><USER4> Whenever I see code for neural networks in caffe/torch/theano, it bothers me a lot that its not easy to get them up and running on windows. I can't believe MS is missing this boat. I believe this field is exploding right now and the only one seem to be aligned is NVIDIA. MS has sponsored development of nodejs for windows before. I'm hoping they will do something similar for these frameworks soon.

<comment><USER5> Intel is playing catch up with Xeon Phi and OpenCL with open source projects like: [https://01.org/beignet](https://01.org/beignet) and [https://github.com/01org/idlf](https://github.com/01org/idlf) .

It's not at the level of being as fast as cuDNN nor integrated in major deep learning libraries but at least we can expect some competition in the coming years.

<comment><USER6> That doesn't sound like a worthwhile approach to me.

Xeon are server CPUs. So that means that whoever bothers buying Xeons with scientific computing in mind may as well go all the way and buy nVidia GPUs instead.

So instead of making that framework available to all Intel Haswell and newer families and try to persuade the customer from having to buy nVidia GPUs, they cut themselves short.

<comment><USER7> The Xeon Phi is not a Xeon. It's a co-processor. [https://www- ssl.intel.com/content/www/us/en/processors/xeon/...](https://www- ssl.intel.com/content/www/us/en/processors/xeon/xeon-phi-detail.html) The main advantage is that you can run almost-normal x86 code on it. Each core gets its own cache, so it's not really the same as programming for GPUs.

</comment></comment></comment></comment><comment><USER8> This is really cool. I especially love what it came up with when it combined the M.C. Escher "Hand and Sphere" print with the Golden Gate Bridge.

</comment><comment><USER9> Would it be possible to run the iterations in parallel with the GPU and CPU for the same input to improve time efficiency?

<comment><USER10> Not easily.

</comment></comment><comment><USER11> Would it be possible to make a python implementation of this or is it dependent on a unique datastructure?

</comment><comment><USER12> The "Scream" version of the Golden Gate bridge looks amazing.

<comment><USER13> The Scream versions are the only ones I find particularly interesting. All the others seem to fall victim to prominent cross-hatch patterns.

<comment><USER14> I don't know - the second Picasso/Brad Pitt would make for a good instagram filter.

I think if there was some level of semantic tagging and weighting of different aspects of an artist's technique it might do better - identify sky, water, buildings, faces, plants, etc (none of which is particularly beyond the capability of current image classifiers), then it might produce better results. I could easily imagine this turning into a 'Rembrandtize Me' selfie- filtering app.

Then it's really only a matter of time before the extension of these techniques moves to 'make my vacation photos look like they were taken by Ansel Adams', then 'show me Star Wars as if Alfred Hitchcock had directed it', or 'play me Smells Like Teen Spirit as if it had been sung by Elvis'. Neural Remixing.</comment></comment></comment>