skysight-inc/HackerNews huggingface dataset:
While you certainly make good points from a business perspective, it's becoming increasingly more likely that programmers you can hire that both:

+ know PHP

+ are experienced enough to deliver a working, maintainable application

are also fluent in at least one of ruby or python, both of which are much nicer languages in general and have strong web-dev presences.

The issue with hiring "people who know PHP" just because a whole lot of people know PHP is that issues with maintainability of whatever gets written tend to be much more of a pain than with similar projects in other high-level languages.

It's not, of course, that you can't write a ball of unmaintainable mud in any language -- you certainly can. PHP is lacking in areas that make fixing that less of a nightmare, and lacking in areas -- both in the language, and in the community for lack of a better term -- that make writing maintainable stuff in the first place easier. The devs who know how to create maintainable PHP codebases, or fix unmaintainable ones tend to have experience with other languages.

This should be, in my opinion, a pretty major concern for business. While it may not be apparent at first, there tends to be diminishing returns from maintenance and development of a product if it's a giant mess. Doing PHP on new projects for ease-of-hire is inviting that mess, due to a whole bunch of little things that tend to snowball. Skilled people won't want to work for you, people that will be skilled but lack experience will leave your employ, and eventually the project will grind to an iceberg pace and stress levels will get high for everyone.

A good dev will probably not have a problem picking up whatever language, as long as you're using "general-use" languages. In the web-dev world, this is currently mostly ruby and python. Choose haskell, and you'll probably have some (read great) difficulty finding people to hire. Choose ruby or python and you'll be more likely to attract the type of devs you want, and at the worst you'll get someone inexperienced who makes a mess that is easier to fix than it would be in a PHP codebase of similar messiness.

If it was just the merits of the language, I don't think I'd have much of a leg to stand on talking from a business end. It's not though, it's a whole lot of little negative things that can make a long-term project more likely to be a failure. The language, and the tools, and the community are getting better, but that's mostly due to the efforts of people who are skilled and experienced with a variety of things improving it because it's paying their bills. It's still far, far away from any other "popular" language in terms of tools, community, available libraries, and just about any other measurement you can make other than "number of people that can say they know it on a resume"
>Go has exceptions. They are called panic/recover.
This has been explained to you time and time again. You keep posting this exact same comment, complete with the "COME FROM" analogy. Then it gets explained to you that panic/recover are an exception system. Then you ignore it. It's really tiresome.

He might ignore the similarity of panic/recover with Exceptions, but you also ignore:

panic/recover is not used for 99% of exception control in Go. We just check the out-of-band error code and act accordingly.

Panic/Recover is only used for TRULY EXCEPTIONAL situations.

Wish we could say the same for, say, Java's exceptions.
I'm glad that when I refactor code in Java, the type checker catches many of my mistakes. Not as many as in Haskell, but still.

In Python, the deploy/run unit tests/spot typo cycle greatly slows me down.
We had to learn it when doing an oo programming course at university. And I immediately forgot all about it.

I hope when writing Java code sometimes at a job, I can refer to this again.

This is all done in the name of type safe programming (I don't know the exact english terminology).

<? extends B> is called covariance. It helps to access attributes of B and derived classes with get() but prevents to use set().

ArrayList<? extends Number> list;

list = new ArrayList<Integer>();

list = new ArrayList<Double>();

list = new ArrayList<Long>();

list.set(index, myInteger); // throws error

Compiler has to know the exact type to set the value, but Long, Double and Integer are all from type Number, so you can read it into a Number variable.

Is that correct?
>* Having to check errors is annoying since most of the time you want to bubble the error up to your caller.*

No, most of the time I don't.
I think the key difference between iBooks and iAds is that there is at least some demand from users for the former - some people buy iPads to primarily use as eReaders, whereas nobody is buying iPads to look at iAds.
The fact that you think you can understand the outcome of such a huge decision in just 10 months is telling. Come back in 10 years.
Come guadagnare con Facebook | Affiliarsi.com
How a language can be faster than C
I'll keep an eye on it and see if I can send you a pull request :)
"borrowed heavily" != copied verbatim.

How many hollywood movies feature extremely similar plots?
100 websites from EACH of Alexa's 15 categories = 1500 sites. Sure the sample could have been bigger, but with millions, if not billions of websites in existance, what number would you class as a representative sample?
How SOPA Could Actually Benefit File-Sharers
I of course have no proof, but I sometimes get a feeling that Gödel does have something to do with the limits of rational thought.

To me it seems humans have found a way to cope with Gödel's incompleteness: we accept that some of our axiomatic systems are inconsistent and adapt by simply discounting the value of proofs.

It's difficult to explain, but let me give an example. Among engineers you can often reason along very long logical chains and have your conclusions accepted. Among (some) business people you can't. They seem to refuse the validity of logic itself, being nervous about trusting logical conclusions. I think that's because they know their axiomatic systems are self-inconsistent. :)

By observing business people I have come to the conclusion that the best you can do in an a self-inconsistent axiomatic system is to look for "nuggets of truth" and never wonder too far from them. You can hear people say stuff like "limiting tweets to 140 characters will brings out creativity - people are less afraid to create when they are constrained" and similar. If you accept that as truth then you can wonder a short short distance from it and reason about business opportunities, but you can't combine that nugget with some other nugget and be sure to come to a correct conclusion.

Perhaps it is so, that the likelihood of "proving" an untrue statement in a self-inconsistent system increases with the number of axioms you are basing your proof on. That's perhaps why many people are very skeptical of "proofs" that seam to involve a lot of axioms? :)
How I Got Headhunted for a Jaunt to Japan
I agree, usually theres also a ridiculous list of technologies a candidate is expected to be familiar with, most of which can be picked up by a competent developer/designer in a matter of days.
There is no such thing as "the best textbooks", just "best textbooks" for each person.

http://www.ted.com/talks/malcolm_gladwell_on_spaghetti_sauce...
When I read the title, I thought this thread was going to be about what happens on the other side, not this one. Damn.
It looks really great! I'm going to try and get my kid brothers to play this because I hope it will get them interested in the technologies behind games a little rather than just playing them. Only saw a windows version so far though? Any plans voor an OXS/linux version?

Edit: It's on the wiki, both are planned.
Wanted to emphasize the immigration/visa point. Several times I've seen briliant people that can't move to US to start a job because they don't have a degree.
مباراة الاهلى والبن الاثيوبى اليوم الاحد 25 مارس 2012
Run code after each failed test in ruby Test::Unit
In this case it would he helpful. Not mentioning it makes you a gentleman ;)
Credit cards for bad credit
Epepi.com offers the best credit card deals on the market. Compare the Best Credit Cards, Cheap Loans and Payday Loans, Mortgage Rates, Savings and Bank Accounts. Find the best deals with our expert money saving tips. Apply Online for Best Deals!
When I was using Common Lisp, I printed this out and referred to it all the the time. It is quite useful once you get used to it.
> But if a person accepts the Church Turing Thesis, then the human brain is not doing any computation that can't be modeled by a Turing Machine. In fact, the brain is at least a Turing Machine. Gödel's limitations will apply to it.

That's not the case. If one accepts the Church Turing Thesis, then those functions the brain performs on effectively calculable functions can be performed on a Turing Machine. The brain is at least a Turing Machine, but may be greatly more than one, and Gödel's limitations will only apply to that portion doing calculations. The brain may very well be doing a great deal more than simple computation.

Thus, when you write I argue that the mind is a program that runs on that Turing machine, you're leaping off into wild speculation.
so i'm basically that kid in 10 years.

all i wanted to do is code, code and code some more for ethical orgs and thats all i've done for the past 10 years.

but now (literally now, i'm procrastinating while i should be doing an assignment) i am back doing a degree via distance ed to get a piece of paper... and the only reason i'm doing that is i want to work in japan which is a bit hard without a piece of paper.

anyway, if you want to code and have the skills and opportunities infront of you then take them, uni will be there waiting for you whenever you want.
Chinese Coup Rumors Run Wild Online, Then Disappear
I don't think any of what you wrote justifies not going to college. You could have easily done all the same things you did in the last ten months while taking classes at the same time. That's what I've been doing my entire college career, and I've had well-paying jobs, great internships, networking opportunities, travel for cool conferences and hackathons, and all the rest, all while earning a degree.

It's great that you're making all these things happen in your life, but it doesn't make sense to think of it in terms of "this is what I'm doing instead of college." You can easily do both.
It's hard to pinpoint exactly why I was having so many problems with deadlocks. Most of the time they could easily be solved by having channels with an unbounded buffer, thus guaranteeing asynchronous behaviour. But since the Go authors intentionally left that out, I must be doing something wrong at a more fundamental level.

You're probably right about the IRC clients using the latter style of callbacks. But then it turns pretty much into the following style:

irc_connect();
register_event_x(callback_x);
register_event_y(callback_y);
while(read())
dispatch_event();

Which is essentially an event loop with callback-style dispatching. The only major difference here and with regular callback programming is that the callbacks are allowed to block. But in my mind that only complicates things as I can't tell anymore whether I can receive a particular event at some time because I have no idea whether there are any blocking handlers going on. Of course, you can dispatch everything into a separate goroutine, but then suddenly I can't easily argue anymore about the order of message arrival and what effect that has on shared state. Of course, this example may be a bit vague and abstract, but these resemble the kinds of issues I have constantly run in to.

On the scaling on multiple cores: Sure it's a nice advantage when you're already used to concurrent programming, but for most things I've written so far it doesn't really matter. In the few cases that I had a component that required heavy disk I/O or computational resources, it was only a small and easily-identifyable component that could be implemented in a separate OS thread. I'm not familiar with Node, but both glib2 and libev allow spawning a separate event loop in each thread and provide mechanisms to communicate between each other (idle functions in glib, ev_async in libev). Those are for C, however, and I have to admit that callback-style programming isn't too convenient there due to the lack of closures and automatic garbage collection.
> I started out just knowing the basics: HTML/CSS and some Photoshop skills. Hardly any knowledge of JS or any programming language.

What did you do during your high school years? Why didn't you learn to code then?
They tried to solve the hard problems first.
Too Much Theory, Part 3
That's cool question! It's like who is stronger Vandam, Chuck Norris or Stallone )) It will be great to include chart here - to illustrate all languages with more then 'N' points for example.
Is this is an acceptable convention in US: http://omgpop.com/drawsomething says that the app is available at .99 cents (Get it now: .99 cents)?
Mac Users Read On: Quick Fix for Hash Mismatch Error.
Here's my programming language usage history so far. (learned order)

1. DOS batch scripting (1994)

2. C (1996)

3. Bash (1998)

4. Pascal (2000)

5. PHP (2001)

6. Ruby (2002)

7. Javascript (2004)

8. Python (2005)

9. Ruby (2009-present)

Now I'm in love with Ruby more than ever, I turned it down several times during my college years in favor of Python, but finding Ruby is like finding your true love. I was in loved with her more than ever. I have gone through Python, and back to Ruby and I am much happier as a programmer. :-)
Thank you FluidDjango for posting this. You just saved me money.

After reading this article, I realized this just happened to me. I ignored the messages (From "Brain Cool IQ"), thinking that they were spam. Didn't bother reading them. Thankfully I had not yet deleted them.

The first message, on Mar 8, advertised the service. Then, on Mar 22, I received three messages in a row. The first advertising the service, the second welcoming me to the service and inviting me to cancel with a "STOP" message, and the third with some stupid fact.

In my case, the STOP message, which I sent just about 20 minutes ago, seems to have worked. I got a response claiming I was unsubscribed from messages and fees.

I never subscribed to anything in the first place. This is fraud, plain and simple. In my case, I ignored the first advertisement sent on the 8th. Had I actually subscribed to this service, they wouldn't need to advertise it first. Since their first round of messages on Mar. 8 didn't succeed, I imagine they got bolder and decided to subscribe me (and everyone else in that batch) without my having asked.

Since this was from a few days ago, I cannot check to see if anything was billed to my Verizon account yet. That would show up on the next invoice. I did change my account settings right away, blocking all Premium SMS message services.
If you like this article, the book C Interfaces and Implementations[1], goes into this exact technique in great detail, along with many other useful ones.

I picked it up after tptacek recommended it here on HN, and it's definitely worth every penny if you want to do any C programming on a reasonably sized project.

[1] http://www.amazon.com/gp/product/0201498413/
Cute interface. The aesthetic could be a little more refined but the behaviour and the animation is quite charming.
Islamic website
Islamic websites are different URL websites with a content related to Islamic facts.	all about Islam, code of life, history of Islam, Islam and marriage, Islam online, Islamic books online, Islamic center, Islamic cultural center, Islamic names, Islamic poems, Islamic shop, Islamic websites, Muslim, what is Islam, why Islam
I know it looks like it, but I promise this is not an attempt at kissing Dustin Curtis' ass so he lets me in the Svtble network…
While everyone has different tastes and needs, there's no doubt that some books are better than others. Not to belittle Gladwell too much - I enjoyed the talk and it's a valuable perspective on market segmentation - but using a pop science author talking about spaghetti sauce as a source is hardly an argument to dismiss the notion of quality.
I first used XBMC back when it was XBMP and I was looking around for better dashes than evoX on my xbox. Good times getting those t3ch builds and pushing them to the xbox, occasionally messing it up and needing to drop back to the bootloader to fix it :)

It is incredible how this project has kept on pushing out great features and support for new platforms. I talk to people at work who have discovered this and now use it on their mac mini/htpc, and are completely disconnected from the whole Xbox aspect of it.

This team has a great idea when they initially tried getting builds working and usable on windows and linux. I wouldn't have imagined at the time how far this project would come.
That's close to Jacques Lacan's famous argument that there is a philosophical equivalence between the square root of -1 and an erect penis.
Why Node.js streams are awesome
As a rider to the stackexchange discussion: TeX/LaTeX did indeed have competition in the early days from, for example, troff. However, the eqn filter for troff was designed to generate troff macros; some knowledge of troff is required to use it effectively, and (speaking as someone who worked in a UNIX techpubs team for a few years in his mis-spent youth) troff is not a terribly elegant or user-friendly language to say the least.
Hi there,

Thanks for the criticism! I do realize my accent might be off-putting and did my best. My friends and I did many takes and kept the best of them, fully realizing the limitations we were working with.

I wanted the video to feel personal and also use this as an opportunity to improve my communication skills.

I subtitled the video in both English and French right away to mitigate the problem.
How to Transfer Files in Android Wirelessly
Infosec Island's Guide to Surviving Black Hat Europe
Code Pad - Save, Like & Share Code Snippets
My reality is bogus. 10,000 downloads and no users. Did you notice, I get no emails from users. Just FBI.
Relative Line Numbers in VIM
The current implementation can't be nested...
there's nothing worse than a high rising terminal
Modernize Open Skies
Thanks for the kind words.

You're right in saying CraftStudio isn't your regular game, but I do think it has a very gamey feeling to it, if only for the fact that editing is tailored to be simple and it's fully multiplayer.

There are quite a few people hopping on the public test project again and again with nothing special in mind but to join others in making something fun and cooperating.

I think using the word "game" lowers the barrier, some people are wary at the idea of _working_ on a game, using _tools_.
He has just released a new book that should be the evolution of the one you cited. It should be called 'the startup's owner manual' and he said it contains what he has learned in the past ten years. you can find it on amazonn and on his site
Every system might have weaknesses. What matters is:

1. Small surface for attack. With NaCl it is all concentrated in single tiny validator module. The model is also simple and mathematically proven to be secure.
2. Prior testing. It is especially hard for security product. Establishing motivating prizes is good way to ensure it is not easily breakable.
3. The speed with which patch is made available
4. Defense-in-depth, ability to have multiple levels of defense cheaply.
IndieGoGo actually lets you choose whether you want an "all-or-nothing" or "keep it all" campaign.

The main reason I wandered away from Kickstarter is that in order to start a campaign, you need to be a US citizen living in the US with a US id. Since I'm living in France, that's not happening.
Here we see the folly of censorship. If one farts in a vacuum, the fart quickly spreads to occupy the entire area.
> that teachers know a lot more about teaching than we do

Teachers think they know what's right, but without good quality research (large samples and preferably some blinding) they cannot know what methods are more effective.
Similarly, jumping forward over C++ objects declared on the stack (also when using goto) will skip their construction.
xbmc also has builds for the iOS. You'd need a jailbroken iDevice to get it to run, but you get the full XBMC experience (with apps, themes, weather etc) instead of just a remote to control your "other" instance.

See http://wiki.xbmc.org/index.php?title=HOW-TO:Install_XBMC_on_... for more details on how to install it on an iPhone, iPad or iPod touch
I'm not too sure about the market correcting these inefficiencies in the near future. I mean, I understand your point, and it makes total sense, but it may not be in everyone's interest to act on this.

Let me give you an example. I interned in a company in France that would hire only from the top 3 engineering and top 3 business schools in France. I had friends who where very successful interns in the company, but who didn't get hired full time in the end because they came from the 4th or 5th business school.

Now I've been talking about this a lot, and the main argument I heard was: HR people are just trying to cover their asses in case something goes wrong. In France (I don't know if it's the same here), firing an employee is so difficult that companies want to make sure they don't screw up when hiring. Or rather, HR want to make sure that if they screw up, nobody can hold them responsible. If they think a non-degree holder would be a good fit, that they hire him, and that this non-degree holder turns out to be not so good, then everybody is going to ask them why on earth did they bet on someone with no degree. If they stick to someone from a top school, they can still say: look, he seemed really good, he has top credentials.. it's just bad luck, we did everything possible.

Someone mentioned institutional inertia above. I think that's exactly what this is about.

Note: I'm not generalizing to all HR people. I've read lots of posts on HN concerning the hiring process, and it seems that people take it seriously in the startup world. My small experience in big companies tells me that it works differently there.
Senators ask feds to probe requests for Facebook passwords
Livermore repairs
If all is that simple & rosy why no hosting/cloud service uses it?

Why entire shared hosting industry custom-patches their kernel constantly with OpenVZ and stuff?

Why shared hosting has such a bad reputation for being insecure (despite all efforts).
It seems to me that callbacks are a solution to a problem that green threads (Erlang, Go, Stackless Python) solve far simpler. A system of call backs with events mixing multiple logical processes into one thread of control seems very complex.

(Question: How do other people debug callbacks? If our state sits in a single thread with hundreds (thousands?) of functions waiting in the wings - how do we tease out the state and control flow of a single request?)

My experience with callbacks is all in Javascript. It can be a fun model, but the author's description of his own mental model for callback code illustrates the complexity of this approach.

Time will tell how this pans out. Will we be using callbacks in 5 years time, probably - Javascript isn't going away any time soon. Perhaps given that javascript will be the way more and more people start programming the callback mental model will be strong for years to come. I hope not, this may mean I will have to develop my own internal landscape to reason about all those callbacks. :)
The good old luck coefficient argument - the amount of luck you have is the area under a graph where Y is "how many people know about it" and X is "what you do".

For some reason I can't find the specific blog talking about this right now, but it's a fairly straightforward logical concept.