skysight-inc/HackerNews huggingface dataset:
One can kinda tell by looking at the code that the author hasn't written code professionally. At least not for very long.
Imagine you're interviewing someone for an intro-level full stack position, where they'd be writing JavaScript and Python.

You ask them a whiteboard coding question -- something about manipulating strings or implementing simple searching. Let's ignore the debate of whether this is a productive technique for interviews for now. You ask for Python in this question since you've already covered JavaScript.

The candidate can't remember what the "str" type is called, or how to find substrings in a string, or the difference between "==" and "is" for objects. They ask you to remind them if "join" is a method on sequences or on strings. They write "length()" when they mean "len()".

We've discussed at length on HN the challenges of whiteboard coding. "Nobody's favorite IDE is their conference room whiteboard".

But I feel that, even through the flawed medium of the whiteboard, I'm seeing symptoms of the candidate not really "knowing" Python to the degree I would expect of someone who applied for a job writing it.

None of the people I work with who write Python would ever forget one of these basics. I think they recognize that the ultimate "efficiency" isn't a cheat sheet on your wall, but rather learning and internalizing these tools by repeatedly using them.

Forgive me for setting up what I recognize to be a straw-man argument. Not everyone who writes Python was hired for their ability to do it. Maybe the candidate is a stellar JavaScript developer, and their only Python weaknesses are with the syntax and standard library. Perhaps a cheat sheet is an effective way to bridge the gap between "learning" and "internalizing" a language's features.

Nonetheless, I'd like to hear people's thoughts on the hypothetical situation above (or another better one, if you feel the one I've chosen is biased or misses the point).
I wouldn't be surprised if someone trained a neural network to turn sensible headlines into clickbait jargon to increase ad revenue.
I'm really struggling to understand why most developers feel they need all this deployment complexity.

I've run django and other web deployments with simple shell scripts and occasionally some python to glue it together.

Most recently I'm running a django web server and some other custom stuff (a real time stateful server, database, nginx, etc).

A somewhat complex setup (or at least as complex as it needs to be), and I have no need of docker, kubernetes. If I want a new server, I just change a few parameters and run the script to deploy. It's straight forward and without magic.

The deployment flavor of the month before were DSLs like ansible, puppet, etc. Did these solve real problems? I found they added complexity without adding much. How is the new generation different?

Caveat: I'm not google, and I don't deploy huge server farms. There is a use case but the vast majority of us aren't that.
Frankly, this is a very good example why I inevitably give up on using Debian.

It is not the software writers' fault that your distro can't be arsed to keep its package system up-to-date.

Even the unstable branch is routinely multiple versions behind on software.

The idea of linking end-user software versioning to the operating system version itself was always a dumb idea, but has become even more absurd over time. No other operating system but Linux (and possibly some BSDs) does this to the extent that the distro model does.

I'm not limited to awkward work-around manual install methods just because the version of Notepad++ linked to Windows 8.1 hasn't been updated since it was released. The whole scenario is absurd.

Yes, package repos are nice, but not when it means I'm perpetually multiple versions behind on common software just because a handful of nerds are trying to do the job of Github and Sourceforge combined, instead of just building an easier method of installing and updating third-party software.
The Debian policy states that all software in stable stay at the same version, with patches backported from upstream. I'm not sure it really makes sense as a general policy; at least I'm pretty sure there could be exceptions for some packages with little dependancies, such as xscreensaver.
Slackware 14.0 which is way older than Jessie and even older than Wheezy, comes with the latest, 5.34 xscreensaver in its update stream.
Oh, maybe I should update to the latest xscreensaver by hand, then. Thanks.

Of course, then I run into your B problem, where there isn't a really good way of installing your own versions that aren't in the repos. I was able to blacklist the kernel from updating itself, somehow, so I really just need to figure out how to do that again.
To the powerful in the west, the Middle East is important because of it's oil. It is also important because of Israel (as an expression of cultural superiority and collective remorse for the past). It is not important because of the people, who the west bundled up into hastily crafted nations under powerful, oil-producing dictators.

If I was a big energy CEO, I would have to invent terrorism if it didn't already exist, because I need something to stimulate public emotion to justify US military action, which to me is like Christmas: free security for my oil extraction operation. (Of course it's not free, but the externalities surely don't bother me or my friends personally!) Luckily the Wahhabists save me the trouble and risk of inventing terrorism! The Saudis really are a great ally not despite their support of terrorism, but because of it.

The root problems are these: oil is too valuable. If it was less valuable, the people of the region could be freed of these interventions. The west (Americans in particular) are too easy to manipulate with money. Our culture needs the mental equivalent of an ad-blocker, installed as early and upgraded as often as possible. Last but not least, our justice system (and social system in general) is woefully inadequate to deal with corporate malefactors. There are no meaningful punishments to business leadership. Even worst-case scenarios consist of fines that are <1% of one year's profit, and perhaps the loss of a job. The only corporate crime that comes with real repercussions is straight-up embezzlement, a despicable crime against the profits of other powerful people.

So all we need are a) alternative energy sources, b) improved education at home and at school stressing critical thinking and skeptical thinking, and c) give the people surveillance power over corporate behavior and eliminate the corporate veil. This three things will morph our oil powered remorseless profit making cyborgs into solar powered socially responsible profit making cyborgs.

EDIT: I posted this, immediately refreshed to see a downvote. There is no way someone read 4 paragraphs of (rather dense) text in those ~5 seconds well enough to justify the downvote. @dang please consider adding a brief pause to the up/down vote anti-abuse algorithms.
If you're in the UK (or some places in Europe) checkout Parkrun. That's what got me started. I've now done around 170.
Since both Visual Studio and Xcode support C++, why not just run the C++ version on all platforms?
I used to be overweight and could not run to the door even if my life depended on it. Five years later and I run no less than 5k a day from Monday to Friday. Resting during the weekend. Do run events every other month or so on Sundays.

How did I do it?

I started with the couch-to-5K program[1]. That led me to diet and eat better. Did my first 5k four months later. Then a 10k three after that.

Running is not for everybody. But you should try it out. Run at your own rhythm and style. Some people are naturally better at long distances, some of us are sprinters. The truth is its about patience and pacing yourself. It is also great for thinking (or not thinking). My life is definitely better because of it. Feel free to ask me questions!

[1]http://www.coolrunning.com/engine/2/2_3/181.shtml
Apple uses water damaged boards in Apple refurbished devices? [video]
Like Appel, I wasn't entirely serious about it being a "functional language", but I think the point still stands, it is a major step towards a more mathematical program representation ("variables" instead of "assignables"). And just like "functional programming", the primary goal is ease of reasoning.

CPS is typically used to handle imperative control structures by impure functional programming languages, so it should indeed be of interest to imperative compiler authors.
I'm the author of this piece, and I agree with you in general.

I am personally experimenting with this within the context of containers because I'm trying to construct something like Vitess[1] from first principles as an intellectual exercise.

[1] https://github.com/youtube/vitess
Not for web/server/backend developers, but YES for game developers.
>I suppose the end game would be the singularity, but I'm skeptical that our society is stable enough to reach that point.

Stable singularities? That's one I never thought to see asked for.
Seems like prime will be getting set to false redundantly instead of short-circuiting. Optimizing compilers will catch this. Also not a good test considering that different CPUs might see this with branch prediction, and the results will vary.
I'm not sure I agree. The managed database services provided by Google and Amazon are both expensive, and lack configuration options. I'm sure they're already relatively well tuned, but we have tuned our Postgres installation to our workload more than they would be able to.

Running our own Postgres install costs roughly half what it would on AWS, takes very little engineering time to maintain, and can be tuned as needed.
Fair enough, I only use insane distros. I quit Debian because I wanted to dev in Ruby and it wouldn't let me. Then I used Archlinux for a while, but having to use rescue mode everytime I did 'pacman -Syu' got a little old so I switched to a sane OS for a while. Seriously, aren't both Ubuntu and CentOS not much saner than Debian?

Anyway, my sane period ended a while ago, it's full on NixOS now, why are people still using OS'es that are not the future?.
I'm not sure there is a basis for this assumption. If there is I can't see one. I also can't see why it would matter.

Edit:
Makes more sense with the additional responses.
This critique presupposes what it was meant to prove.
I don't think that expression was meant to evaluate to True - they were just reminding themselves that you can increment by an amount using += in Python.

This list of full of basic stuff though, and people who were referring to this would write insainly non-idiomatic Python, but hey, you gotta start somewhere.

When I went to doing Python full time (after having built stuff in it on and off for years) it took me a good 6 months before I was able to write idiomatic Python. That's with over 15 years development experience and actively reading lots of nice Python code to try to reach the same level.

Reading something like this reminds me of the gulf between, "can code in Python" and "writes nice code in Python".
I laughed a little when I read about the "free" animations, because I immediately thought of the backgrounds in some stages of Blazing Star which were effectively short looping videos. An effect also used fairly extensively by NG:Dev.Team.
You set prefix to C-a and then send double-presses on.

So C-a-a still does beginning of line.
I believe this blog post http://blog.martin-graesslin.com/blog/2015/01/why-screen-loc... is relevant to the conversation and the key logger part (but I am out of my league to comment about it).
Potentially yes, but aren't there political and ideological costs to forever wars?

In my mind, a persistent American military conflict helps further the opposition argument that we are bullies, infidels, crusaders bent on domination and disinterested in truly helping. I guess it depends on the problem we are attempting to solve.
Sadly the data is useless without the exact compiler flags.

I get 18.0658 with default "g++ PrimeChecker.c -o PrimeChecker" and 11.7689 with "g++ PrimeChecker.c -O2 -o PrimeChecker"

edit: the hardware is an i7-4870HQ, quite close to the i7-4850HQ that's in the blogpost (+200MHz clock)
Who will own the Robots?
I'm the author of the original piece.

I echo exactly what you say in a giant caveat way up top in the piece. :)

Most of the first half of the article beyond that point basically tries to motivate why you'd want to try this beyond just using a classical VM approach. But the basic idea is that it raises your level of abstraction from working with machines to working with your application components (on abstracted hardware).
Trello | NYC | Full-time

ONSITE

- Front-end dev

REMOTE or ONSITE

- Back-end dev

- Tester

https://trello.com/jobs
Dear God, now I remember why I do not program in C++ anymore (Go and C# all the way!). That pre-11 code looked awful. If networking was nicer, I might actually start considering recoding some of my projects in C++.
My not really updated portfolio page isn't really intended to be 'useful', lol. Though the navigation is much clearer than many websites today, and the pages load on pretty much any device nearly instantaneously.
What happened to the Tupac hologram technology?
It came out of nowhere. Was mindblowing. I would've thought that it would have permeated everything by now. Yet it seems to have vanished.
why ? because the function prime doesn't return when the if condition is false ?
A good way to represent a branch coverage miss.
How Do the Google Web Projects Angular, Polymer and NG-Material) All Fit Together?
It seems like Google is doing a lot to assist front-end web development. Looking at AngularJS 2.0, Polymer 1.0 and Material Design (Angular Material), they all seem to do slightly different stuff, but with overlap. Are they designed to all work together? Polymer doesn't seem to cover all Angular Material features. Polymer seems top have some routing but not a patch on AngularJS. etc. If I was building a web app for Google (in-house pretend), maybe a google docs clone etc. which of these tools would I use to do which bits?
I meant that the parent's analysis in his footnote of what the minimum position and starting salary would be for a faculty member to ever move is setting the bar too high; it seems my wording was vague. His academic numbers seem spot on, but I question footnote [3].
The practice of Vipassana is to observe present experience nonjudgmentally and to eventually meld with present experience so there is no Observer. So it's the exact opposite of what you're describing.
A Dozen Things I’ve Learned from Chamath Palihapitiya About Investing and Business
I'm not quite sure whether compiler optimizations could catch that. How could they? Returning false on the first zero remainder is a different algorithm.
Keep in mind that Ubuntu and offshots are based on Debian Unstable, not Stable.

And the problem that the bugreport is about is that Stable would not get bugfix updates, resulting in JWZ getting emails for long fixed bugs.

Thus he put in the "obsolete version" warning to get Stable users to pester Debian maintainers.
Couch-to-5k did it for me too. I was a little skeptical when I started, both of the program and my own abilities. I was rather out of shape and couldn't imagine running 5k based on my physical condition. Not overweight, just painfully unhealthy and unfit.

But I was very excited the first time I was able to complete the 5k run without walking breaks, and then I started to work on my time. I am not a fast runner but eventually got to a pace of 30 minutes. Certainly not anything like pinnacle athlete form but it brought a lot of personal satisfaction.

I paired my running with swimming. I would do a 5k run and then a 1k swim. It did wonders for my energy level and endurance and I felt much better.
Agreed.

When the costs go down and persistence-as-a-service is provided by more cloud hosts, it will make more sense but right now it often doesn't.

I wonder about opportunities to provide some of these services as a white label to hosting providers like digital ocean.

Is anyone doing that? What stops them?
>There exists a realizable, evolutionary alternative to our being either atom-bombed into extinction or crowding ourselves off the planet. The alternative is the computer-persuadable veering of big business from its weaponry fixation to accommodation of all humanity at an aerospace level of technology, with the vastly larger, far more enduringly profitable for all, entirely new World Livingry Service Industry. It is statistically evident that the more advanced the living standard, the lower the birth rate.

-Grunch of Giants, Buckminster Fuller

http://www.amazon.com/Grunch-Giants-Buckminster-Fuller/dp/09...
Programming BASIC and Sorting (2013) [video]
Nice work and impressive savings.

Sadly, JQuery and its continued success isn't attributed to its efficiencies. It's community support, adoption, and heavy downstream reliance will keep it around as a standard for eternity.
Ad networks are more likely to creat skynet then everything else
As someone who does pretty much this for my personal sites, and has a level slightly above at work, I can say anecdotally that your caveat is important. The way you describe works well for me on personal projects, but at work we're really starting to see the benefit of the automation and reproducibility that things like Docker and Kubernetes provide. Ansible is great, but it's still easy to end up with non-reproducible environments, and that's something we've been bitten by quite a few times.
Programmers will be the last to be automated out of a job in my opinion. Also, as far as I can tell, the more we do with programs, the more we want to do, which increases demand. Outsourcing seemed like a problem, by my experience is that demand for local programmers has increased (in Stockholm, Sweden, at least), not decreased, despite the option to outsource.

All of this (and more) is the reasons I still think SW developer is a great career choice: http://henrikwarne.com/2014/12/08/5-reasons-why-software-dev...
The manual implies that's a limitation of the Unity WebGL player, but works in the standalone version.
This article is pretty wrong-headed: The argument is essentially that programmers are so productive that only a few of them will be needed to write all the software in the world, causing demand for developers to go down after the current uptick.

I guess it never occurred to the author that software in the future might become more complex and require larger teams.
Thanks for the blog post, it was really informative, will definitely be sharing it at work.
Totally agreed. The really nice thing about being the first generation to implement UBI is that we'll be able to reap some excellent one-time benefits by being able to dismantle so many specialized programs rendered redundant by UBI. The net effect would be a discount on the UBI -- e.g. people would get $20k but it would only cost $5k more than what the USG currently spends on entitlements.

I'd like to see a flat-tax too, but that's just me. :)
Well, if B3 is able to do something faster with the same level of code quality, then I'd say it was a mistake in LLVM to not make the same decisions.

But this proves the overall point: B3 is able to specifically say "we are going to be faster than LLVM because we are replacing RAUW with identities, packing multiple operands into an Inst, fusing operations into macro-ops, using arrays instead of linked lists, etc." Those are specific technical decisions that the WebKit authors believe will make things faster than LLVM, and they aren't based on misunderstandings of the things that LLVM provides.

Edit: That said, there's skepticism that B3's advantages will persist in the long term. See: https://news.ycombinator.com/item?id=11107082 and http://lists.llvm.org/pipermail/llvm-dev/2016-February/09546...
Man, it's really weird to see this after just installing Debian after using arch for about a year. And sure enough, that message popped up, I tried to update it and the repos were outdated. Brother..

My worst experience with their repos was with logstash having a bug where it would annoyingly install logstash-web with an auto-start. But..... the package had a typo in its startup script and caused the JVM to restart over and over and over. This was at an HFT shop, so sure enough.. I got a call the next morning that all trading was stopped until it was fixed.

I don't understand how these sorts of things issues happen for so long on such a popular distro...

*arch is nice and all, but holy crap does AUR need some better standards with what's acceptable. After spending an asinine amount of time trying to figure out why every 5th package won't build where devs closing bug reports with, "Did you try $BASICTROUBLESHOOTING".. I'm pretty much done.
Maybe distros like Debian are more stability/security oriented than feature oriented. New version of software often contain new features that it may introduce new bugs.

Debian guarantees that when you install their distro things are going to work and are kind of secure. The tradeoff of having all the software in the distro being checked by people that have tested and checked that everything works well and smooth it's going delay updating the packages.

But the idea of having a distro it's something that offers you that. That someone took the work of packaging and testing, so you can install things and everything works.

I think that if more software would be offered statically compiled with all the libraries (like many apps in OSX), then we would be able to try the latest release of Gimp when it's released, instead of having to waste time trying to compile from source or waiting for being included in the next release of the distro.
Writing your own engine, when you intend to make a game is a black hole where many many projects go to die.

Implementing a cross platform modern game engine is perhaps a single step below writing an operating system from scratch.

Source- I've written 3 feature rich, but not feature complete, game engines over the last 25 years.
People have different styles, and I'd hate to be overly prescriptive. Having said that, switching from heel strike to forefoot strike made it possible for me (overweight 44 year old) to go from the couch last January to running the Twin Cities Marathon last October.
It's interesting that there seem to be two parallel and opposite trends in applications deployment going developing right now.

One is containerizations, where developers are responsible for maintaining fat application stacks that can easily be redeployed and moved around.

The other is towards serverlessness with things like [Django-Zappa](https://github.com/Miserlou/django-zappa), where scalability is handled automatically by cloud providers.

My bias is quite clear - deploying apps should be easy.
I definitely get what you're saying, but it really depends on whether you're hiring someone to be a Python expert, or someone to be a great software developer. If you need a Python expert (someone who knows the ins and outs of the language right off the bat), you're absolutely right. If you need more generally just a great software developer though, as long as they can show they're a great programmer in a couple different languages and paradigms, whether or not they remember the specifics of how to do String operations in Python, is irrelevant. They can learn that pretty easily.

It also depends on whether or not the job in question asked for tons of Python experience as a requirement, or if software development experience was required but only familiarity with Python specifically.
Most Thinkpads will work just fine out of the box. The hardware is great (I specifically like the keyboard and the little red point mouse).

The T series (and W series) are the work horses here with various screen sizes, disk options and RAM.

I personally use the X1 Carbon 3rd gen (X series) as it is comparable in specification to a Macbook Pro 13" (I have the one with the 16GB of RAM). It's a little costly but its worth while and will probably serve me for the next 2+ years.