skysight-inc/HackerNews huggingface dataset:
Refreshing to see this after all the Vim gospel programmers out there claiming it's benefits. I do have to say though, I've seen some videos of real Vim pros at work and it's -majestic- how swiftly they move through lines and duplicating lines, editing params, refactoring, etc - a thing of beauty akin to watching videos on /r/artisanvideos[0].

I'll stick to Sublime Text and Nano when I need some ssh terminal editing. :)

[0] - http://www.reddit.com/r/artisanvideos
Dalvik Runtime Will Be Removed From Android, ART Officially Takes Its Place
Yeah. The cool kids are using Erlang. If everybody was doing it, it wouldn't be cool.
I think you're correct.

If you played several samples to the audience, they'd start to recognise more words.

Actually, I think she influences the outcome by telling her audience the spoken sentence has been "transformed into gibberish". By doing this she has planted the expectation to not comprehend the sound, since "gibberish" by nature cannot be understood.
This thing is completely unreadable on a phone. Does it have a more phone-friendly version somewhere?
It would help to give an explanation of what underscore is besides saying it "makes life better." I am an avid python user and have never heard of Underscore.js. Thought this was an article about semantic underscores in Python, or underscores as used in variable names (which I dislike) :)
Because Joel Spolsky is a famous Microsoftie whose community and fan base originally skewed toward Microsoft.
I've heard a lot of good about YNAB, but I don't need something so extensive.

I have had thoughts about the learning-thing but I hadn't thought about using location also, which sounds smart.
I'm puzzled when new, "innovative" (well, in some sense) apps such as this get hit by simple hacks such as this one. I was puzzled as well when some idiotic misuse of encryption exposed WhatsApp data (I'm not sure if I remember correctly, but that was the gist of it). Startups bear a distinct culture around them, and for me at least it means very capable hackers behind them. But I would seldom consider anyone who'd commit such fundamental security no-nos a "capable hacker".

But, after all, this Yo thingy doesn't even look like a real startup.
My point is that if you feel that the email practice should be listed for the reason that it sends passwords in clear text over the network, then the equally bad practice of sending password over plain HTTP should be listed too.
> For the first 1-2 years of your Vim usage you will be much less efficient than your current editor because of the odd yet lovable key bindings.

Seriously? It's about as hard as getting used to the keyboard shortcuts of Starcraft 2.
Microsoft Orleans if you are ready to use a cloud.
That's exactly right. Erlang has per actor heaps, and it's garbage collector only stops the actors that are being garbage collected. This is highly concurrent and is a great property to have when you're trying to keep your response times low.
"For the first 1-2 years of your Vim usage you will be much less efficient than your current editor"

years????

This is obviously a typo.

If you used a real editor, it'd be quite easy to change "years" to "days."
graeber's 'debt: the first 5000 years' is an very broadly scoped history of the function of debt and the anthropological history of economics and is one of the best books i've read in years; i highly recommend it to anyone who thinks that synopsis sounds at all interesting
Hm, maybe I should yes. Glad you scrolled down though^^ Thanks for the feedback.
Because early adopters of the website were prominent Microsoft developers. Such as Jon Skeet. This caused network effects. To suggest just because a door is opened that every developer has an equal chance of walking through is absurd. This is not evidence that the general software community wants or needs c# more than any other thing. For many developers more traditional channels of q and a are still popular, such as mailing lists.
I don't understand the need to write an article which criticizes a matter of preference.
EDIT: I am also astonished at the authors attack on those who operate the vim wiki. He suggests that those who operate the site have personality disorders and are robots and emotionless coders. Come on.
2 seconds lag is unacceptable for scrolling.
Is ConcurrentMarkAndSweep stop-the-world?

How hard are the limits of "soft" realtime?
Of course real, rock-hard security is hard to get right.

But it seems to me that the issue here is that some common sense security measure wasn't employed. The author didn't even think about what APIs he/she exposed. That's very different (and more irresponsible) than not designing a competitive and solid security system up front.
In principle, transitioning from multithreaded to distributed with Akka is just a matter of configuration. I've never put this to the test, but akka does make this claim.
Tried it too. Wasn't that happy. I was also never a fan of different search options in my browser bar so the !bang feature wasn't really my thing either.

Now I'm contributing to OpenStreetMap, because I think at least that stands a chance against google maps and might even help some other search engines. DuckDuckGo is using it and maybe Bing will at one point, at least that would explain why they provide aerial images.
We have a niche site denier here folks.
Once you understood the distortion, could you understand new words too? It would be cool to play around with recordings and distortions to try it out...
> Vim: The Editor You Need To Read (At Least) Two Books On To Use Well

No. You need to start using it for 2 weeks and then you can no longer look back on any other editor. You don't need to read two books. Stopped reading the article right there.
there is still emacs out there and getting some fresh air recently.
but it's non-free software.

you should also consider trying emacs.
So, in a few thousand words, the author manages to give multiple reasons not to use Vim and not a single one to use Sublime Text, except this:

> But Sublime has things Vim can never have. It’s the new hotness and has a more active community than Vim does.

"Things Vim can never have"? Details please. "It's the new hotness"? Yeah, because I choose my software based on its hip factor rather than its suitability to do what I need.
Reasons not to buy from Amazon:

https://stallman.org/amazon.html
Haha, that's a very accurate analogy!
A few simple ways: put shared data in PermGen, and rollover to a new process when memory gets low (erlang-style but at OS-level).
>Vim: The Editor You Need To Read (At Least) Two Books On To Use Well

Is this some kind of joke? If this person is serious I think they're doing more harm to the image of Sublime than good.
>It's the new hotness

These people are the reason we are going to spend the next twenty years cleaning up after these two-week fad languages/frameworks.
Not true. Tons of my friends participate in protests.
"i love relearning a new editor every two years"
The same place the universe originated from.

What do you mean, science doesn't have an answer for that either???
I think, the implication was that it attracts a disproportionate number of inexperienced yet very vocal and immature crowds. It creates and unfriendly and unpleasant community.

Also the marketing innovation or advantage it proclaims -- "callbacks as a concurrency mechanism" are thought by some to betray a understanding of how concurrency can be handled in a sane way. So anything said or promoted afterwards is discarded just based on that assumption.

As an example it is like someone saying "oh we have this new awesome paradigm invented and it is a sorting algorithms and it compares every element to each other and swaps places". And everyone will say yeah cool that bubble sort or something like that. It is not very interesting. But you know with additional marketing and a vocal community one can grow and promote that idea despite the apparent flaws at its base.

Now node has very good qualities. It makes it very easy to get started, lots of packages. A lot of example. So those are probably things to look at and copy. And if you see that presentation (or watch the video) that is what the author drives towards. Simplicity. Easy to learn. And so on.
> But as far as I'm aware the memory for a message in Erlang is shared between threads - it's only local variables that use private memory

No, the messages are truly copied: http://jlouisramblings.blogspot.dk/2013/10/embrace-copying.h...

edit: the exception being large binaries apparently
I sort of, but very reluctantly, agree. I would add that modern VIm package systems like SPF13 make it much easier and more accessible, I'd suggest the author check that out instead of continuing to maintain that 700 like vimrc file. That having been said, I still end up fixing a lot of bugs that crop up even with my SPF13 setup (the bright side is I can now contribute those fixes back to a project so others don't need to suffer).

However in the end VIm and VIm style modal editing has been, at least in my opinion, a big improvement in my productivity and flow when coding. It's so big that I can't actually bring myself to switch back to something like RubyMine which is arguably a true IDE for what I work on most (Ruby on Rails).

I'm still a bit confused at peoples love of Sublime specifically. Sublime isn't an IDE, so to be quite honest I'm surprised people choose it over the tools from Jetbrains such as Webstorm, Rubymine and IntelliJ. Its benefit over an IDE, or over VIm, is perhaps just that it is fairly simple. It's downside is that it really isn't very powerful and its VIm mode is awkward and clunky.

The sad thing to me is that there are really just a couple of VIm features that make me stick around.

1. Split management that is easy to work with.

I use this all the time. I often need to be able to look at multiple files that are part of the same context I'm working in (view, controller, service, etc.). Tab switching is not effective for this in the least. Every other tool that can do split panes does this poorly. With VIm I can just Ctrl-P<Fuzzy Search>Ctrl-X/V and it's opened horizontally or vertically relative to the current pane.

2. VIm style text navigation and manipulation.

As true as it is that it's not that hard to just click where you want, I completely disagree with the authors assertion that it's just as effective as keyboard based text navigation and manipulation. Perhaps it's just a matter of flow, but being able to select text in multiple ways, manipulate it and repeat that is amazing. For an example of just how powerful this is in certain cases look at the VImcast on the "gn".

http://vimcasts.org/episodes/operating-on-search-matches-usi...

I use that one all the time since learning about it a few weeks ago.

The bottom line for me, is that until editors learn the lessons VIm has already taught us, it's going to be extremely hard for anyone who has learned to use VIm even half decently to stop using it. Perhaps that's the biggest reason to not recommend VIm to new people. They'll never forgive you for it. It's a trap.
Indeed:

all(a < b for a,b in zip(seq,seq[1:]))

(Although one might want <= if checking to see if the sequence is sorted, rather than strictly ascending (that is, it can contain matching/repeated elements)).
Very much this.

In London, certainly within Financial Tech, it is almost expected that you will job hop every few years, so the employers tend to price this in, with small incremental pay rises, little training, but often reasonable bonuses, to at least keep you there for about three years.

We also saw this was more prevalent with our offshore outsourced colleagues - over there anyone with even a modicum of skill would job hop every 6-18 months. Each time to lock in a payrise.

Employers will give you the shaft without a heartbeat of second thought; never seen why they should expect more from their "resources".
Jon Skeet is a Google developer. Well early Git adopters were Linux developers. Does it mean that GitHub is not really mainstream apart from a narrow group of people?
I am aware of this and I am thinking of a solution for it.

I might just add a "download rate history" into a map[date>rate] and do all calculations with that.

And when exporting it would get correct values in the CSV.
I don't use Sublime Text because it's not free software and it doesn't run in a terminal. I like vim, but I'm not "stuck in my ways" and would gladly switch to a better editor that meets those two requirements.
This is what my Vim looks like.

http://www.webhook.com/webhook-uploads/1396995440381_1396021...

I'm a designer, not a programmer. I can't code perl, vimscript, and can barely read python or javascript. I can use git repos, which really is all I need to know how to setup Vim properly. That and I guess the ability to read some instructions. I've done nothing more than edit a .vimrc file.

It took me a month to switch to Vim from Sublime. There are certainly parts of this article that are true... it is hard to setup initially, but it's not two years, and it's not ugly. For me, the monospace fonts means that EVERYTHING in my vim window is aligned correctly.

Believe it or not I use Vim partially because it allowed me to set up the prettiest editor possible. Sublime just LOOKS bloated to me at this point.

I'd say by month 3 I was doing things faster in Vim. It had NOTHING to do with movement around my screen (though I certainly love that as well). It had everything to do with tailoring my editor to do what I wanted it to do when I performed certain actions / key commands.

In the end I think Vim is a fingerprint. Mine is different than yours. That's pretty awesome and certain of us really want that.

What I will say is that the vimscripts website is garbage. That is absolutely true.
Or just use vim in Sublime Text through vintage mode or the vintageous plugin. I use mouse navigation plenty when browsing code, but a mouse is never going to be as effective at routine tasks like changing text inside a matching bracket, switching case, etc., none of which require dealing with vim plugins. Sure, all those things can be done through an IDE like ST without vi bindings, but only by memorizing even stranger meta key combinations that don't combine into a powerful grammar like vi.
I hear ya. I'm currently giving vim a after using Sublime since learning how to code. I'm at the point where I pretty much prefer vim for backend stuff, but I sometimes like Sublime when I'm working on the frontend, especially Angular. I have so many different files in different folders, and I'm just used to being able to get there quickly with Sublime.
I'll have a look at that as well, thanks.
> don't know of any research although it may exist

I couldn't really find any, but I'd be very happy to learn that it exists. We'd be much better off as an industry if it existed.

> the time it takes to understand a particular piece of code

Can you see a problem with this definition? Do you think that any given piece of code has time_needed_to_understand property, which is at least similar - or at least in the same order of magnitude! - for all the people who could read it? Exactly the same few lines of code can take one person half a day to understand while some other person will know their meaning in less than 10 seconds.

It's much worse than that, actually. You can show the same piece of code to several people, and you're almost guaranteed to hear complaints about both "too terse" and "too verbose"; both "too explicit" and "too implicit"; both "too noisy" and "without enough syntax sugar".

And this happens even if we're talking about people who mainly program in the same language - adding other languages makes this far, far worse. You get holy wars on the grounds of readability and syntax, you get people who just won't ever touch X, because it's so much uglier (and less readable) than Y and so on. It's insane.

Personally, I try to write "readable" code in every language I happen to use. I actually read a couple of books on the subject and looked through many pieces of code/projects which are widely considered "readable". That doesn't matter, because every now and then I still hear that the code I wrote is "too terse"/"too much syntax"/"too little syntax"/"too verbose" - the same code, just in the eyes of different people.

Back to the article, so that it's not entirely off-topic, I find this:

http_retry = retry(DOWNLOAD_TRIES, HttpError)
harder_download = http_retry(download_image)
images = map(harder_download, urls)

very "readable" (by your definition of "readability"), as it takes me less than a second to comprehend what is it about. Conversely, this:

images = []
for url in urls:
for attempt in range(DOWNLOAD_TRIES):
try:
images.append(download_image(url))
break
except HttpError:
if attempt + 1 == DOWNLOAD_TRIES:
raise

I find much less readable, because I need to track a lot of irrelevant data to understand what it is about.

On the other hand, if my task was to understand why the code retries one time less than it should (for example), then the latter code is much more readable, because I don't need to navigate to some other file to see a definition of retry (which takes time) and I just see the potential off-by-one error in front of my eyes.

Anyway, "readability" is really a hard problems for the whole industry, I just wish people would admit that much and started to do some serious research on the topic instead of thinking it's obvious.

Edit: I'd also like to know what people who downvoted my first post here think.
NB, while tobacco ads are banned from TV, they are still everywhere on outdoor advertising, at least here in Germany. Actually, I went on a "street art tour" that turned out to be sponsored by a cigarette company, and they were handing out free cigarettes. So: tobacco advertising is alive and well in Germany.
I think to some extent your question is wrong: clearly humans have coexisted outside of Western nation-states.
Sometimes I love my job.

Sometimes I read posts like this and think I should get a job at a research station in Antarctica so I don't have to watch the collapse of civilization when one of these people convinces banks to switch to Go and hype.js.
Sometimes it's near impossible to tell the difference between the two.
You should try Vim Command-T plugin, kicks ass in terms of reaching files quickly.
This is base concept upon which the legal abuse is built.

Earth Liberation Front, intentionally, never killed anybody. Their actions have been judged though, as if they were intentionally trying to kill people.

Terrorism is a vague concept, but the laws are well-defined, and the government intentionally applies them with double standards, exactly as it does with software patents, which are meant to cover a very precise idea, while they are applied in the vaguest possible terms, in order to extort money from the victims.

So here's where the hypocrisy starts:

On the lack of deaths from ELF attacks, the FBI's deputy assistant director for counterterrorism has said, "I think we're lucky. Once you set one of these fires they can go way out of control."

This is true, but why the government doesn't limit mass-spying of people, then? It actually did go out of control already.

By the way, don't forget that the government condoned HSBC, which factually supports real terrorists.
I know a few people who participated in Occupy Wall Street, and I myself have publicly spoken out in favor of Wikileaks. Having to "think twice" about doing either of these things is natural and hardly a "culture of mass fear", whether the post office is tracking mail or not.
The worst is list running mailman that actually sends monthly password reminder. Is the new GNU mailman still shipped with such reminder feature?
I don't know, when it comes to navigating and manipulating a single document I can see vim's advantages, but having spend a few days recently trying to learn vim I didn't find any replacements for things like jumping to a file by name or recursive regex searching, things that I've come to rely on in Sublime. Feel free to point out if I missed them, but it seems based on my initial experience with vim that there's not really a concept of a "project" or a "codebase", just the collection of buffers you happen to have open at the moment.
I fail to see the point of your question. Elaborate?
"Everyone talks about the steep learning curve but no one talks about what happens once you finally get hjkl in your brain for movement. The answer is months of frustration, followed by finally having a usable editor, followed by knowing some cool tricks that you use in 1% of your daily workflow."

I've seen a lot of people saying this. I've met people who actually experienced this. And I can't listen to it anymore - so I've decided to write a book about how I learned Vim quickly, and how everyone can do this as well[0]. People just don't learn Vim the right way.

There's no need for months of frustration!

When I was starting with Vim, my friends were telling me something like "Just give it a few weeks, and you'll never want to switch back.". However, in every previous attempt to become good at Vim, I would give up after couple of days. Not because I'm someone who give up easily, but because I had lots of work to do.

And with every attempt of switching to Vim, I would spend most of my time on fighting with my new editor
and not on the actual work.

The thing is, I didn't have to put so much effort when I first tried Sublime, or when I tried to switch to Textmate. They were downright pleasant.

What my friends were telling me (btw, advanced Vim users), was something like:

- "Turn off the arrow keys, it's not the Vim way..."
- "Force yourself to use keyboard all the time, don't use mouse at all!"
- "You have to learn x commands, and y things, so you could do z stuff..."

Then I realized - that was wrong! So, in my last (and the succesful one) attempt to switch to Vim (and finally learn how to be productive with it), I decided to don't listen to my "Vim masters" friends. I just decided that in the first couple of days, I'll try to use Vim as any other editor. Just like simple Notepad.
No commands, no mappings, no plugins, etc. Just editing text. And that's how it all started.

With using some learning techniques, I've managed to get good at Vim really fast.

For example, if you can't get used to, or you're not productive with h j k l keys for movement, just don't use them. I don't use them. I use arrow keys all the time. Vim "masters" will probably judge me because of this - cause it's not the "Vim way". So what? I don't care. Arrow keys work for me the best, and I'm happy with it.

[0] - I'm in the process of writing a book - Mastering Vim Quickly (from WTF to OMG in no time) link: http://www.jovicailic.org/mastering-vim-quickly/
Whoa, I had no clue you could do all that. Did you follow any guides? I'd love to see my folder structure and be able to switch colors.
Don't look at me, my original title got edited.
I just don't get it. The only difference between SublimeText and a GUI version of Vim is that the keyboard shorcuts in SublimeText don't follow the same command/movement patterns as Vim.

And unlike the author, I feel qualified to speak on this as I've been using Vim for 10 years and SublimeText since version 1.

ST is fancy. It's also pricey. I can save you $80 and give you a script that will set up Vim and all the cool plugins you'll need. In fact I've done just that for some of my students.
My personal opinion: if you can get admission into a state university with better accreditation that attracts recruiters from Google, Facebook, Amazon, etc, it is far better to go that route. These are the only companies hiring lots of H1-b visa holders.

That said, I have a family friend who is teaching at that Maharishi university and he previously studied at IIM in India and worked in Austin, TX for IBM in a management role for many years. He can give you some good perspective.

My email address is in my profile. Contact me and I can put you in touch with him. Good luck!
> From what I understood motherhood is a status symbol, also a right of passage.

_Promises I Can Keep_ is a good book on this topic.
4 Sales Mistakes That Lead To High SaaS Churn