Hy – A Lisp-flavored Python - <AUTHOR> https://hy.readthedocs.io/en/stable/ <comment><USER3> As a heavy user of Python, and someone who grew up with the "curly braces" languages, I have a question for y'all. Is this really readable?

        (setv result (- (/ (+ 1 3 88) 2) 8))

Or rather is it more readable than

        result = ((1 + 3 + 88) / 2) - <USER2>

I just... Do you just get used to this, or is it something that you have to keep struggling with? Especially given that the latter is how we do math the rest of the time?

<comment><USER4> I'm a Lisper (and Pythoner) and strongly agree, the first one is not readable. I would say it's gross. It boggles my mind that Lispers haven't taken that problem seriously. I have taken it very seriously and have been working on it for years.

I just started publishing my results.

[http://breckyunits.com/the-flaw-in-lisp.html](http://breckyunits.com/the- flaw-in-lisp.html)

What I've discovered is that the parentheses are __completely __unnecessary in Lisp, and in fact cause much harm by making Lisp harder to read and maintain in the long run. Drop the parentheses in Lisp by switching to whitespace /geometry for syntactic structure and you suddenly have the dream language.

Your example above would be something like:

      setv result
       -
        /
         + 1 3 88
         2
        8

You might think that looks a little strange too at first, but the neat thing about that code is you can write it on a piece of graph paper, draw lines around each word, connect the indented nodes, and you'd have a tree visualization of your syntax code without doing a single transformation of the source.

<comment><USER5> Yeah, whitespace sensitive languages are a great idea...

Until you permanently lose user data because of a pull request that contained whitespace changes.

Yes, I've seen this happen in production, yes it could have been prevented in other ways... but why invite disasters like that upon yourself?

<comment><USER6> Have you really never seen a bug in curly brace code due to a misplaced curly bracket hidden by incorrect indenting? Or code that was just really difficult to understand and modify accurately because it was indented inconsistently with the braces? And yes there are tools that can help with that, but...

I worked on Quartz for a few tears, that's over 10 million lines of Python code and many thousands of commits per day. If concerns like that really were anything more than nitpicking, projects like that would know about it.

<comment><USER7> Discrepancy between actual code structure and indentation is susceptible to diagnosis by machine. That's the beauty of having a bit of redundancy in the representation.

Recent GCC now has a warning for indentation that doesn't match code structure. (Had to recently patch a breakage in GNU Binutils in an embedded distro due to this being a -Werror).

</comment></comment></comment></comment></comment><comment><USER8> The online demo is amusing/creative: [https://try- hy.appspot.com/](https://try-hy.appspot.com/)

</comment><comment><USER9> Hy is a great project. One unfortunate thing, though, is that no one has been able to successfully implement `let`, which makes writing idiomatic lisp almost impossible. I'm curious if anyone can actually prove it can't be done or is just very difficult (or too slow to be useful).

<comment><USER10> What is it about `let` that makes it so hard to implement?

<comment><USER11> I actually wrote a short blog post about this just recently: [https://engineersjourney.wordpress.com/2017/08/01/history- of...](https://engineersjourney.wordpress.com/2017/08/01/history-of-let/)

In short, let kept running into trouble with yield, exceptions, breaking out of loops and such. It would have been really tricky (probably close to impossible) to get everything working correctly.

<comment><USER12> In case i ever find myself designing a programming language, what facilities would Python have to support in order to allow 'let' to work? It seems to me that in theory Hy could solve the problem with which variables are to be marked 'nonlocal' by doing a lot of additional code analysis (is this correct?).

I gather that the main remaining problem is that break, continue, yield, async, await work differently if you covertly introduce a new function scope. Would it be sufficient if scopes could have explicit labels and break, continue, yield took an argument that said which label to break/continue/yield out of? Would that solve the problem with async, await too?

If Hy did extensive code analysis to determine where to introduce 'nonlocal', and if Python's break/continue/yield took this extra argument, would implementation of 'let' by Hy then become possible or are there still additional impediments that i am missing?

<comment><USER12> (tuturto responded to the parent of this comment at [https://engineersjourney.wordpress.com/2017/08/01/history- of...](https://engineersjourney.wordpress.com/2017/08/01/history-of- let/#comment-292) )

</comment></comment></comment></comment></comment><comment><USER13> Excerpt:

> Hy is a wonderful dialect of Lisp that's embedded in Python.

> Since Hy transforms its Lisp code into the Python Abstract Syntax Tree, you > have the whole beautiful world of Python at your fingertips, in Lisp form!

</comment><comment><USER14> Interesting that it uses defun, like Common Lisp, the main Lisp-2 dialect, and yet it's clearly a Lisp-1, like Scheme. After (defun f (n) (+ n 1)), evaluating f shows that it's a function (just as in Python, which is a Lisp-1). My first thought, for what it's worth, is that if the namespace semantics is like Scheme it'd be better to follow Scheme idioms rather than Common Lisp, so code can be easily ported. On the other hand, this is only my first minute using Hy so what do I know. Looks really neat!

<comment><USER7> EuLisp (pretty much defunct) is also a Lisp-1 dialect with _defun_.

</comment></comment><comment><USER15> There's even a couple of kernels for IPython/Jupyter. The best I've seen so far is [https://github.com/Calysto/calysto_hy](https://github.com/Calysto/calysto_hy)

I'd like to move to Hy for much more of what I currently do in Python, but so far I've been too lazy to find/create good editor support for it. For actual projects of some size the loss of context help, documentation, various completions, etc seems like too high a price to pay.

<comment><USER16> I think the highest cost is really collaboration with others. If you ever want help with your project or if people even want to use it you are dealing with only Hy users and disregarding regular Python users. I do like the concept of Hy though.

<comment><USER15> It's restrictive that way, no doubt.

On the other hand, I suspect that as subsets go, Hy programmers would be a good one.

And I'm not sure the impact on getting people to use it would necessarily be _that_ bad. It's just an extra import hy away to use modules written in Hy just as usual from Python, after all.

</comment></comment></comment><comment><USER17> Since Python doesn't support multi-line lambdas, how do they support the analog in LISP? It's almost necessary for any dialect of LISP to support lambdas (i.e. functions) that contain a LISP 'do' [1] which lets you group statements. Do they chain together expressions/statements with continuations or something?

[1] [http://www.lispworks.com/documentation/lw60/CLHS/Body/m_do_d...](http://www.lispworks.com/documentation/lw60/CLHS/Body/m_do_do.htm)

<comment><USER18> Python lambdas are just syntactic sugar for creating a function object. The ast can just build a named function and use it in the needed expression.

<comment><USER7> However, that approach seems rather backwards compared to having an anonymous function primitive which is used as the basis for the lambda one-line-only sugar, as well as named functions (which simply establish a binding between a name and the anonymous thing).

<comment><USER19> Why should the programmmer care about whether the underlying function is named or not?

<comment><USER20> I imagine some kind of analogue to gensym would work there. The name can be throw away and guaranteed unique in scope.

In fact, a lot of SICP examples have you define a function within a function with a name like "iter" for TCO recursion. It'd work like that.

Edit: seems like gyka below confirms that's how it works. I should have read on!

</comment></comment></comment></comment></comment><comment><USER21> Shout out to @paultag (Author/Creator of Hy) - he's an awesome guy who has written some really cool stuff.

<comment><USER22> This, Paul is someone I look to as a model open source contributor in so many ways.

[https://twitter.com/nedbat/status/861696880790704128](https://twitter.com/nedbat/status/861696880790704128)

> How many people can say they have worked with [Sally] Yates, and have > written exemplary Dockerfiles?

<comment><USER23> Thank you so much. I'm deeply humbled and extremely grateful for this. It's the nicest thing I've read all week, and really brightened my day up. Thank you!

<comment><USER24> May I shower some humble upvotes sir.

Does Hy work with Pypy ? A jitter lisp would be cool

<comment><USER23> It does! We run tests on pypy, and it for sure works. I did at one point even test hy with rpython, I can't remember if that will still work or not, but it did compile like 4 years ago :)

<comment><USER24> Fantastic!

</comment></comment></comment></comment></comment></comment><comment><USER25> One fun application: I used Hy to control my liquid handling robot,

[https://twitter.com/dtsao/status/891038101706989568](https://twitter.com/dtsao/status/891038101706989568)

</comment><comment><USER26> Reason I am trying it - best "hello world" example ever.

(print "I was going to code in Python syntax, but then I got Hy.")

</comment><comment><USER27> This is my go-to for toy projects over the last couple years. Great execution all around. Be aware, if you don't like puns, this isn't the language for you.

<comment><USER28> So you're saying that if you don't like puns, you should get off your Hy horse?

<comment><USER29> Nothing so aggressive. He's just saying they hold puns in Hy esteem.

</comment></comment></comment><comment><USER30> See also

[https://github.com/pixie-lang/pixie](https://github.com/pixie-lang/pixie)

<comment><USER10> I wanted to get into Pixie but last I heard it was a dead project.

<comment><USER30> It's not "dead" [https://www.youtube.com/watch?v=1AjhFZVfB9c](https://www.youtube.com/watch?v=1AjhFZVfB9c) It's a weekend project, for fun. Functions that are work will not stop to work. I'm using it and I pretend to contribute when I find a problem.

<comment><USER10> Great to hear. I'm still not sold on CL as "my Lisp of choice", so I would be happy to give Pixie a shot.

</comment></comment></comment></comment><comment><USER31> The entire thing is full of puns really too much of puns related to hy. Cool project. Python joined Erlang and Java with a lisp flavour of its own with Hy. Hope we get a let expression soon.

</comment><comment><USER32> I have been using Hy as an alternative to Python. It is delightful to use. Highly recommended.

<comment><USER33> What kind of projects have you used it for?

<comment><USER34> My blog/wiki engine is written in an older version of Hy:

[https://github.com/rcarmo/sushy](https://github.com/rcarmo/sushy)

I'm currently re-writing it in Python 3.6 because Hy has taken a hard stance in backwards compatibility and deprecated "let" (with a replacement macro, but still) and isn't tackling async (both for understandable, but sad reasons), so it doesn't really work for me anymore.

But while it did, I loved it to bits. Python with a LISP syntax is just wonderful, and if someone ever finds a way to add back the stuff I like, I'm more than willing to deal with the quirks.

<comment><USER35> I know python, and last semester I took a class that briefly touched (lightly kissed?) LISP for a few weeks. I have a passing familiarity and I really loved the very small amount that I saw. I'd like to learn more, can you go into more detail on the usage of let and how one would go without it?

<comment><USER36> and to directly answer your question, there a are many things you can do with let. Let binds a "form" to a symbol.

        (let ((pi 3.14))
         ... code goes here ... )

So within the "code" part, that is, within that lexical environment, the symbol "pi" exists and is bound to float number 3.14

(Alternatively, you don't need to set a initial value.)

One of the interesting uses of let is that it can also redefine _dynamic variables_ (aka _special_ variables, think of them as "global variables).

So for example let's assume i define _timeout_ to 300, so within my whole _package_ , this _special variable_ has the value of 300. Let's suppose this variable is going to be read by function "my-function", and others.

So i create this special variable:

        (defparameter *timeout* 300)

Now, despite the above, let's suppose i want to call "my-function" but with a timeout of 1000. I can just do this in my code:

        (let ((*timeout* 1000))
             (my-function))

So, inside this "let", when "my-function" gets executed, the timeout will be 1000. Outside of this, it will still be 300.

Let, thus, allows you easy use of lexical environments.

Another use is creating _closures_ by using the combination of "let" with "lambda."

</comment></comment></comment></comment></comment><comment><USER37> Unicode identifiers make me uncomfortable. I have no idea how I would type that circular one in the "sharp macro" section (short of copying and pasting), and I'm imagining seeing those missing-character boxes all over the place.

<comment><USER38> I think that example was more tongue-in-cheek than anything (after all, who would want to write their code in reverse). But if you use e.g. the fcitx input on Linux, you can just press Ctrl-Alt-Shift-U, type "circle arrow", and select "↻" (clockwise open circle arrow) from the list. The fuzzy matching is pretty awesome, I hope similar Unicode handling will come to all platforms in the future.

</comment></comment><comment><USER39> As a tensorflow dev, with several years experience writing clojure at a previous startup, I believe this is the most natural language for writing tensorflow models (or theano. basically any graph building dsl that has any real complexity and has been bolted onto python).

Suddenly TF's cond and while_loop and context controls all fit naturally into the language.

My favorite technical post in recent memory.

</comment><comment><USER40> While both have their own personalities, has anyone done a side by side syntax and feature comparison of clojure and Hy ?

<comment><USER41> "Keep in mind we're not Clojure. We're not Common Lisp. We're Homoiconic Python, with extra bits that make sense." — Hy Style Guide

That said, Hy takes _a lot_ from Clojure.

<comment><USER36> > That said, Hy takes a lot from Clojure.

Oh oh... That scares me. Clojure -as a Lisp-like language running on the JVM- is a good idea but i have some reservations regarding how that idea got implemented.

<comment><USER41> I can only agree with you. I don't like some of the syntactic choices of Clojure, and sadly some of those are in Hy.

</comment></comment></comment></comment><comment><USER42> Has anyone ever used Hy for CGI stuff? It may be possible to port Hackernews to it, just for fun..

</comment><comment><USER43> I used Hylang to program an Arduino Yún a few years ago, via cross- compilation. This was a very nice experience, since it allowed me to use the great Python ecosystem without having to be limited by Python the language.

</comment><comment><USER44> Now CS61A can finally go back to teaching purely in Scheme again.

</comment><comment><USER45> Is this like clojure, but for python instead of java?

<comment><USER46> Yup, although Hy tries to stay much closer to Python's semantics than Clojure to Java's.

</comment></comment><comment><USER47> How does this work with tooling though, like step debugging and refactoring in IDEs like PyCharm, or with iPython notebooks?

</comment><comment><USER48> Will this give me lisp in jupyther notebooks?

<comment><USER49> You can already have lisp (common) in jupyter notebooks via cl-jupyter. Here is an example [https://github.com/mmaul/clml.tutorials/blob/master/CLML- Win...](https://github.com/mmaul/clml.tutorials/blob/master/CLML-Wine-pca-k- means-and-hierarchical-clustering.ipynb)

If you want to use Hy in a note book you will need a jupyter kernel for it and I belive there is one called hy_kernel

</comment></comment><comment><USER50> Next on the wishlist: an APL inside Python.

</comment><comment><USER51> A decade ago I wrote something like this using Racket (formerly MzScheme)! [https://github.com/srid/boalisp](https://github.com/srid/boalisp)

</comment><comment><USER52> > Hy

This must be the worst submission title in the history of HN.

<comment><USER32> It is possibly the shortest.

<comment><USER53> I got curious and I checked; there have been a few one-character submissions so it's not the shortest.

         ⊥: https://news.ycombinator.com/item?id=7530548
         {: https://news.ycombinator.com/item?id=7729399
         M: https://news.ycombinator.com/item?id=4367006

In total (at least in the [fh-bigquery:hackernews.stories] BQ dataset), there have been 15 non-deleted submissions with a one-character title.

</comment></comment></comment><comment><USER54> hy more like why</comment>


HTML5 Video First - <AUTHOR> http://www.kickstarter.com/backing-and-hacking/html5-video-first

<comment><USER2> So awesome.

Presumably this doesn't yet allow streaming, including scrubbing / resolution & bitrate switching / etc, since Media Source Extensions / MPEG-DASH aren't supported in anything but Chrome?

MSE: [https://dvcs.w3.org/hg/html-media/raw-file/tip/media- source/...](https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media- source.html)

MPEG-DASH: [http://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over...](http://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP)

Apparently Firefox is getting close, which is heartening: [http://bluishcoder.co.nz/2013/08/20/progress-towards- media-s...](http://bluishcoder.co.nz/2013/08/20/progress-towards-media-source- extensions-in-firefox.html)

If anyone from Kickstarter is here, love to hear if you're starting to play with MSE support for supported browsers, or if you're just doing download-and- play. Congrats either way - so glad to see more of this.

<comment><AUTHOR> It's just a good 'ol download-and-play. I don't expect we need streaming, but bitrate switching would be interesting.

</comment></comment><comment><USER3> I decided to uninstall flash on my work computer (pc win 7) a while ago.

I occasionally watch Youtube videos and it's getting better and better with time, I sometimes have to switch to chrome because some of the videos are not encoded for html5 but I would really recommend to ditch flash player and not be bothered by the constant updates anymore.

</comment><comment><USER4> Ironically my browser blocked a plug-in on this page.</comment>


Comment Is the Touch Bar a gimmick? Two years in, I think I can safely answer it - <AUTHOR> https://9to5mac.com/2018/10/19/touch-bar-a-gimmick/?ampcf=1 <comment><USER2> TL;DR - Yes.

Aside: Please remove the "?ampcf=1" from the URL. I think it's doing something hacky to prevent the back button from working correctly - it keeps reloading the same page, with Google in the middle.

The clean URL is [https://9to5mac.com/2018/10/19/touch-bar-a- gimmick/](https://9to5mac.com/2018/10/19/touch-bar-a-gimmick/)

<comment><AUTHOR> Thanks for pointing that out.

I too noticed it but thought it was too disable the amp version (which imo is always better)

</comment></comment><comment><USER3> 2018 article</comment>


How pathetic Apple has become - <AUTHOR> http://betanews.com/2013/03/14/how-pathetic-apple-has-become/

<comment><USER2> A better title would be 'How pathetic tech reporting has become'

</comment><comment><USER3> I'm neither here nor there on the article. On the surface there's little I can argue with. But the reality is that Apple makes the lions share of profit in the industry and that is unlikely to change any time soon.

It /is/ bizarre that Apple is all of a sudden behaving like they are under threat though. Seems strange that Tim Cook seems to stick to "We don't worry about what everybody else is doing, we just want to build great products" while Schiller goes on the attack.

<comment><USER4> _But the reality is that Apple makes the lions share of profit in the industry and that is unlikely to change any time soon._

How long will that continue to be true if Apple definitively loses the platform war?

<comment><USER5> On the other hand how long can the other android guys keep losing money hand over fist and will samsung keep using android when tizen or whatever else they've got becomes mature?

Didn't samsung try to distance themselves and their galaxy name from android in their recent S4 presentation?

</comment></comment></comment><comment><USER6> Phil Schiller is Apple's marketing head. It's his job so manipulate Apple (and Android's) public image. IIRC, he regularly mocks Android and has done so for several years (see this link from 2011 [1])

[1] [http://www.gottabemobile.com/2011/10/04/apple-mocks-droid- bi...](http://www.gottabemobile.com/2011/10/04/apple-mocks-droid-bionic-in- iphone-4s-announcement/)

</comment><comment><USER7> Just ignoring the rest of the article and whether or not he is right, I'm just going to pick on this quote: "So many of [Apple's competitors] complained that Apple's music player lacked features like FM radio and was overall too simple. But simple, particularly sync, is what people wanted -- and features like super-long battery life and smaller size. As an analyst then, I consulted with several companies certain they could beat iPod with more features. But they missed the fundamentals."

I think it's funny that he doesn't seem to want to acknowledge how wrong he was. He says that what consumers wanted was simple/easy, long battery life and small size. His advice to his clients was to focus on more features. His clients apparently listened to him and therefore the fault lies with them?

Showing us how wrong he has been in the past but without wanting to admit it is really not helping him come across as more believable.

<comment><USER8> How wrong he may or may not have been on other issues doesn't make him wrong on this one. Here, he's right on the mark.

<comment><USER7> And I'm not saying that being wrong in the past makes you wrong in the present.</comment></comment></comment>


Ask HN: Does anyone else struggle with procrastination when learning something? - <AUTHOR> I don't know is wrong with me...
I've literally wasted a week here trying to dive into learning D3.js
I read a few paragraphs into the documentation, and then it's on to something else.
I have this massive sense of dread even thinking about planning to learn it later.
It's not difficult to read, I have read through plenty of dryer documentation sites in the past.
I think part of this all stems from the fact that I tried to play around with D3 a few years ago and gave up on it rather quickly.
I seem to do the same thing with movies... if I start one and don't finish it for whatever reason... it's basically guaranteed that I will never finish watching that movie.
My mind has simply been made up that "it's bad enough that you stopped before, so why bother continuing?"
I don't really expect any response to this, it was cathartic enough writing it all out.
Thanks for reading if you did this far! <comment><USER2> I have a similar problem. I think I need external motivation, like a job or being a member of a team, to really be motivated to do something. Since I retired early, in my mid 30s, though, I don't have this kind of environment.

When I work alone, just a trickle of productivity comes out, unless I really push myself.

Once, I forced myself to work 4 hours a day for months to push a project out. I was able to accomplish this, but I was quite miserable when I was working.

Before I retired and was working for a company, I was able to push out 10 hours a day including a day on the weekend, and felt fine.

I keep thinking if there was only some way to create a team like environment I'd be able to accomplish a lot more, but I'm not sure how to do that. Reporting my results to others who aren't invested in what I'm doing doesn't seem to work. So, I don't know.

<comment><AUTHOR> It's not working in a team exactly, but venturing out into your local community and rubbing elbows with like minds daily certainly helps with the boredom of being a dev who works alone at home.

I've been one for over a decade now... and I didn't know how bored and depressed I really was until I walked into a yoga studio earlier this year and began practicing daily.

I've even met a few other developers there to shoot the shit. Turns out there are a lot of people with a lot of time on their hands... usually because they're well off financially and working on their own things... that visit these kinds of places.

<comment><USER2> That'd work if I lived in a tech centre, but I'm an expat out in the boondocks and moving isn't really an option for me.

</comment></comment></comment><comment><USER3> By far, the most effective motivation to concentrate on and learn something is being assigned to debug/add features in a language/stack I've not used yet. While this certainly lights a fire and gives me the concentration I need to learn how to get the task done I do wish I had more time to follow up with "now that I've done X in language Y and platform Z, I'd like to loop back and actually _learn_ language Y and platform Z — but I have a new assignment..."

</comment><comment><USER4> I think it's okay to procrastinate through something that's s really boring. For the last week I've been wrestling with Webpack because I've told myself that I should really be better at frontend stuff, and Webpack has been blocking me in just including stylesheets, JavaScript, fonts, and including a third party theme. It's not that hard, but it's really boring & frustrating to figure out, and the documentation for static assets in the web framework is quite stale. When. I do start working on it, my attention span wants to go elsewhere pretty fast.

After a week of chipping away at it as I had time and interest, today it clicked and I started to get it. Sticking with it was key. You have to decide for yourself whether whatever you want to learn is worth the pain, but I think it is useful to learn to stick with things long enough to figure them out.

<comment><USER4> P.S. sucking at something doesn't mean there's something wrong with you. It means your ambition to achieve has outpaced your present ability to implement. When you learn to channel that energy you're dumping into negative thinking into just learning it slower than you'd like, you'll feel so much better.

</comment></comment><comment><USER5> Amen to the team/peer accountability stuff. It just so happens that I'm in a similar situation with wanting to learn D3. Email me at bradydowling at Gmail if you want to chat and we can come up with some kind of plan for learning together or holding each other accountable.

<comment><AUTHOR> I just might shoot you an email tomorrow!

(Winding down for the night now and don't want to open it up again...)

I have decided to plunk myself down and watch this youtube video in it's entirety over the next week: [https://www.youtube.com/watch?v=_8V5o2UHG0E](https://www.youtube.com/watch?v=_8V5o2UHG0E)

I have had great experiences learning through freecodecamp in the past, and am thinking that perhaps the onslaught of a 13 hour video and a creeping progress bar might make it easier to digest.

The first 10 minutes have been great so far, and the comments are really encouraging.

Also finding this page was a real lifesaver [https://github.com/d3/d3/wiki/Tutorials](https://github.com/d3/d3/wiki/Tutorials)

<comment><USER5> I'm curious how you've been doing since then. I've been dabbling a little bit but I haven't found a really good guide or documentation.

I feel like most guides or tutorials are outdated or incomplete and it seems like documentation isn't very detailed. I think I understand the basics (create or select an SVG, add elements to it, apply attributes, etc) but lots of functions still leave me wondering what they do exactly and how I can change them to meet my needs. Curious what your experience has been and if you have any projects to show off.

</comment></comment></comment><comment><USER6> For me it's so important to be able to play with what I want to learn right away, especially with programming. If you want to learn D3 for example, maybe find a live version of D3 on the web where you can see it modify and change right away. You need to see results almost instantly as a beginner to stay motivated, unless you intuitively KNOW how good success shall feel.</comment>


SpaceX says it has found cause of rocket explosion and plans to fly again Sunday - <AUTHOR> https://www.washingtonpost.com/news/the-switch/wp/2017/01/02/elon-musks-spacex-says-it-has-found-cause-of-rocket-explosion-and-plans-to-fly-again-sunday/ <comment><USER2> The discussion is here: [https://news.ycombinator.com/item?id=13302650](https://news.ycombinator.com/item?id=13302650)</comment>


Scheduling tasks intelligently for optimized performance - <AUTHOR> http://blog.chromium.org/2015/04/scheduling-tasks-intelligently-for_30.html

<comment><USER2> very nice and all, but how about the massive memory leaks.</comment>


List of Famous Programmers - <AUTHOR> http://en.wikipedia.org/wiki/List_of_programmers

<comment><USER2> Is it just me or to be famous you have to have created a programming language or a text adventure in the 80s?</comment>


Pinched Nerve Due to Desk - <AUTHOR> http://jacquesmattheij.com/pinched-nerve-due-to-desk <comment><USER2> About 12 years ago, I had a similar experience but was less attached my desk...a second hand 36x84 monster dubbed "the flight deck" by a brother in law. I replaced it with a new folding "church table" with a molded plastic top with a generously radiused edge profile.

Problem went away. Ever since, I've been conscious of edges when looking at desks.</comment>


What is the Meaning of The Medium is the Message? - <AUTHOR> http://individual.utoronto.ca/markfederman/article_mediumisthemessage.htm <comment><USER2> My friend was telling me there was a Jean Baudrillard book with that same idea, but I don't remember what it was called.

</comment><comment><USER3> tl;dr it's not what your neon sign says, it's the fact that you have a neon sign.

Good article, but in the case of _Understanding Media_ it is very much worth the time and effort to read the original. I cannot praise it highly enough.

<comment><USER4> The author of this article seems to explicitly reject your interpretation of the phrase.

<comment><USER3> Don't agree. Oh well, each to his own.</comment></comment></comment>


The Memory App – Instant personalized memory recall - <AUTHOR> http://www.thememoryapp.com <comment><USER2> Why can't they provide at least a little bit of information about how it works? All we get is glossy descriptions without substance... "you want this app, it's really good".. but nothing about whether it works offline, what cloud services it uses, or any details about back-ups, data handling or web version, permissions, or anything.

<comment><USER3> This is my pet peeve these days particularly with mobile apps. Sure, you can use hooks to draw my attention but if you want me to install it - you've got to tell me "How it works".

</comment></comment><comment><USER4> So I have to _remember_ to manually tag every photo I take for this app to be useful? It seems like Google Photos is superior to this app in every aspect.

The only disruption in photo management and search that could get me to switch from Google Photos is an open source alternative with equivalent ML-powered auto-tagging features.

<comment><USER5> Having all my photos in Google Photos feels like I have super powers. I've managed to find so many photos I was looking for without any specific search criteria I knew would work 100%. But Google Photos tends to do a pretty good job at finding them.

I did write some open source[1][2] software I use in conjunction with Google Photos[3].

[1] [https://github.com/jmathai/elodie](https://github.com/jmathai/elodie)

[2] [https://medium.com/@jmathai/introducing-elodie-your- personal...](https://medium.com/@jmathai/introducing-elodie-your-personal- exif-based-photo-and-video-assistant-d92868f302ec#.7smu1wflb)

[3] [https://medium.com/swlh/my-automated-photo-workflow-using- go...](https://medium.com/swlh/my-automated-photo-workflow-using-google- photos-and-elodie-afb753b8c724#.4brchihgz)

</comment></comment><comment><USER6> Nah. Downloaded it but it's asking for way too many permissions without explaining why. And there's no conceivable reason you need my phone number. So, deleted.

</comment><comment><USER7> My memory sucks, and I would love an app to help me. Alleviate my concerns about data privacy, and make it available on Android, and I'll give it a serious try.

<comment><USER8> Same here. My memory is terrible. I've looked at these types of apps, but I have never seen one that was actually helpful.

Instead I stick with sticky notes for to-do's, and a folder of txt's of notes from meetings/conversations that I think I'll want to remember. This really helps remembering details, unfortunately I still can't remember faces for the life of me.

<comment><USER9> I can highly recommend this course, Learning How To Learn [1]. Among things it explains how memory works, how to avoid procrastination [2], and how to use several tools at your disposal in order to improve your memory. It is free, btw.

[1] [https://www.coursera.org/learn/learning-how-to- learn](https://www.coursera.org/learn/learning-how-to-learn)

[2] [https://alexvermeer.com/getmotivated/](https://alexvermeer.com/getmotivated/)

</comment></comment></comment><comment><USER10> Ever since I was a child I've always dreamt of some way of being able to 'download' and organise my memories. Like, if you're looking at an awesome view, or some serendipitous event happens that's too quick for a camera (e.g. a shooting star)

Obviously as I've grown older the reality of something like this is in the realm of science fiction, along with the privacy concerns of others and keeping memories that you would rather forget, but often I find myself in situations like at a concert where I'd rather not be viewing it behind a phone/camera screen.

I've seen wearable cameras in the past for people who suffer from memory problems, but I don't think anyone's ever commercialised it - for obvious reasons.

</comment><comment><USER11> Who are the people who built this? If everything is proprietary, how can we trust their storage? Looks like a fight between google and some other guys for my photos. Even if the app really was magical, my photos should remain safe(i know). at google

</comment><comment><USER12> I want people to want this but I know that people don't.

Imagine having a rewind button on your whole life, with annotations and references. That means everything you think or associations you make can be "sourced." That's an amazing thing that would eliminate any self delusion, deceitful action or inconsistent behavior.

Trouble is, humans are knots of inconsistency, deceit and delusion and we can't live otherwise. It puts our brains into panic mode and existential dread. If we could handle it, all the world's problems would go away, but we can't. Our current conception of ourselves is a polished and selective reinterpretation of our own past so that we can try and make our future selves fit some narrative. An accurate and auditable history would blow that up entirely.

I really want to figure out a way to build such a system but my fear is that it's incompatible with humanity.

<comment><USER13> Reminds me of the third episode of Black Mirror:

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

Similar, but in the case of the episode you could also replay every interaction you had with other people... Was that a slight frown before they smiled?

<comment><USER14> Or this Ted Chiang story?

> There's no denying the usefulness of software that can actually answer the > question "where did I put my keys?" But Whetstone is positioning Remem as > more than a handy virtual assistant: they want it to take the place of your > natural memory.

[https://subterraneanpress.com/magazine/fall_2013/the_truth_o...](https://subterraneanpress.com/magazine/fall_2013/the_truth_of_fact_the_truth_of_feeling_by_ted_chiang)

<comment><USER12> Thanks for that link, interesting reading for sure

</comment></comment></comment></comment><comment><USER15> Wow the app size is 159 MB, just wonder what all they have baked inside

[https://itunes.apple.com/au/app/the-memory- app/id1182717566?...](https://itunes.apple.com/au/app/the-memory- app/id1182717566?mt=8)

<comment><USER16> probably the whole Elephant for the logo.

You can download the app in iTunes, find the .ipa file and extract it to look what's inside.

Edit: also it's not the actual size that you will download on your phone. Visit the AppStore from your device and it will show you the correct size for you.

</comment></comment><comment><USER17> As somebody noted below, this just looks remarkably like Evernote: store notes, photos, places and reminders, with multiple tags that you can define yourself. It's an incredibly manual process, although as someone with 610 notes in Evernote, I attest to its usefulness :)

Really, this seems like the killer app for always-on video lifelogging, coupled to really advanced computer vision and automatic tagging. I would _love_ an app that I could ask whenever I put my keys down in yet another inventively silly place, or ask when I last saw my wallet (was it stolen, or did I just leave it at home?), or ask to show me all the times I'd put away a cable so that I could figure out where my rarely-used external HD power supply was stashed.

<comment><USER18> This reminds me :-) of the Remembrance Agent, an MIT project that looked at what you were doing in your Emacs and would pop up related hints and notes from your past as you changed contexts. I think they were trying to move the idea into wearables, but it didn't translate well with clunky eyewear and wearable keyboard. Now, with OCR and vision, your killer app is getting closer.

[http://web.archive.org/web/20160304120939/http://xenia.media...](http://web.archive.org/web/20160304120939/http://xenia.media.mit.edu/~rhodes/Papers/remembrance.html)

<comment><USER17> Oh, interesting. Eclipse has a similar feature called Mylyn, which allowed you to associate contexts with tasks - so, for instance, if you were working on a feature and had to quickly switch over to working on a priority bug, you could have different sets of open files for each of those tasks.

[http://www.eclipse.org/mylyn/](http://www.eclipse.org/mylyn/)

A quick Google doesn't reveal any link between the projects, but I do wonder if Mylyn was inspired directly by the Remembrance Agent project.

</comment></comment></comment><comment><USER19> Evernote?

<comment><USER20> I'm looking at hosting my own paperwork to replace Evernote:

[https://github.com/twostairs/paperwork](https://github.com/twostairs/paperwork)

I've been using Evernote since I first used the PalmPre app (they probably have the highest platform support out of any app), but with the recent price changes, I'm not sure if they'll be around for much longer. If I'm going to pay for something, I might as well have control of the data too.

<comment><USER21> I cringe on anything that uses MySQL to store information, but looks like something I wished I made, so I will definitely check this out, thanks for posting.

<comment> dumb-saint So you "cringe on" Wikipedia?

<comment><USER21> Good point. Still, MySQL in 2016, almost 2017 :)

<comment><USER13> I think the point is: if it's able to handle the data needs of one of the largest sites in the world do you really need to worry about it not being able to handle a pet app?

It is obviously up to the task.

<comment><USER22> I don't think thats a good point. I mean I can probably make a console application using .txt file on disk as the database and scale it to handle large websites.... if I had spent $100M on servers and 10 years of my life. Almost anything is possible with most of the technologies out there. But its about using the right tool for the job.

Stackoverflow is huge, its built with SQL server. If they had for example used mysql they would probably have had to hire 2x engineers + spent twice as much time tuning and tweaking.

All those top1000 mysql sites are heavily customized and tweaked to perform as well as they do. Using other modern technologies may had saved them 1000 of hours and money.

<comment><USER23> You can't bash on a technology by pulling numbers out of your ass and calling it a day.

It sounds like you've been drinking a lot of kool-aide and haven't given MySQL any real thought.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> Yet another iPhone-only app. Please remember 2/3rds of your market runs Android, not iOS.

Please stop leaving money on the table.

<comment><USER25> They're not leaving money on the table if it takes 6mo to learn android and rebuilt they're app.

I hear your frustration, but this goes against other common HN advice: "avoid the hip thing, build it with the tools you know best" (not to mention "ship early and often").

<comment><USER24> 99% of "Show HN" type of apps are website-in-a-box HTML+CSS+JS blobs.

There is at least 50 frameworks for easily building apps for both platforms (with some also supporting Windows Phone as well) with a single press of the button. Choose one, use it, stop reinventing the wheel.

</comment></comment></comment><comment><USER26> So.... What does it do? Is it a brain training app like lumosity or a spaced Repition system like Anki or a cause in using memory palace or what is it?

There is nothing on that page telling me how this app will help me remember stuff (or what kind of stuff)

</comment><comment><USER27> Why does it keep telling me the phone number I'm entering is incorrect?!?

</comment><comment><USER28> Can't even verify because it tells me I used the wrong phone number, lol. Wtf

</comment><comment><USER29> Looks like Google Keep.</comment>


John McCarthy on the importance of doing the math - <AUTHOR> http://www-formal.stanford.edu/jmc/progress/arithmetic.html

<comment><USER3> Why did you change the title? Look ...

\+ The URL ends in arithmetic

\+ The title of the article is

      > GETTING THE NUMBERS AND DOING THE ARITHMETIC

\+ The last paragraph says:

      > "Many questions can be settled by recourse to
      > available statistics and arithmetic - <USER2>
      > not higher mathematics ... "

Why did you claim it's about math? It's not, it's about arithmetic.

</rant>

<comment><USER4> "Do the math" is a standard phrase for doing the sort of thing McCarthy advocates.

He also has a great "test" of sorts that he uses on classes involving the putative fate of a doctor who developed the ability to heal anyone by touching them, it's in a delightful book that profiles him and two other smart people.

</comment></comment><comment><AUTHOR> A few paragraphs on the importance of running the numbers in any discussion. Part of his greater series on human sustainability and progress (<http://www- formal.stanford.edu/jmc/progress/index.html>) [WARNING: epic material].

excerpt:

""" Many questions can be settled by recourse to available statistics and arithmetic - arithmetic not higher mathematics, although higher mathematics is also useful. The converse is that failing to look up statistics and do the arithmetic is a recipe for ignorance. """

</comment><comment><USER5> [Not intending to start a flamewar...]

I was surprised to see that "acre-feet" were, apparently, not intended as a parody of the Imperial system.

<comment><USER3> No, "acre-feet" is an actual measure of large volumes of water.

ADDED IN EDIT:

One acre-foot is 1233481.84 litres. That's 325851.429 US gallons, or 271327.96 imperial gallons.

<comment><USER6> For some values of "actual". I think these kinds of retarded units are one reason for not doing the arithmetic.

<comment><USER4> Errr, no, acre-feet is this domain the unit of measurement for water in the US. At least west of the Mississippi (west of the first line of states it gets quite dry and everything changes, including the system of law about water).</comment></comment></comment></comment>


Ask HN: What are issues that people have with Google Search? - <AUTHOR> I think it is safe to assume we are all experts on search engines by now. What are features or processes on Google (or Search Engines in general) that cause you grief or frustration with every use? <comment><USER2> Here are a few, from three days ago:

[https://news.ycombinator.com/item?id=22978814](https://news.ycombinator.com/item?id=22978814)</comment>


Ask HN: Terms when joining a company as co-founder - <AUTHOR>

I've been involved with building several successful products for a company that now wants to break those out into a new company.  They've asked me to join as a co-founder.  The mother-corp will make a substantial investment and will hold the majority of the shares -- the rest will be split over the co-founders (which includes me).
My fears are: - to be treated as an employee (not able to browse the bookkeeping, or not in the loop for important decisions) - to have shares that I cannot 'use' (heavily diluted, or unable to sell) - that there is some obvious mistake I'm making, only to find out several years down the road.
Advice is greatly appreciated. <comment><USER2> Everything you fear could potentially happen, and there's no way to guarantee it won't happen unless you never create a class of preferred shares, always own a majority of the stock, and always control the board of directors. The future's just too unpredictable for anything you do now to somehow contractually protect you from every bad outcome. Some of the things you're afraid of, like not being able to sell your shares without board approval, are standard operating procedure at venture-funded startups.

If I were you, I'd talk openly about my fears with my other potential cofounders and the parent company, listen carefully to what they say, and then go with my gut. That's about the best you can do here.

</comment><comment><USER3> This is probably obvious - but I would approach it as if you were starting any start up that had outside investment. Have a lawyer review the terms and make sure everything is in your best interest.</comment>


'Father' of British computing dies - <AUTHOR> http://www.bbc.co.uk/news/technology-11875821

<comment><AUTHOR> Wikipedia bio <http://en.wikipedia.org/wiki/Maurice_Wilkes>

Sir Maurice was one of the giants. Also prescient, from his memoirs "It was on one of my journeys between the EDSAC room and the punching equipment that 'hesitating at the angle of the stairs' the realization came over me with full force that a good part of the remainder of my life was going to be spent finding errors in my own programs."

</comment><comment><USER2> Not taking anything away from Sir Maurice's contributions but Babbage and Turing were both British. Was there a need for another "father"-title?

<comment><USER3> Turing could be named the "father" of computer science (among others) and Babbage was the "father" of the digital computer.

I'm not disagreeing with you, though.

</comment></comment><comment><USER4> Maurice was a man of great humor and insight. It was an honor to have known him.

<comment><USER5> I completely agree. I met him about 10 years ago when both he and I were consulting at Olivetti Research Labs in Cambridge UK. A most gentlemanly man! So humble for being such a giant in the field.</comment></comment>


Houston Astros Database gets hacked, Trade Notes made public - <AUTHOR> http://anonbin.com/2412624498

<comment><AUTHOR> An additional leaked file can be found here: [http://anonbin.com/753432515](http://anonbin.com/753432515)</comment>


Quantum entanglement of a single particle has been observed by researchers - <AUTHOR> http://www.cnet.com/au/news/researchers-demonstrate-quantum-entanglement-prove-einstein-wrong/ <comment><USER2> That's a pretty brutal press writeup.

1\. "For the first time, quantum entanglement of a single particle has been observed by researchers." \-- No. This has been done many times previously. This is just the first time it's been done with the efficiency loophole closed. That's good, but not what the the reporter who wrote this thought. He'll probably write the same thing all over again the next time somebody repeats this type of experiment with one of the other loopholes closed.

2\. "A single photon (particle of light), for example, can be split into two particles that are still connected " \-- No. The photon is path entangled. It's still just one particle/wave.

3\. "Using homodyne detectors -- that is, instruments that can measure waves and wave-like properties" \-- This is hilariously imprecise.

If you're even remotely interested, do yourself a favor and check out the arXiv preprint posted by timnic. This cnet article is much worse than the usual low standard of journalism when it comes to QM.

<comment><USER3> Hi Beloch

I just read the arxiv paper, but with my limited QM understanding it's tough to really grasp the significance of this experiment. Would you be able to explain it in layman's terms (assuming basic knowledge of QM) or is it too tricky to explain?

Many thanks

<comment><USER4> In these types of quantum reality-probing experiments, any problems of experimental design that affect the validity of the findings are referred to as loopholes, as though there's some awkward legal wrangling going on, because the experiments were conceived originally to determine whether the controversial Bell's inequalities hold. The inequalities were designed to test Bell's theorem which states that any hidden variables (things not yet observed that have a causal influence on experimental outcome) are required to be non- local if they are to hold with the predictions of quantum mechanics. Non-local here means 'spooky action at a distance'.

Showing the inequalities to be violated (incorrect by experiment) was originally controversial because Einstein and Bohr had differing notions of what the quantum mechnical theory implied about reality. They engaged in a lengthy, open discussion about it which was never resolved. Einstein believed in local realism, in which there is no spooky action at a distance and properties like position and momentum exist even when not being measured. Bohr, on the other hand, insisted that there simply wasn't an underlying reality and that only when measurements are made are properties like position and momentum condensed out of the quantum mechanical reality. So, you see, the significance of the experiment is in line with the underlying nature of reality; by closing another loophole, we get closer to what's what.

[The rest here is historical context.]

The familiar refrain, "God does not play dice," is almost always taken out of context - within its original statement, Einstein was also talking about a kind of telepathy required with it - the non-local aspect of quantum mechanics. Einstein said in 1954 'it is not possible to get rid of the statistical character of the present quantum theory by merely adding something to the latter, without changing the fundamental concepts about the whole structure'. He was saying he lost conviction in using a hidden variable theory to replace quantum mechanics.

Bohr's view, like Einstein's later view, is more in line with modern thinking. A team led by Aspect in 1981-82 ruled out either locality or objective reality, by testing the inequalities experimentally. This left possible a non- local reality. In 2006, a group tested Leggett's inequality, and showed it to be violated, which refined experimentally what the nature of reality is, though showed only that realism and a certain type of non-locality are incompatible, without ruling out _all_ possible non-local models. (Nature, April 2007) Aspect remarked that philosophically, the 'conclusion one draws is more a question of taste than logic'.

<comment><USER3> OK - but what's the difference with previous experiments? Is it that they did it with a single photon? Or is it because they managed to do it from two remote laboratories?

<comment><USER4> It may be the combination is new; I don't know the exact state of the field, but: This experiment uses a single photon, so they don't have to sample multiple times and make a statistical analysis on that part. If they did, that might open the efficiency loophole. The communication loophole isn't opened, as they are in sufficiently distant labs, with short enough measurement frames, but that's been done before.

As far as I can tell, the disjoint measurement loophole doesn't apply here, either, as it opens when correlations are drawn from multiple samples; here there's one. I'm not sufficiently expert to tell whether the rotational invariane, or other loopholes are closed here. Can anyone shed some light on this?

<comment><USER3> That would be most useful indeed. Re-read the paper and still can't pinpoint the main difference vs. previous experiments, and why this is a significant achievement...

Any QM expert around here who could help us?

<comment><USER5> I wouldn't really call myself an expert so take this with an appropriate quantity of NaCl, but AFAICT yes, what is new here is an experimental violation of the Bell inequalities with a "single particle" rather than an EPR pair.

Note that the reason I put "single particle" in scare quotes is that there really is no difference between a "single particle" and an EPR pair. Both are single (non-separable) quantum systems. The only difference is that the "single particle" is in a state that constrains it to deliver its energy at a single location whereas the "EPR pair" can split its energy between two locations. So a "single particle" is really just a special case of an EPR pair, which is in turn a special case of an EPR N-tuple.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Preprint: [http://arxiv.org/abs/1412.7790](http://arxiv.org/abs/1412.7790)

</comment><comment><USER5> Previously on HN:

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

</comment><comment><USER7> [https://news.ycombinator.com/item?id=9288941](https://news.ycombinator.com/item?id=9288941)

</comment><comment><USER8> AFAICT no one has ever been able to distinguish a particle whose wave function has collapsed from one that hasn't.

That would of course allow faster than light communication by modulating the "collapsedness" of a stream of entangled particles.

<comment><USER9> Could you explain how this would be faster than light? Wouldn't the particles be traveling at the speed of light?

<comment><USER8> >> Could you explain how this would be faster than light? Wouldn't the particles be traveling at the speed of light?

As maxerickson says, you emit streams of entangled particles from a central location heading in opposite directions. People equidistant from that location can communicate instantaneously. Alice modulates the wave function collapse by either taking a measurement or not. Say measuring indicates a 1 and non- measurement indicates a 0. Bob over at the other end uses his ability to distinguish a collapsed wave function from a non-collapsed one to get 1's and 0's out the other end. Because the measurement induced wave function collapse is instantaneous this will be faster than light communication. Bob can tell weather Alice is measuring or not, right now.

I stand by my assertion that physicists can not tell the difference. I'll also add that the reason is that there is no difference. But by all means continue to downvote without a counterexample.

<comment><USER10> So if I understand correctly, this experiment is demonstrating that prior to Bob's measurement the wave function is spread out between the labs. I don't think that is the same thing as being able to detect a non-collapsed wave function (the design just assumes it exists, and the outcome implies that it is a useful description).

Are you talking about something more than that?

</comment></comment></comment></comment><comment><USER11> This is just another example of Sensationalismus.</comment>


Ask HN: Are services like chargify/recurly worth it? - <AUTHOR> Are services like chargify/recurly worth it for SaaS businesses? or should we just go with Stripe/Braintree since both of them provide basic subscription management tools( upgrade/downgrate , plan creation , etc)?
We appreciated your answer. <comment><USER2> As any SaaS product, you could develop your own. Here, your own subscription flow. I think the question is: do you want to allocate resources to this task rather than your real product?</comment>


Amazon Drive goes unlimited: $11.99/year for photos and $59.99 for everything - <AUTHOR> http://venturebeat.com/2015/03/26/amazon-launches-two-new-cloud-drive-unlimited-plans-11-99year-for-photos-and-59-99year-for-everything/ <comment><USER2> Great. Wonder who decided that a desktop app that automagically do the sync is useless...

Actually there is some kind of uploader: [https://www.amazon.com/gp/drive/app- download](https://www.amazon.com/gp/drive/app-download)

But if they don't have a fully synchronization app, I doubt that this will be a dropbox killer...

<comment><USER3> Well the API is there... [https://developer.amazon.com/public/apis/experience/cloud- dr...](https://developer.amazon.com/public/apis/experience/cloud-drive/)

Something built with rsync and optional encryption like in duplicati would be awesome...</comment></comment>