skysight-inc/HackerNews huggingface dataset:
Ask HN: When was your "ah-ha" moment when learning how to program?
Non-technical business guy here, I'm currently learning PHP, I've watched screencasts (Lynda)and I'm now going through PHP 101: for absolute beginners (http://devzone.zend.com/node/view/id/627. I'm starting to understand what's going on but, still have a loooooong way to go. Regardless of that, my question to everyone at HN is:

How long did it take you to reach your "ah-ha" moment when you first learned how to program? And how/what did you get to that point?

P.S. Would love to hear some exercises you did to apply what you were learning.
Spit-balling here, possibly drivel; feel free to call me out on absurdness.

What about something like a "no software for you" blockade/lawsuit-wedge? Form a little body, have some rules on how someone gets declared a patent troll. Alongside that, have anti-patent-troll companies start including "if declared a PT by so-and-so body, your license to use this software is over" in click-through EULAs. Intended result being: anyone working for patent trolls can't use enough modern software to function effectively, and/or they open themselves up for counter-suit via their use of software without license.
Amazon could certainly set up a "web app store" that manages web app purchases/authentication; it could run in a sort of "Kindle App for web apps" on the iPhone.

There are a lot of useful apps that would work just fine as web apps but discovery is hard.
Interesting. My Chinese officemate greeted me with "I see you have more weight" when I came back after three months. Is it a popular thing in China too? Or was he just being a dick? (NB I really did have more weight, but everyone else was too polite to mention it...)
"For their part, the British have what House calls the "etiquette of simulation". The British feign an interest in someone..."

Or sometimes you're making small talk with someone because you actually are interested in them, and just want to keep the first minute or two of the conversation light for whatever reason. Maybe you haven't seen them in a while and do want to catch up on really general things, or the weather really has been odd lately, or you can't think of anything to say right away and having some stock questions gives you a chance to get your bearings.

Just because it's a bit formulaic and routine doesn't mean all small talk is insincere.
It would really help the site if they actually had a privacy policy on their site.
there's always the Anthology, keep you busy for a couple hours at least

http://aclweb.org/anthology-new/
The math says more on Android than Windows Phone 7: http://www.asymco.com/2011/05/27/microsoft-has-received-five...
I have got experience of DSP assembly (mostly 320C25 stuff, a little 'C50), and I initially doubted the story. DSPs like the 'C25 were pretty easy to work with since the instructions were all the same length (ignoring memory wait states for the moment). But with the 'C50 (and the 'C30 from the article), delayed branching was introduced. Whilst you can optimise for that in your head, it becomes a pain and often results in hard-to-maintain code. Adding a couple of NOPs makes it much easier!

The article highlighted common sub-expression elimination too, which again can be done manually. But (and this is the crux IMHO) writing optimal code continuously at this level is mentally tiring (leading to bugs) and often gives brittle unmaintainable code. A compiler never needs to worry about this as it generates fresh code every time rather than maintaining the code from the last build. But a human will learn to avoid brittle code and hence won't be able to take advantage of the possible optimisations.
Well the orgmode.org homepage calls out one[1] in particular:

"2010-11-25 Thu: Maybe the times where Org mode could change hard-core vi users into honorable Emacs users are coming to an end? A Vim clone of Org mode is be written by Herbert Sitz, and judging by the videos it looks promising."

Haven't used it, though.

[1]https://github.com/hsitz/VimOrganizer
For those who prefer a language with namespaces (python) sublime editor is a good modern alternative.
Google Translate API to Go “Kaputt” in December
And for anyone who knows how entrepreneur-friendly France is, the fact that it's borrowed from there of all places is particularly ironic.
Its good technology is taking away jobs, if it is not, that means we are all doing something really really wrong.

Who in their right minds would like to do things just to do more things? People always come up with new things so they can stop doing what they are doing. Lazy programmers are the best, the ones that dont want to do things when a computer can do it for them.

People should stop working. We have enough technology to feed everyone on the planet, and maintain and develop our current rate of progress, even without aiming for full employment. We have to strive for lesser work days. Why is 8 hours acceptable? We are designed to work only 2 hours per day, maximum. That is why we invent.
Andrew - congrats! Great to hear this and of course best wishes for your business.

You should know that your post had quite a network affect - probably beyond what you realize. I was a commenter on that post and had at least three or four people reach out to me for input - one of which I was able to meet in person because I happened to travel to his city shortly after he contacted me.

Don't forget to look me up if ever in socal! ;-)
They are actually quite different.

'How' asks about the current state of things and how they are possible.

'Why' asks about the past, and how the current state of things came to be.

Depending on interpretation of the question, 'why' can be a lot more philosophical than 'how'.
Sorry, you're right. I was confused by the ELPA page which lists instructions only for emacs 21 and 22, but says elpa will be included in the next version of Emacs. (edit: now I can't find where I read this. I'm incredibly confused.)

Now I'm confused about how my other installs have it working.
There is a slight difference, though, in that the English speaking world has taken a huge amount of its vocabulary from French. It may be less remarkable when Americans borrow a word then when Germans do this. That said, "Entrepreneur", from what I read on wikipedia, was a 19th century import, not a William the Conquerer import, so you do make a pretty good point - it does seem more of a "borrowed word" than a core part of the language.

You'd have me convinced, except that I have it on the assurances of a fine former US president that the French, in fact, have no word for entrepreneur.
And quoted in the ancestor comment, too.

My "are you being sarcastic" is because phuff's wording made it sound as if she/he thought they were introducing new information ... ;)
Why do people forget about the Soviet Union when talking about "the war"?
While I agree with most of your post, I disagree with the last sentence.

I don't think you can count the "cost of Google walking away from Android" unless you also count the "cost of Microsoft walking away from WP7", unless you think there's a significant risk differential between the two events (which you have not justified in your post).

In fact, given that Android is open source, the "shit-hits-the-fan because we bet our entire company on the stack" risk-cost for Android is _lower_ because if the penalty was in fact that high, you could continue development in house.

And you can't argue that Microsoft is more vested in the WP7 stack than Android, because

1. Android has multiple users and manufacturers who would collaborate on the source if Google abandoned it.
2. Microsoft has walked away from platforms that sucked in the past (Zune).
Technology must take jobs away.

Invent something, do something, so you never have to do it again, or any one else. Enjoy life. Meet people, talk about ideas and new inventions, if you like programming all day, do it. If you like singing and dancing all day do it. If you like making movies, giving healthcare to people do it. Unconstrained by employment.
Lockheed Martin Hacked?
Lockheed Martin has reportedly suspended remote access to email and corporate apps following the discover of a network intrusion that may be linked to the high-profile breach against RSA earlier this year.
It used the fact that Germans don't have a word for small talk as evidence that Germans don't do small talk.
Zuckerberg's New Diet: Kill Your Own
I think building your own backend before you have funding when a simple API is available is a pretty bad idea. You don't know if your site/app will ever hit critical mass, why waste the time and money in building an elaborate backend system when you can develop that down the road when/if you have something worthwhile on your hands.
Just wanted to thank you for giving me an awesome tweet/quote/thing. Paraphrased as such: "Hell is a place where everyone burns for eternity, but doesn't put out the flames because they're afraid of change."
Will smart-phones eliminate feature phones in the near future? 
We can see that smartphones are becoming really popular, but what is the big picture? Are they close enough to take out of the market featured phones? Here are some articles that discuss these topic
I don't have enough karma to downvote you, but I don't think this kind of attitude is appropriate here.

This is a pretty neat project. In the Unix era, people believed operating systems had to be written in assembly and that an OS in C would be far too slow or bloated.
VS mimics both to an extent by allowing you to search with regular expressions and to choose to search from a file system context instead of project context. My favorite thing about this is I also use viemu, and I can search VS's search results using vi commands.
The problem as I see it (and I've probably said this before) is that not all jobs are equal... or rather that not all people are equal. Increasing technology doesn't take away jobs, it increases the amount of wealth you can create with the same amount of labour, at least up to a certain point. But it also makes the jobs that do exist harder (intellectually speaking), because as the jobs switch from "assembly line worker" to "guy who supervises the robots that work on the assembly line" the brainpower needed to do the job increases.

Roughly half the population has two-digit IQs, half the population has three-digit IQs. Two thousand years ago, 90% of all jobs were in the fields and could easily be done with a two-digit IQ. A hundred years ago, jobs had started to shift to the cities, but probably still 75% of 'em could be done with a two-digit IQ. Nowadays I'm worried that we're reaching the point where 60% of the jobs which actually and economically exist require a three-digit IQ to be done properly, and that this will only continue to increase as the easy jobs get automated away. What, then, do we do with the world's stupid people?
My boss taught me that whenever the word date / time / etc creep into a spec double your estimation for completion.

He was trying to be funny to make a point... but there is definitely a nugget of truth to it. Time is hard. (I write embedded DVR software these days)
I just turn off all the chrome and use it as a text editor.
geebee: http://www.snopes.com/quotes/bush.asp
Google Starts Adding Flight Schedules And Airline Routes In Search
Yes, sorry, it was a patent settlement. It would still involve a lot of LCA manpower regardless.
When I fire up Aquamacs on my machine, the first thing that appears is the agenda based on four org files.
Oh, shoot. I hate it when people say Al Gore claimed to have invented the internet. Leaving the post up so that people know what you're talking about.
I think he may have been making a reference to the character House on the American TV show House M.D.
This is by far my (least?) favorite:

http://ca.php.net/empty

-----

The following things are considered to be empty:

- "" (an empty string)

- [...]

--> "0" (0 as a string) <--

- [...]

- var $var; (a variable declared, but without a value in a class)

-----

Why the heck is "0" considered empty?
I came set to fight, but... He's right. People really do just give up their privacy that easily. Take it away a bit at a time and eventually they get used to it. Facebook has proven it.

There will always be those who won't stand for it... But there's not enough of them.

My real problem with Facebook and privacy isn't that it allows you to give it up, but that it takes it from you and then let's you opt out of it.

Giving things up should always be opt-in.
The same "ephemeralization" has also created thousands of jobs for people that produce those devices and people that build applications for them.
This non-fiat currency is up over 1,000%
So Google instantly competes with no less than three YC companies:

Hipmunk http://www.hipmunk.com/

FlightCaster http://flightcaster.com/

Adioso http://adioso.com/
Erlang R14B03 is out
That's still 3x less than what Microsoft charges for WP7 from manufacturers.
Agreed; the (possibly impossible) goal of any sensible government should be full unemployment.
As a former Vim user, I use viper-mode with emacs. Org-mode really is a mature, powerful killer app for emacs and there is a whole ecosystem of tools and addons that make it even more valuable.

I would accept no substitutes at this stage.
I've not found a book I thought was better than the Google docs, sad to say.

Biggest issue I had was grokking the idea of intents and such; the terminology is not well explained.

Overall I got the most out of looking at sample code. I've seen several suggestions to do the Google tutorials as well.
Yes - a combo, regardless of the price unless it's an office machine under a maintenance contract, will eventually become an overpriced and oversized single-use machine.

You will save time, headaches and money (in the long run, at least) by spending a little more up front by purchasing separate devices that are designed to do the job you want them to do.

I can't speak to the Linux aspect.
Of course, and I think that's a pretty good trend in both cases. The thing is, though, bad motors can cause electrical fires, which are dangerous. If the trend toward smaller motors were accompanied by a trend toward higher risk of burning your house down, I'd say we need to work on that.

Here's how I explained the bootloader issue to some people yesterday who I think were average:

The bootloader is the software that runs on your phone when you turn it on. It starts up the rest of the software on the phone, and if it's "locked", it will only start up software that the phone's maker has approved to run. This enables your cell phone company to cheat you by, for example, charging you a dollar for a ringtone that the musician released for free, or to charge you rates a hundred times as high for text messages as for other data transfer.

There are worse things they could do, too, like making your phone never turn on again if they have a contract dispute with you, or activating the camera or microphone without you noticing upon a request from law enforcement or because some guy in their law enforcement service center wants to see you get undressed. They haven't been caught doing those things yet, but when they do, people with unlocked bootloaders will be able to stop them, and other people won't.
Full disclosure: I currently work with myGengo.

That said, we definitely welcome developers to our services. I just wanted to take a second to note this for any Python developers interested in our services, though - if you don't like the supplied Python library (I didn't), I wrote a new more concise and documented version. It's easier to follow and extend, and has some functions to help with encoding/decoding characters.

We're considering adopting this as the main Python library in the near future. Always interested in input from other developers!

https://github.com/ryanmcgrath/pygengo
Another alternative that, AFAICS, doesn't use anything external to emacs

;;; Full-screen mode
(defun toggle-max-window ()
(interactive)
(set-frame-parameter nil 'fullscreen
(if (frame-parameter nil 'fullscreen)
nil
'fullboth)))
(global-set-key (kbd "<C-M-return>") 'toggle-max-window)
This is the reason I gave other examples.
This doesn't apply only to words. It applies to expressions as well.
Literal translation being possible is the exception, not the norm.
What a bummer that this is getting treated even mildly seriously. One of the real delights of working in this field is the easter eggs in RFCs and in tech specifications. What great about this little bit of fun text on Twitter is that it's funny now and will still make sense as an example even if Twitter isn't around.

Easter eggs rule and add spice to sometime dry tasks, so, years ago when I worked at National Semiconductor, I encouraged the team to add easter eggs to our work product. A fellow engineer got "This device will provide more wattage for your cottage" into a footnote in a datasheet for very popular part. I took to adding haikus onto the undersides of my demo boards (which later got us into trouble with Panasonic, but oh well...).

Awesome RFCs or tech easter eggs:

http://en.wikipedia.org/wiki/Evil_bit

http://googleajaxsearchapi.blogspot.com/2010/03/helping-you-...

http://tools.ietf.org/html/rfc3675 - really serious, really funny

Lots more: http://www.openrfc.org/humour.pl

EDIT: ohmigosh, I'd forgotten how awesome some of those RFCs are... Hyper Text Coffee Pot Control Protocol [HTCPCP]...
So win-win I think.

Well, except for end users who are ultimately the ones paying for Microsoft's extortion.
I'm not patio11, but what I can tell you as a customer is that your first page (from when you launched) did a better job at selling your product to me.

What I still remember from that page was :
1) Hand-made
2) Scarity (in a good way)

I just checked your website and 30 seconds after I don't remember anything about it.
I started programming in 1991. Initially I didn't understand any thing. Then after couple of months every thing made sense. The only thing in programming is practice. If you don't get 100th time you should try 101st. If you don't get it in 1000 times try 1001 time. The only way you can get any thing in programming is practice practice and practice. This is not rocket science eventually you are going to get it. The only thing you require is patience. Always start simple. Then slowly try to learn harder things. These days you have lot of resources available online which makes it very easy for one to learn programming
He could be right. But I think he's cutting the cycle off short. To me the cycle is this...

* People worry about a new feature

* The feature sticks around and people do get more
comfortable with it (this is where Zuckerberg ends)

* At some point the initial fears are realized and people become eternally disenchanted with the feature

So for example he mentions the Wall.

* People were nervous about the Facebook wall at first because they thought putting so much information about themselves in one easy to locate place was a bad idea.

* People got more comfortable with it because it was forced on them and nothing bad happened.

* Now what I'm starting to hear is more and more companies are requiring applicants to friend them when they apply for a job. Every person who told me an employer asked for access to their Facebook page has also told me they regretted some of the things on their wall and would be wary of it in the future.

So I see a backlash at the end of the road here. One Zuckerberg (understandably) doesn't want to face.
I agree. Do you think that there was once a time in place for patents or that we still need them? The concept of "owning" ideas is really weird to me.
Thanks. I've been using tl;dr as a shorthand for this is my summary of the article in question. I now appreciate that not everybody sees it like that. In future, I shall refrain from using tl;dr and just summarize without any preamble.
I agree, with both you and your sibling. I meant to include "this one is no exception."
PHP's single greatest advantage is ubiquity - would love to see a CoffeeScript compiler for PHP that smooths out these issues.
there's something wrong with the == and coercion in the if() statement in any language.

making the switch in if() be a boolean only pushes the problem off to the programmer, who will often choose the wrong function or expression to do the conversion
Got the same impression. The goal was X, realized that you first needed to do A,B,C before reaching X. Isn't that something we all do intuitively or intentionally all the time?
Mine them for data after making them share as much about their life as possible.

More seriously, those three-digit IQ jobs will turn to two-digit IQ jobs as technology makes them easier. There's a predictable cycle for technological progress, until a certain point at least.
I really don't see what namespaces would achieve.
The way it is I can look at something and explicitly see which module it belongs to (e.g. dired-next-line, image-next-line vs. org-agenda-next-line).

In my experience namespaces only introduce notation to distinguish modules but so does a simple convention.
It doesn't compete at all with the iOS app store, they are only selling OSX desktop applications, not mobile iOS ones.
Before everyone goes all "why don't you switch to language X or platform Y or lisp variant Z" I just want to say good job on this.

These all seem to be sane critiques of PHP without being all doomsday world-ending inflamatory. Kudos.

Also, I think that this is another example of how hard it is to build up a large and widely-used language/framework without having lots of warts. Especially since PHP wasn't originally designed with the intention of powering everything from a simple blog/cms to facebook.
I've definitely run into #1 on the list. "Paamayim Nekudotayim" is a transliterated version of פעמיים נקודתיים‎, which means "double colon" in Hebrew. Zeev and Andi are Israeli, which kind of explains it, but the error message is still pretty useless.
Oh strange, when I originally posted my comment, it wouldn't let me reply to yours.
Hi. I'm German and the word for small talk is "Schwätzchen"
php -r 'array("a","b")[0];' results in a parse error.
If Loudsys is a patent troll by definition, all Apple/Google can do is to invalidate their patents, which is really hard and very unlikely.

Boycotting also works if everybody would do it. How would that work when one developer is boycotting and his competition is not (lots of copycats in both stores).
It hasn't been on their website for a while, you have to either go to a store or call and specifically request it.
Steven Brust worked as a programmer before he was a full time novelist, according to his son, who is also a programmer.
Anyone got a developers prospective on this? What needs to be done to your software to make it work? What is the pricing like and payout?
Awesome Things While Programming
Developers are known to swear quite excessively while programming. There are many things that can frustrate a developer - an elusive bug that can't be found, your environment crashing or all your tests failing because of a typo. That list could go on forever.

Sometime you just need to look at the bright side. So, here are some awesome I love while programming to keep you happy on Friday!
Not sticking up for myself.

Don't wait for some theoretical FU money.

The people who have FU money, if they didn't inherit it, seem to have incorporated my first point into their lives. (Not that money is necessarily the outcome.) Also, sticking up for yourself does not equal being an ass to other people. For myself, treating other people nicely/respectfully is inherent to my own well being. And I actually do worse at it when I am not taking care of myself.

As for the "I should never have made the mistake" aspect. My intellect, and/or my intuition, could read the situation. But lack of will power, conditioning, health, or whatever -- something held me in place.