skysight-inc/HackerNews huggingface dataset:
I think there are two kinds of programmers, those that love tweakability and configurability and spend lots of time customizing and perfecting their setup, and those that just want to use stock software with as few modifications as possible. I'm in the latter camp.

I'd like my skills in using a piece of software to be transferrable - I'd like to know that if I'm using vim or whatever on my personal machine or on another machine with no customization, that the experience is the same between both. For the most part, Sublime provides that.

However, I'm willing to give vim another shot, do you have links to the plugins that you mentioned?
This article is very low on content yet appeals to those who really want an excuse not to learn something. "Oh, I don't need to feel bad about that time I gave up on learning Vim because of that random guy on the internet."

People end up becoming proficient in Vim because they enjoy using it, because it works for them. There are thousands of them.
As it's all open source, I guess you can look at the code and judge whether it's a mess or not.

https://github.com/libguestfs/libguestfs

https://github.com/rabbitmq/rabbitmq-server
It's a utility library for JS. Consider that the article mentions Python's itertools and functools as equivalents. http://underscorejs.org/ does a good job:

"""

Underscore is a JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects. It’s the answer to the question: “If I sit down in front of a blank HTML page, and want to start being productive immediately, what do I need?” … and the tie to go along with jQuery's tux and Backbone's suspenders.

Underscore provides 80-odd functions that support both the usual functional suspects: map, select, invoke — as well as more specialized helpers: function binding, javascript templating, deep equality testing, and so on. It delegates to built-in functions, if present, so modern browsers will use the native implementations of forEach, map, reduce, filter, every, some and indexOf.

"""
I agree that the author seems to be missing some of the beauty of keyboard commands and navigation. Sure Sublime does some things vim can't, but you can do things in vim you certainly can't with mouse-only input. For instance, I use visual block mode dozens of times a day, which allows identical edits to be made to multiple lines simultaneously.

I do complex search and replace very frequently, and almost always on a particular group of lines. In vim that's as simple as typing `:{start},{end}s/{needle}/{replacement}/g<ENTER>`, but in a GUI I have to select the lines with the mouse, likely reselect since I didn't get exactly the right selection the first time, then find the control key to hit <Ctrl-F> before I can even start thinking about my search terms.

I think it comes down to giving you the power to make the edits you will be doing frequently. I find it interesting the author spoke so much about autocomplete and autotab. It's probably just a matter of preference but I've always found that those features get in the way of effective coding. Every time I'm forced to use Visual Studio for something I feel like it's an unloved little kid that keeps piping up: "hey, hey I know what you want to do" but it's always sorely mistaken.

Let me replace on lines 6 through 437 of some text dump the leading curly brace with a function call to turn it into a code file and you'll win my heart, because those are the sorts of transformations that I want my editor helping with.
Not true. Our government and the people inside of it have a long history of intimidating people. Read about the first and second Red Scares, as well as the career of J. Edgar Hoover. We are a long way away from "the beginning of the road".

Before we start making pronouncements about how bad things are today, it's important to understand history so we can put things in context.
I do this and it's really the best of both worlds.
Some companies have a limit on the number of times you can work for them, in order to prevent people from hopping and coming back for more money. I think a previous company I worked at had a limit of 2 employment periods, which they instituted (supposedly) after a large number of people took voluntary separation and then came back later after the company started growing more. The next time a voluntary separation came up the policy was implemented to prevent another round of that happening.
I considered switching to sublime from vim just for sane line wrapping. If you have indents, vim forces you to hard wrap or else end up with an unreadable soup. Sublime, on the other hand, makes the sane choice of preserving indentation level when a line is wrapped. Sublime's setting makes editing large HTML files in a variable width window much more pleasant...
It can be useful for an API that expects pointers for whatever reason.
If you don't mind me asking—where are you from?
Three of six factors in their ranking (International Faculty, International Students, Citations per Faculty - to some degree) are heavily influenced by language.

Given English's dominance in academia and business it's no wonder that english-speaking universities take the first 11 places.

It's also not that important to prospective students outside English speaking countries - of course they'll need the skills eventually, but there's really no need to hold intro courses in English elsewhere.
Please share your .vimrc or any plugins you use.
Thanks a lot, this is very insightful!
The metronome GC from ibm is predictable (not hard real time though).
Well it's not back completely, now it's just a static site with the problem set restored. No ability to check answers or log in and track your progress.
> Because I assumed that all my mail would be read, I set up procedures to check whether any of it was seized.

The problem is worse than that.

We already know that the NSA tracks phone calls (logs of who calls whom, and the duration of the call), under the euphemism "metadata". This is enough data to construct a social graph of who knows whom, how well (how often they communicate), as well as any changes in these patterns[0].

We also already know that this phone data is revealing enough to be used for determining the targets of drone assassinations, which Keith Alexander accidentally admitted[1].

Assuming that "snail mail" data is no less revealing (which is a rather easy assumption), this means that even if the NSA/USPS/LEO never seize a single letter, there are already serious privacy violations occurring that could result in actual, tangible harm.

[0] http://www.aspentimes.com/news/7361291-113/alexander-calls-m...

[1] http://edward-snowden.net/ex-nsa-chief-we-kill-people-based-...
> We will never have multiple cursors

https://github.com/terryma/vim-multiple-cursors
I feel like the ability to job hop like this will be in fairly small, concentrated geographic areas. In areas that aren't as concentrated it'll end up being pretty hard to do this.
It's not really much better on a browser. It took me about 10 minutes of clicking and swiping to figure out that you're meant to use the cursor keys to navigate. What a shitty user experience...
If you're someone that is coming from Sublime and are used to its features, I'd start with this consolidated plugin repo. It's unmaintained now, but was an excellent primer for me on how to set up the guts of my vim setup.

https://github.com/fatih/subvim

I ended up modifying it pretty drastically over the course of a month. And essentially I think that's why the author stopped maintaining it. Everyone will set up vim their own way. That's kind of the point.
>It's above, on both axes Arduino...

Does anyone know why they would include a hardware device among a ranking of programming languages? The most prominent language used to program Arduinos is probably C, followed by C++ and then AVR assembly.

I don't understand why they would include it among programming languages.
I love Haskell, and I totally agree with you, but I don't think you're making much of a case to people who don't already know Haskell. I'm pretty sure everyone who doesn't grok Haskell reads your post and thinks "Ah there's another Haskell weirdo spouting some weird syntax incomprehensible code."

So for them: What tel is saying is that in Haskell you annotate your functions with type information (and if you don't the compiler will generate the info for you), which gives you an immediate understanding of what moves into and out of a function, often making it easier to understand what a high level function does.
> I've seen some videos of real Vim pros at work

Yeah, I know one of these people too. I know one for Emacs, Eclipse, Excel and of course SublimeText.

Honestly, I don't see why some folks obsess over text editors/IDEs. Familiarity and mastery matter way more than features. Sure, a truly barebone editor like Notepad.exe or nano might be insufficient, but any editor with a decently-sized following has enough features to make its users comparably productive - as long as you learn how to use them (This is almost a self-fulfilling claim: if an editor has a sizable following, that means it got something right for its users).

I mean, how else do we explain that Rob Pike uses Acme, Joshua Bloch uses Emacs to write Java, and Paul Graham uses vi to write code and prose?
Heh, might as well just use another language at this time. Guido himself seemed to be very pissed off at the common lispers for being forced to add some functional language features. You can see it from the crappy implementations of single-arity lambdas, non lazy map, filter, reduce, etc. The language will never catch up to the times, as evident in the lame feature list in python 3. Most python users seem blissfuly ignorant of modern languages and Guido doesn't seem to like learning new stuff either.
The Sublime Text knowledge I have is pretty esoteric, I admit. You have to learn weird key combos like Cmd-C to copy text into a register (or a "clipboard", to use ST's unusual terminology), and Cmd-V to "paste" it. I have no idea which other software uses those shortcut combos.
i did a little experiment :
i paused the audio before the correct words were uttered ..and only having read the text of the correct words ahead of time i was able to hear them the second time i played the computer audio.

fun
I have some descriptions and links to my mac setup on this blog post. It covers all my dev programs not just Vim, but maybe I'll get around to cleaning up my fork and providing the setup for others.

http://www.webhook.com/blog/making-the-most-of-your-mac/
Tit-for-two-tats is very good in that regard
S/he is using https://github.com/scrooloose/nerdtree for the file exploration on the left.

As for switching colors I'd imagine this page would help, though I'll admit I haven't read it: http://vim.wikia.com/wiki/Switch_color_schemes

I use Tomorrow Night myself: https://github.com/chriskempson/tomorrow-theme
I know of one case where a manager avoided that clause by bringing the person back again as a full-time contractor, which effectively doubled the previous salary...
I'm also out of love with python for similar reasons, but please note that map is lazy in python 3.

>>> map(lambda x: x*2, range(100000000000000000000))
<map object at 0x104792240>
I started learning vim a few weeks ago and had the very same experiences as the author.
However, I am currently use the "Vintage" Package in Sublime, to get the nice things from both worlds.
We have no idea if online ads actually work at the scale of huge corporate brands competing for mindshare. I'm pretty sure it works for smaller outfits - every time I find an appropriate place to run an ad campaign, I see a permanant uptick in readers of my web comic. Eventually I'll have gotten everyone in that place who's going to be interested in my stuff, and I move on.
Oh, over here that's been banned as well. I thought it was an EU thing but I guess it was our government. They're even banned from sponsoring events.
Why not LightTable? -> http://www.lighttable.com/
As a person who doesn't even use elvis/vim as their main editor, I have to say: the reason people have such an aversion to it is because of all the years they have been conditioned to accept mediocre user interfaces and computing in general.

It's a culture shock, overall. It's like moving from Windows 8.1 to Slackware 14.1. Even if the latter is far more transparent, well designed and productive, it's just so different. You're so used to an inferior paradigm that you react with disgust and/or fear at the sight of something better, and that has been around for even longer. We've figured out most of this stuff ages ago, really.

I've seen people flip their shit when I've installed something as dead simple as Linux Mint on one of their family members' computers, considering they only use the machine for web browsing and Skype, which is so much more ergonomic with a *buntu derivative. Then they go on and reinstall Windows, as if trying to rebuild their nest that was so violently disturbed.

Conditioning is some powerful stuff. We'd rather stick with goofy point-and-click interfaces that slow us down, rather than invest some time to learn a keystroke-based interface that will make us faster, more productive, and dare I say it... increase our admiration of computing?

It's why people want their eyecandy, which most of the time is little more than background noise, than use a tiling WM or something light in general. Dijkstra sardonically quipped that COBOL cripples the mind and BASIC leads to irrecoverable mental mutilation. This goes for most of our modern, consumer-oriented computing, as well.

I'm not directing this to the author, specifically. It looks like they tried, at least. We're content with inferiority. Try getting a person who's used to 20 years of QWERTY to switch to DVORAK. It may not be that difficult at all, but it requires stepping out of our comfort zone.

And in our staying with the subpar, we've erected a huge wall of inefficient software in the process. It may be invisible to the end user, but to programmers it's all too obvious, if not often admitted.

People need a consumer technology detox, I think. Personally, if you want a more standard editor/mini-IDE that conforms to the average person's expectations, go for Geany. At least it isn't proprietary.
> http://www.aeinstein.org/organizationsde07.html

Page not found
Fully agree - children have amazing capacity to learn complex things. It's one reason why I'm nervous about code clubs using Scratch; the children can cope with more, so why limit them?
Yacy is usable right now, and gets better the more people use it.

http://yacy.net/en/
Hey Amrrs,

I agree, bulleting might not look so good but I think we can have a small description line below the main tag.

Keeping it simple and small does have wonderful results though. I have tried another product where we had a lot going on the homepage. Not a lot of people signed up for that. Where as in this case, a lot of people sign up. I think it's because of the simplicity of the message.

The tag lines you gave make a lot of sense! They are more attractive from a selling point of view too :)
The author refused to learn how to use his editor so he recommends others to avoid it.

Well done.
Unreadable on a 10" tablet - slides are larger than my screen and cannot zoom out (Opera)
For those of us in software development, an important thing to think about is what this does to code. The industry is full of old codebases tended by people who were never involved in the planning and initial design of those systems. Knowledge transfer rarely happens sufficiently to prevent accelerating maintenance headaches.

I think that we really need to find different ways of developing software to deal with this reality. A commenter here mentions the London financials community and people job hopping < 12-18 months. I've heard terrible horror stories about some of that code.
It's not lazy, it returns iterator. There is a difference, you can't slice or index its result anymore. Compare to Clojure or Haskell map, which are truly lazy.
Don't add me to your social network, I have no idea who you are
We're from the same country my friend ;)
Yeah, I've been using Vim as my main editor for around 15 years, and I still use the arrow keys.
You have a 30ft screen and dts surround sound at home? Wow!
IMHO, if the program logic is essentially to loop over some steps, it had better be written in the form of a loop over some steps.
Have you seen any of Daniel Pink's work on what motivates people in business? It might inspire you to focus on other incentives than just pay salary increases.

http://www.youtube.com/watch?v=rrkrvAUbU9Y
BMW i8
The role of Empathy and Human Values in Products
I see, I skimmed the article and I guess that's something to look into further, thanks for the link.

And tjenare ^^ Hope all is well man
gar1t is the guy that blew up "cool kids". He is doing better than banning the phrase. He is making it ridiculous. http://youtu.be/5GpOfwbFRcs?t=2m30s
The issue, really, is that most Vimmers, including its core devs, don't care about all the gimmicky features you list.
I believe (but have no evidence) that Google does this to redirect users towards searches which are more likely to serve ads. The more results a search yields --> the more likely it is someone is paying to target it. This likely applies more to general users and not HN users (turns out queries for error messages are hard-to-monetize).
I've known people who stay for 4 months at a new higher-paying gig and then leave. Because the paycheck and new title didn't make up for the toxic culture/culture clash that they dove into. Since you see them more than you see your real friends, the people you work with become your extended family of sorts.

"If all you get from work is a paycheck, you are underpaid" -Jim Rohn

Daniel Pink says it best. The best jobs give you autonomy, mastery, and purpose. Even better, if you create a business that does the same.

http://deliveringhappiness.com/the-motivation-trifecta-auton...
I hope that a few movie directors see this app and will make it their next challenge to not allow any convenient pee break.

I guess "Crank" comes quite close.
With Vim, you can spend two years learning an editor!
I disagree that explicitly listing every variable involved in a comprehension makes the code more readable by non-experts. I'd argue quite the opposite: it's easy enough to explain `map` to a non-programmer ("we're doing this thing to every item in the list") but it's much harder to explain variables, iterators, comprehensions, etc.

And if the non-expert is yourself in 6 months, the argument remains: `map` is the same in every language. Comprehensions, loops, conditionals - those are the things that you need a language reference to properly use.
Link corrected; thank you for catching that. I'll repeat the current link here for good measure.

http://www.aeinstein.org/downloads/
I will definitely work on that as it is something I want too.
>switch colors

If you have gnome terminal you can use different built in themes and fiddle with the color pallet.

[warning: high-contrast light theme]
http://i.imgur.com/tITUU55.png
OTOH, if the program logic is mapping a sequence, then you better use map() on the sequence.
It is the entrance exam. It seems to track back to http://thechoice.blogs.nytimes.com/2011/03/31/remembering-wh... where a PDF of the exam was posted.

Latin translation, Latin grammar, Greek grammar, Greek composition, history and geography, arithmetic, logarithms and trigonometry, algebra, and plane geometry were covered by the test.
Instacart story Startup School NY 2014
Show HN: Google I/O 2014 Guessing Game
I've been coding for a long time. I started on ijkm (Apple II) and editors that make vim look modern (when I was in college the congnoscenti tried to get the CS department to provide sed, and eventually implemented their own version and passed it around), and I've always regarded the vim/emacs crowd as amusingly deluded.

While there are some great tricks you can do with magic incantations in vim/emacs, you can do much more far more easily in notepad with a mouse/trackpad, and moving your hands away from the keyboard now and then is a Good Thing. Sure, i'll be downmodded by the command line junkies, and I'm sure there will be a million examples of awesomeness that you can only do with command lines and macros, and heck, maybe for some tiny number of people there's an advantage, but for the vast majority of the world's population sublime (or even just coders), textmate, bbedit, or whatever just crushes vim/emacs. Every vim/emacs junky who has tried to impress me with their awesomeness has done something either (a) I can do far easier in BBEdit, or (b) AppleScript (!) all while not having to memorize useless crap or edit config files.

But it's still worth learning to use one or more of these editors for when you need to.
I am not very capable with designing icons.
You can do exactly that with GVim if you are so inclined.
Hmm. Every time I see the name Stallman I just conclude it's all about materials not distributed freely. Essentially, don't buy anything from anybody who don't support free redistribution (iTunes, App store, Play Store, etc).
Your Legal Guide To Offensive Trademarks
Interestingly enough, the IRS contracts to an email backup service and has since 2005. So perhaps the emails can be found?
Dharma,

Great points!

#1 - my thought was someone very clever could use the ESC output to the motors to estimate likely noise output from that rotor as well as measuring the actual noise output.

#2 I'm genuinely curious about the pros and cons of flying with a parabolic vs an array mic approach. It sounds like you could offer some insights here on a tradeoff.

#3 Well, yes. [grin] But that doesn't exactly solve the problem asked for.

I'll drop you an email now - thanks for responding! ^_^
If you only see it once, sure. But if you use it as an idiom, it will be clearer once you do know what it does.

Similarly, flatten( my_list_of_lists ) is MUCH easier to read than the construct that you end up writing to flatten a list of lists.
Opening up access to the wolfram language will let more science be possible using Mathematica and remain reproducible by non-Mathematica users. Must be a good thing.
Again I've thought about that but I am not sure how I will do it in regards to the data, which is in CSV format.

Each entry does have a unique UNIX timestamp, I might just drop all receipts in a folder and have the names of them linked to the timestamp.

How does that sound?
I think you missed GP point, which I believe was that "you can write Fortran in any language". Or more precisely that you can know a language very well, but that won't help you much if you are confronted with unfamiliar idioms and patterns you don't know.
FYI, the official documentation of itertools has its very own pairwise example:

def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return izip(a, b)

https://docs.python.org/2/library/itertools.html#itertools.i...
I had one junior guy who had been working for some years confess to me that he hadn't learned much in all his years of working. The reason? He was always chasing better pay, which in software development almost always means changing employers, and he never stayed long enough to learn the ropes of any job.

Granted, he was a junior developer, but I can see this applying to people with more "seniority" (measured in years, obviously).
[TD;DR]

It wasn't a problem inside reuters, but their 3rd party provider called (Taboola), which injects ads on reuters. So once Taboola hacked, the ads system started injecting a script to redirect that page to another one.

Finally: Be careful with those 3rd parties ads tools etc.
Often all you need is an explanatory variable. How about this version:

clean_ints = silent(int)
walk_values(clean_ints, request)

Also it's useful to point out that almost any function call is non-obvious in isolation. If this is part of a larger application that is silently ignoring exceptions elsewhere, you've probably seen a call to `silent` once or twice already today.