skysight-inc/HackerNews huggingface dataset:
Damn straight, good rant. The claim about it being simpler to leave the GIL is true. As Nick mentions, there are 2 reasons why it's desirable to remove the GIL:

1) CPU bound work. Generally breaking up CPU bound stuff needs to be coarse grained anyway. By migrating to process-based parallelism, you potentially incur communication overheads, and library issues. Both of these can (in my opinion) for the most part be worked around.

2) Concurrency. The standard workaround here is to use threads until the context switching overhead destroys your performance, or use one of the growing number of concurrency libraries. Twisted, Tornado, gevent and others for example. The issue here is that it's very difficult to vet code to not block your chosen framework. Horror stories abound where this occurs in some rare case and brings down servers or destroys throughput. Here I think Python critically needs to standardize on something, but drags its feet because it requires breaking compatibility with the C ecosystem in CPython. That in turn makes it pointless to use Python unless it has C-like performance of its own, which it does not.

Clearly full threading parallelism is required. To that end, PyPy with STM enhancements is the only thing on the radar that has the potential to do this, may we all look forward to it. Further, GCC and other C compiler should start providing builtin STM support in the next few years, this is another opportunity to replace the GIL without endangering the implementations simplicity.
No, that was just an example of a unexpectedly CPU-bound operation. My point was that you can't assume your Python program is not CPU-bound. Every time you have to do something non-trivial in Python, performance could become an issue.
LED light_Ileaderled lighting Co.,Ltd
x3 - it's far simpler to learn due to consistency, more powerful to do both low & high level programming and a pleasure to work with. Just as simple to setup for web as php. Not real reason to be in knee deep php mess.
See, once again: http://www.welton.it/articles/programming_language_economics

It's not exactly mind-shattering stuff, but it's nice to have some common terms to describe the properties programming languages have that make them the kinds of products they are.
Apple Engineer’s Mistake Leads To iPhone 5 Leak
Those are great if you're bunkered down in a hotel conference room or something, but they really don't compare to a proper whiteboard. Erasure, in particular, but also size and wall imperfections..
Yeah, for me, 1d experiences the lowest load of all zones. According to the pricing history for spot instances, 1d experiences the fewest price spikes compared to 1a and 1b. I'd be interested to see if other users have noticed the same thing for their zones.
Airbrake is down. Go can't scale?
ZOMG GOOD MORNING
Some astounding figures about Minitel in the beginning of this other article: http://owni.fr/2012/06/28/jai-ete-animatrice-de-minitel-rose...

Translated from French:
"In 2011, 420,000 people 'only' have connected, against 25 million at its peak. '3615 ULLA', the most famous Minitel sex service, still totals 21,000 hits a month, against 2 million 10 years ago."
Very much this. The comparison he tried to draw with Linux distros, same deal. Who cares? Try one. You're a hacker, go grab a language and hack some code. No, you won't be as good with Python when you start as you may currently be with PHP, big deal.

A weekend project is the PERFECT time to learn a new language/framework. Sure the weekend may become 2-6 weekends, who cares?

If I am not mistaken, Twitter and Reddit have both changed very large parts of their codebase from one language to another, so I don't really know if I buy that argument either.

Finally, I think programming languages should work for the guy writing the program. I made a point of learning everything I could (and continue to do so) about every language I come across. So when I need to do something, I have 6-7 toolboxes at my disposal, as opposed to 1 or 2. I write in 5-6 different languages every day at my current job, and have become a very valuable employee because of this.

This is coming from someone who has only the most basic experience with PHP, take it with a grain of salt.
Just as the parent post said: Interviews are hard because there is extremely low correlation between what is asked in Interviews and actual job work. I firmly believe the system of asking stupid algorithmic trivia is hackable and should be hacked because it is a broken rotten system that keeps incredibly amazing hackers out. There has been a ton of stuff said about interviews so I will keep this brief:

1. Get a github account, publish code, keep a social media profile etc. At the very least, this gets you interview calls.

2. People are not that creative with tech questions. Even Google (at least these days) asks you questions that come out of a textbook. So go through one, say like Skiena's Algorithm Design Manual and solve all the problems on a white board. This sucks a ton because when I sketch out code for a project, I never go do it on a whiteboard. The trick is to get to the stage where you can mentally compose the main blocks of the problem in your head and then writing down the answer on the whiteboard. This means that when you hit the whiteboard with the engineer staring at you from back, you know pretty much what way you want to go at the problem.

2.1. Statistically speaking of the countless interviews I have done, I think a large proportion of questions have been on trees, graphs and dynamic programming. I feel like this is because "some people" think that these are exotic enough that solving these problems have some correlation with smartness. Again, solve a few problems from any textbook on these or maybe go through the TopCoder tutorials on the matter and they start getting as easy as a day to day programming problem.

3. Accept the fact that people are paranoid about false positives and don't really care about false negatives. Sometimes if you have a bad day, it is not you.

4. Someone mentioned this before but interview more. Talk to people you like, you hate and people whom you have no intention of working with. This will help you get over your insecurities and make you realize that interviews are just a game: You will get more confident, and believe me, that helps. (This is just like dating, the more you do of it the more you get better ;-)

4.1 Organize your interviews so that your dream bets are towards the end of your process by which time you will have done so many problems, attended so many behavioral interviews, talked to so many people that you will be absolutely amazing!
I've read a lot of the Blackbird stories, and that first one might be the best yet.

Thanks!

Damn, that's an expensive test flight.
You sound a little bit like a spoiled kid with this rant, but i see your point.
I'll sound like a broken record, but I'm convinced Flask is the perfect transition.

It's built for smaller web apps, and rapid prototyping. The system of mapping endpoints to functions is incredibly intuitive -- if you've used Python before, learning Flask is incredibly easy.
Given how much critical American economic infrastructure runs on Linux, there is a strong military case for reporting and fixing bugs.

Without economic power, there is no military power.
I find this bit interesting:

Modify clients configurations when a slave is elected.

(I assume elected == promoted). This is an idea I haven't really seen in other servers/services before, and I'm curious how this will be implemented. I assume some sort of pub/sub subscription to each of the slaves so that your server is notified when one of them takes over? It sounds tricky, but really interesting. Document seems a bit scant on details for this part at the moment.

Regardless, really thrilled about this project.

[Edit: Ah, I missed this part:

client reconfiguration are performed running user-provided executables (for instance a shell script or a Python program) in a user setup specific way.]
I've been having a similar problem with the added difficulty* that I don't do development as my full-time job (yet) and have been coding mostly for developer contests and hackathons.

So when I start something that has a deadline in 24 hours or just a few days, I can either fall back to PHP to get something going fast or spend most of my time just learning a new language. So, I have been typically going with PHP…

I've found that the important thing is to take the time to set yourself up with the minimum environment that can get something, anything going in a different language: that means whatever is needed to print something on a page and get some logic working with GET and POST parameters. Because the nice thing with PHP is that it's so easy to write a single file that displays text on a page, or that responds to POST and GET parameters with some logic behind it. If I started with Ruby for example, I wouldn't know how to do this basic thing. (granted, with Rails and Heroku, this is easy)

My plan is to make Python my generalist programming language and I started to look at Flask (http://flask.pocoo.org/) for that reason: it's a mini-framework that doesn't take long to learn how to do these simple things. I can then play with it for simple things.

*though it can make things easier since I can just work on whatever I want in whatever language I want :)
The problem is pretty much what the article he discusses mentions: I can copy up a PHP file to any old random web host, and it will Just Work.

I would love to be able to not write PHP. But the language that replaces it has to be that easy to deploy.
Machines that create weapons are not usually designed specifically to make weapons.

A scout drone is a weapon if it's used by the military. I made this point here: http://news.ycombinator.com/item?id=4177285

There is no grey area.

I agree about the GPL at the basic point, but there should be a no warfare version.
Joel Spolsky refused to add a "blame" field to FogBugz for years, he used this as an example of how you should not give the customers every feature they demand, and he said it was one of the top most requested features. He explained that once you add that field it will be the end of fixing bugs and making honest bug reports. Developers will work with QA so that bugs don't get entered into the system. Long arguments will ensue about whose fault a bug really is, and massive time will be wasted on this. One of the jobs of a software designer is to construct a tool that encourages good ways of working and not dysfunctional ones. New features need to be evaluated with this in mind.

Eventually though after he turned over project management of the software to the employees, they responded to the constant bug reports about the lack of this feature and added the ability to have this field. I recall he made a note about it on his blog, but that the project belonged to them and it wasn't his project to micromanage, so now they have the feature whether he likes it or not.

Caution: I probably have half the details wrong, I'll try to find some links.

Update: http://www.joelonsoftware.com/news/20020912.html
I agree with all you said, but consider that humans in general are terrible at estimating risk. I believe being an entrepeneur is not that risky, and being an employee is not that safe either.
The main problem that I see about seeing entrepeneurship as unnaturally bold, risk-takers, creative intelligent people, is that you dehumanize the no-entrepeneur person, in such a way that's very easy to exploit them, because, they are like cattle, non-risk takers, and deserve it, right?
Yes, but with threading, the costs are minimized. You don't have to convert your Python objects to bytes, send them over a network, wait, retrieve bytes, and convert back to Python objects every time you need to read or write some shared data.
I still don't see any _fundamental_ difference on the points you make between Windows and Linux: monolithic design due to performance considerations, both have bugs, etc.
There are a lot of excellent MVNOs worth considering, that don't try to screw over customers and still allow you the benefits of access to a large cell network. Red Pocket, for example, is an AT&T MVNO oriented towards Asian-American customers, and they have a bunch of plans that are very inexpensive while still providing reasonable amounts of service.

If I had not received a Galaxy Nexus for free at Google I/O, I would have likely purchased a device for $350 from Google and then activated it on Red Pocket or some other GSM MVNO.

It's important to realize that often, prices like $600 for a smartphone are deliberately inflated for the sake of encouraging people to sign their money away on cell phone contracts. This is illustrated by the fact that the Galaxy Nexus, a relatively high-end device, is available absolutely unsubsidized, for $350.
You have some data to back up this recommendation?
So, you're calling people "childish", yet you're the one tossing out coarse language, then dismissing people with trite memes like "cool story bro"? In a community that prides itself on its etiquette, meme-free nature, and other forms of maturity, no less?

Yep, you lack self-awareness.
Sorry, but employees don't care that customers don't care that the company is sorry.

In other words: you're right, but frontline employees are rarely motivated or trained to solve small issues in outside-the-box ways like this. At some places they're actively forbidden to do anything outside the officially approved way of doing things.
Easy Session Management for Bottle Python
The editors (? is that the right title?) of HN frequently change headlines to match the linked article, presumably to avoid the Reddit-like draw of linkbait titles.
OT but prompted by the above: What exactly is the threshold on this site nowadays to be able to downvote comments?
Indeed. The control of shock waves inside the inlet (also via that moving cone) is a very interesting part of the engine, too.
There are bad teachers everywhere, just like there are bad engineers, bad bartenders, and bad doctors. Focusing on them as a sample, representative or not, is wasting time. Just because a teacher doesn't believe that there's multiple ways to learn something doesn't mean they don't want students to learn. It means they're not very good at their job. Before I became a classroom teacher, I worked for the City of Boston, teaching elementary school teachers techniques to improve their math instruction[1]. I interacted with hundreds of teachers, and while I met some thick-headed jackasses, I never met one that didn't want his or her students to learn.

The implementation and instruction at Khan really doesn't go against traditional teaching methods. They are traditional teaching methods, transposed online. Learn via a one-size-fits-all lecture, practice via rote. It's a traditional method, mind you, because it's worked fro hundreds of years.

I'm not surprised it works for a number of students, and I'm glad it works. It's better than most alternatives out there, paid or free, which is damning with faint praise.

I'll be the first to admit: I can't match it, or beat it, because it's a herculean effort to do so. One of my best one-day lessons has probably taken me 15 hours of work outside the classroom to write, over the course of 5 years, and has seen a half-dozen revisions. I'm still not in love with it. If I complain, it's not because I want KA to go away, it's because I want it to improve.

[1]During my tenure there, we won the Broad Prize for Urban Education, and were specifically noted in the award for raising our 4th and 8th grade mathematics scores more dramatically than any other city in the country.
Yea, as I read through the comments here I understood that was the idea. It's just I was expecting something more.... substantial to get "invited" to a hackathon, especially if you only know my email address and that I can construct valid HTTP requests in the language/program of my choice. For example, not including the jQuery library in the source code would have been better imo, so we would at least have to problem solve a little. Just my thoughts, I wish I could go to something like this but I can't so I am just complaining here instead :)
> "Just as simple to setup for web as php"

That's simply not true. I love Python (I'm using Flask for projects at this moment), but saying that setting up a python web service is as easy as php is disingenuous.
By design, yes.
Tried to use Google Docs and got this message:
The browser you're using may not support all features of the desktop version of Google Docs.
Of course, they're no match for a permanent whiteboard - just another neat tool for startups who present in random places.

The article also mentioned that there's now a clear version of IdeaPaint, which is great news:

http://www.ideapaint.com/work/products/#ideapaint
Do Not Want: Facebook Testing ‘Want’ Button
10. Blatant inconsistency and poor design across the board.

This is the single most important reason. I say this as a 5-year veteran of Flash and Flex app development. Adobe has a poor compiler and VM with inconsistent specs and behavior, a poor set of libraries with myriad inconsistencies, a poorly designed UI library that's internally inconsistent, poor consulting that attempts to apply business logic on top of an inconsistent platform, and poor security that tries to patch holes at the wrong layer without thinking about them in any depth.

Computers and computer systems thrive on consistency and provability. Each layer depends on the ability of the layer under it to mathematically prove that it works. Without that, everything topples.

Adobe is built on an ethos of inconsistency.

That is the root of the problem.
>Empirical data continue to show that Microsoft systems are far more vulnerable to exploits than alternatives, particularly Linux and Unix derivatives

What empirical data? Care to link to any?

If Linux is more secure than Windows, then why does Android have such a huge malware problem?

Just read through the latest articles at the below link.
https://www.google.com/search?client=opera&rls=en&q=...

>Nick Petreley's "Security Report: Windows vs Linux: An independent assessment" remains largely valid

No, it doesn't.I skimmed through it and it's pretty outdated, especially with the changes in Windows Vista and Windows 7 and with regards to things like IIS.
Its benefits are vastly outweighed by its negatives for me. I've made things in PHP before but if I ever do it again, it will be too soon. Sounds like a nasty addiction.
That sucks badly.

Similar thing happened to me a while ago with a vendor. When your management team summons you to ask why the hell their site is down, you can't point fingers at the vendor if their marketing literature says it doesn't go down.

Sticky situation.
Redis server has multiple threads e.g. background tasks, but the data manipulation functions are all single threaded.
More Apple App Store Search Changes (Good News)
But then I could make you a Flash app that does nothing but show a blank 640x480 stage with a simple button and then you would say "that just doesn't feel right"? But if I did the same thing in canvas you would react with "that's better"? That doesn't address my question about what is meant by "user experience". It is a tool, nothing else. Unless someone can show me a common trait across almost all Flash apps that is some sort of fail that can be directly tied to Flash then I attribute complaints of user experience to the developers of the app, not the tool.

Now, if you were to say that your experience with Flash in general on mobile devices is that it tends to crash and is slow; then that makes sense. That would be a user experience problem directed at Flash. It just seems to me most complaints of user experience with Flash is based on a misguided hatred of Flash itself.

The reason everyone would react that way with your hypothetical is because that would be stupid, that's not what Flash is for.
I love Flask: You just do things the way you want, written in Python. You're free to make your own (potentially stupid :P) decisions.
That's one of the problems with the now-famous Fractal blog, I think: It was a joy to read in the sense that being a Python programmer, it only heightened my appreciation of the achievement that languages like Python and Ruby represent. It's what conscious, determined design gets you and what mistakes they managed to avoid.

But it's preaching to the choir. If you've never seen anything other than PHP, you won't understand two thirds of the list or why they're problems. (<- Not looking down on PHP coders there, rather I'm thinking back to when I started out on PHP and am speculating on how I would have received the document.)

How do we communicate effectively what makes other languages better to someone with no reference frame other than PHP itself?
>> So if you can find a way to scale personal (in the social sense), and personalized education, you're going to be positioned very well.

Maybe scaling personalized education is not that complicated.Basically you just create wide arrays of explanations to something , and automatically try to offer each student the explanations he will benefit most from. Yes it demands work on content creation , and it demand a way(automated, crowdsourced, by teacher) to offer each student recommendations on content. But the gains could be immense: offering great education globally.

After you solved this problem, offering social support becomes somewhat easier.Instead of the teacher focusing on lecturing to full classes, creating lesson plans, he can focus on working with each student individually and offering social support. That's the whole idea of reverse classroom:children listen to lectures at home, and do homework at school with help of the teacher.

But that's just one way of a scalable solution, but there are many startups working on finding the solution and building interesting things. I wouldn't bet against all of them.

>> Most students do experience long-term learning in these environments.

That's interesting, because that doesn't match the many positive reviews from students. That also doesn't match the fact that khan offers exercises to some students and see results improve.
I stopped reading when I got to the part about Windows RT become WART. This guy has an axe to grind and he just wasted thrity seconds of my life that I will never get back.
Way to talk down to people.

I use PHP as my main language for web development, but also am a frequent C user. I have done projects in C# and Python.

While I like C# and Python - actually for scripting I tend to go for Python rather than PHP, prefer the CLI modules of Python- , I found that in context of web dev PHP still get the job done faster and in a maintainable manner. As for C, I use it for writing PHP extension -or generally fucking around with PHP source code- and writing non web stuff, so not as relevant.

The difference between people like me and people like you, is I don't go around constantly mocking other language. It is pointless, I'd rather spend my time and energy delivering products, or actually doing something productive.
As far as I can tell, the core mechanism here is that the sentinals keep an eye on your redis instances and agree which slave should become a master if your master dies. They then "inform the clients" of the configuration change.

One thing that worries me... normally if I have a configuration setting that might change at runtime I store it in redis! Does anyone have a good way of storing the configuration of where the redis server is in a way that can be updated at runtime (assuming a standard shared-nothing architecture) - without putting it in redis?