skysight-inc/HackerNews huggingface dataset:
Most of your peeves are addressed by correctness checkers like JSLint, or have been alleviated by community projects. There's a lot of hate here, so I'm going to address your points one by one:

> I'm talking about things like its extremely broken equality operators,

Don't use language features that are broken. Use === and !== instead. JSLint complains about this.

> its extremely broken array handling (especially the behavior of the length property),

You're going to have to elaborate here, I have no idea what you're talking about.

> semicolon insertion,

Put semicolons at the end of each line manually. Or don't use crazy multiline expressions. JSLint will flag this down for you. Other languages like C force you to do this, why the JavaScript hate?

> its broken scoping,

Never put things in the global scope. Always use var. Global-by-default is annoying, but very easy for static tools like JSLint to flag and nag about.

> its lack of support for proper class-based OO,

Javascript's objects are very minimal; they can easily emulate semantics of other OO languages. In my code I usually emulate the Python copy-superclass-on-class-creation semantics of subclassing.

> its lack of support for proper namespacing and modularity,

RequireJS has effectively solved this problem for me. As per above, you should never put things in global scope anyway.

> its lack of proper typing,

If you're looking for built-in static typing, you came to the wrong place. I think it's important to remember that JavaScript the language was designed to be very minimal (IIRC the entire initial language was created in a week); in that regard, it at the very least is not a good fit for static typing. I personally wish that it had stronger types, and can agree with you here that ideally this would be different.

> and so forth.

I guess I don't see your concerns here. I prefer writing JavaScript over C and Java; it allows me far more leeway for creating abstractions through closures and anonymous functions. Think of JavaScript's problem statement: create a simple minimal universal browser-based language. It's hard to imagine a better language in JavaScript's place (Scheme is the only realistic alternative I can think of). Here's a nightmare scenario for you: we could have ended up with Visual Basic instead.

JavaScript isn't perfect, but what language is?
It's not the question that's wrong, but what you do with the answer that's important.

It's like asking - is it true that black people have statistically larger lips than people of other colours - then is that really racist? I don't think it is.
But if you take the answer to that question,and somehow infer from it that because of it your "race" is better than others, then it only means that you are racist,not the question.

My point is - scientists need different kind of statistics to understand how the world works. If they ask if a child raised by two gay people is more likely to have problems with its own sexuality, then I don't see that as homophobic or aggressive - it's not personal after all.
I'm not at all an expert in electronics but I'm still curious what makes a Raspberry PI better than the $40 android USB sticks? Linux? Inputs? Is it just a matter of positioning? Just curious.
I'm not sure if he's trolling or not either. But since he wrote the original "Apple Writer", (see http://www.arachnoid.com/administration/index.html ) It seems likely that he knows something about the tools of a professional programmer.
True, but obvious.
Out of curiosity where are you ordering from / having them shipped to?

This is probably the 5th time I've seen someone post something similar but all of mine have arrived within a few days or weeks.

So far I've ordered from Newark/Element14 and MCM Electronics and I'm in the US.
J and K are the C and V keys respectively, and H and L are the J and P keys respectively - so it's not too bad, though hardly ideal. My use of a dvorak keyboard is probably why I never bothered with H and L when using vim, and only very rarely used J and K. I just used the arrow keys, if I wanted to move one cell at a time.

(I never really saw the point of trying to make people use hjkl for cursor navigation. You should try always to use higher-level navigations commands, and if you move cell by cell, you've lost already! - so there's nothing wrong with using the arrow keys for it rather than hjkl. That is, after all, what the arrow keys are there for.)
If anything, you're the one arguing for outdated editors -- editors that are not aware of structure and treat programs like an array of characters, allowing navigation only by the simplest and least efficient means possible.
Hidden point #5 for me: it always cost me points on essay-type answers in any tests I took through all my years of school.

I could literally have written the same answer as someone else and they'd get a 10/10, while I'd get a 8/10 because the teacher would claim to struggle to read what I'd written. (This may or may not be true, but that's beside the point.)

Fuck that.
My problem is that this power doesn't motivate me. Do I want to make lots of changes rapidly? No. Further: THAT WOULD BE BAD. I want to make concise changes based on sober reflection. Do I want a convenient browsing mechanism that stays minimal while I internalise the code I'm reading? Yes. I get the _why_ of vim, but the obsession over mashing keys as fast as you can seems like a bad smell in terms of developer attitude.
"Article 49 of the Treaty on the functioning of the EU (the freedom of establishment principle) allows entrepreneurs to set up a company in any EU country."

http://europa.eu/youreurope/business/starting-business/setti...

Also, "Any business legally established in an EU country may open a secondary establishment (office, agency, branch or subsidiary) in another EU country."

http://europa.eu/youreurope/business/expanding-business/open...

Now, someone should set up a web service which makes it easy for EU citizens to incorporate in the UK.
My favorite, Hero:

http://moviebarcode.tumblr.com/post/3515529474/hero-ying-xio...
Thanks a lot, will surely look at each one of them. Pretty excited to get started on Mac for production purpose as soon as possible.
http://en.wikipedia.org/wiki/Thermae_Romae

Apparently they could build bath amazing bath houses because of time traveling to modern Japan.
What if writing performant code on modern Python implementations is only incrementally easier than writing it in C to begin with?

With the right libraries, the hard parts of C probably turn out to be string processing with zero-copy string idioms, the requirement to lay out every data structure in fiddly detail, the requirement to track individual allocations, and the requirement to manage the memory lifecycle. What if performant Python only gives you an advantage on the last one of those?
I just think when you make a pledge to users that you'll safeguard their data forever that you need to think through a few things that their team hasn't yet.

Postponing the forever message until the underlying features to support it are built would go a long way.

Personally, I don't see the issue in launching with an API early. We launched the API for OpenPhoto well before we had any UI.
The Curse of “You May Also Like”
BUCCINASCO : POTENZIAMENTO MEZZI PUBBLICI (ATM) , A CHE PUNTO SIAMO?
I'm now considering extending the seek idea to moving to close-by lines, through mappings that would work like EasyMotion's w, b, e and ge but excluding the current line and working on lines above (b and ge) and below (w and e), by typing the two characters that respectively end and begin the target word.
I see too many love-hate comments in here, I realize now that people can be really fanatical about their preferences for editors.

For what is worth, I use vim and visual studio in daily basis, and love both. I love vim experience over a console and the fact that I can code in a remote machine without any perceptive latency.

I love visual studio goodies (mostly intellisense) and being a keyword guy I just learnt VS shortcuts.

So, Is there something wrong with me? for me those are just tools not religions.

Edit/PS: I know am comparing an IDE and a editor, but in this case I think the analogy is valid
> Not sure if just trolling, but if not it seems you're not very experienced yet in the use of the tools of the trade of the professional programmer. [emphasis added]

Guess again -- I wrote Apple Writer in the late 1970s (http://en.wikipedia.org/wiki/Apple_Writer). One of my goals was to eliminate the modes that plagued contemporary editors and attract people interested in ease of use and efficiency. Apple Writer became a best-seller because (among other things) its competition, most derived from vi, required users to switch modes.

And I can't believe I'm having this conversation over 30 years later, still trying to get people to choose more efficient tools.

> ... you're not very experienced yet ...

It's likely that I was programming -- and publishing my programs -- before you were born:

http://arachnoid.com/programmable_calculators
But Vim's not just hjkl. And all those new keys don't exactly help me get stuff done faster.

Sure those F-keys can be useful. If I'd like to change the screen brightness or skip to next song.
Pause/Home/Insert/Print... Half of the time they don't do anything the other half they don't do anything useful. And then there are a bunch of keys that toggle a light and change the behaviour of keys to annoy everyone. Because switching the num block from one duplicated set of functionalities to another greatly increases the available keys!

No wonder 'modern' editors use so many shortcuts. There are simply far more useful functions to perform than keys. Most newer editors go the emacs way and make you press a bunch of modifier keys. Vim makes you go through modes. I prefer to hit easy to reach keys multiple times, but to each his own.
Square Slapped With Cease And Desist By Illinois State Department
I disagree with your assertion that the workplace was not conducive to work. It was not conducive to work in my particular circumstance with the particular work I was being asked to accomplish.

Do I believe that Yahoo is like this? Absolutely. I believe that people desire to work from home for as many reasons as there are items in your grocery store.

Do I think people work from home because Yahoo is, at times, an impossible workplace? Absolutely.

I can't answer the last question because it's a straw man argument.

Marissa should be focusing on how to attract top talent. When was the last time you heard anyone say, "I can't wait to go to work at Yahoo!"? Good talent exists in many forms but for the sake of argument, say the only two forms are those that can come into the office and those that have to work from home. Why would you wholesale dismiss 1/2 of them? This is an internet company...you know that ubiquitous utility that most of us have in our homes? Therefore it's reasonable to assume that an internet company can benefit, in many ways, from having a distributed workforce...that...you know..is on the internet. :)

Look, I cannot understand why this decision was made across the board for all of Yahoo! All I can assert is how this wouldn't work for me and for a lot of other developers that I know. Great developers at that. This decision seems short-sided and really odd considering all of the other battles Yahoo is going to face. BUT, I'm not privy to the intimate details of this decision either.
I already thought editing titles was uncalled for, so seeing them edit links seems way over the line. Without any explanation, we can only guess at what the reasoning behind such edits are.

However, if mods are going to continue such aggressive edits, it would be really nice if they had to write a quick reason/summary of the edit, or at least show what changed. Since I doubt that will happen, I wish PG would at least add an "edited" label to stories that have been changed.

As things stand now, I no longer know which stories are actually community-approved and which have been silently placed there by the powers that be.

EDIT: Interesting that this thread is suddenly at the bottom of the page...
Beautiful post. TY for the candor and truth.
Ask HN: Best chair for programming?
Not looking for a fancy comfy chair. On the contrary, I'm looking for something that keeps me sitting upright, not leaning back, yet allows me to sit and work for long periods of time without making me stand up because it's so freaking hard.

Right now I'm dealing with a wooden chair, like the kind you'd find at a kitchen table. I've found that to be better than anything at staples/office depot for my productivity.
First, I don't know vi. Well, I am aware that something like this exists, because I see "{not in vi}" everywhere in VIM docs. So maybe you should familiarize yourself with VIM before talking about it - for example I noticed that you wrote that "[in modern editors] there is no need to wonder in what mode you are" as if it was a problem in VIM. It's true for vi, but VIM has a mode indicator on a status bar since times immemorial.

Second, in VIM there are three modes, that's true, but not the ones you enumerate. There is: insert mode, normal mode and visual mode. All modern editors have at least the last one: the editor (all of them) behaves differently when you have some text selected.

Third, in VIM you can freely delete and navigate (with arrows!) in insert mode. No problem at all. Even things like ctrl+left for to skip a word backwards work.

Fourth, sheer amount of commands and functions makes the cheatsheets you mention valuable, they are not needed because the functions are so weird, they are needed because there is so many of them. I saw cheatsheets for Word and Photoshop too. You could argue that paint is better than photoshop because you don't need a cheatsheet to use it, but I doubt you'd want to do that. It's the same for editors: you don't need a cheatsheet for notepad...

Fifth, VIM evolved to the point that it is effectively a platform for building text processing apps, similar to Emacs. There's VIMScript and Python, Ruby and Lua support. With this there is practically no limit to what you can make VIM do for you.

To summarize: you seem to mistake VIM for vi; please take a closer look at modern VIM and then come back with a critique that makes sense in 2013.
You Must Know What Your Project is All About
Yes, however there are hundreds of JVMs available in the wild. Oracle's one is just the reference version.
Here is an idea for you : instead of news ( which is nice but not of urgent concern) , could you send out something like a another list "A drip of Javascript" does( not mine -- I am just a grateful subscriber). Having weekly cool clojure lessons would be nice.
Honestly, I like the term "Apps" more than "Applications" or "Softwares", and guess what, it's even Official now "Mac App Store".
No. It means that language choice is less important than we like to think it is.
> Integrating billing into an app used to be a pain in the ass. I remember integrating BrainTree into a previous startup back in 2008, and it was a four month long process. Applying for a merchant account to even start accepting credit card payments took at least three months to get approved.

This is a massive win. I remember trying to setup payments and begin rejected several times by Worldpay and this was a process that took several months and required us to keep funds in escrow. Ultimately we settled on PayPal integration which required sending customers off to paypal.com and hoping they went through with it.

I'd love to see some case-studies in terms of conversion rates for completing transactions when it comes to keeping customers on site to do payments versus sending them to a 3rd party.
If they made more, they can sell more.
> My problem is that this power doesn't motivate me. Do I want to make lots of changes rapidly? No. Further: THAT WOULD BE BAD.

This is the best argument yet in favor of vi/vim -- it keeps you from doing things quickly that you would later regret.

> ... the obsession over mashing keys as fast as you can seems like a bad smell in terms of developer attitude.

Unfortunately, that's not an argument in favor of increasing the number of pointless keystrokes.
Facebook invites press to 'come see a new look for News Feed' on March 7th
The Dangerous Logic of the Bradley Manning Case
And this comment thread is about why some people don't care in some applications. HN meta!
hahahahahah. I use vim. It probably takes me a good deal longer to get anything done in it. I do it cuz I like the challenge. And I am not particularly pressed for time. Also it's just faster when do you know what the eff you're doing ;)
the F,f,t,T commands really changed my life.

However, after using vim for a long time, I still use the arrows! Not all the time, but a lot. I find that my fingers are always darting around on the margins using $ an ^ and ~ and ... my argument is what's wrong with traveling a little to get to those equally distant arrow keys? I don't really consider the hjkl to be my home position for my hands much. Thumb on space bar is home, if I had to define it.
Try using IdeaVim plugin with RubyMine. It's a real gem.
If you are running Rails on Heroku, use this gem to properly serve assets.
So, I as a mere human can't possibly determine what's public domain and what isn't? I have to put in the effort to track down the original source, and see what notes he/she/it/them put on the original, and if the creator wrote "released into public domain" you can go ahead and use it?

I confess that the very concept of "copyright" becomes more and more slippery the more you look into it. And the slipperiness is all to the benefit of the rich and powerful, and to copyright lawyers, of course.
It's nice overall, but the timing for making items appear is a little slow. I was past most headers by the time they appeared, and I don't think I scroll too incredibly fast.
+1 - I think you have gotten the gist of my article. Believe me when I say that I really do want to see more programmers out there cranking out great software. I don't want to see a bunch of people with enough coding knowledge to build a program, throw it into production without having any knowledge of why the program works. An extreme example would be teaching everyone how to use guns because the future is going to be full of gun violence. Leave guns to those who are trained to carry and use them appropriately.
The IOS Simplicity Conundrum
Great service, if you allowed us to save our installed apps for small service fee or something would be even better.
This is incredible. SO cool. I'm tied down in so many ways right now, but this is one of those moments where I wish I wasn't. If I hear of anyone, I will send them your way; enviously. Best of luck to you guys :)
Can you elaborate on what it means if public domain doesn't exist? In other words, what are the implications of doing it his way vs using that license?

As I see it, he's trying to remove himself from the concept of copyright entirely, so adding a license is against the entire point. Especially when that license effectively says there is no license, that seems like a caricature of exactly what he doesn't like.

I share a similar view, it feels very "clean" and refreshing. Put the content out there, let people use it how they want, end of story. Obviously, though, it's not practical for all use cases currently.
While I can see not including routing and peering among AS's, DNS is pretty fundamental to the the Internet these days. I would consider any explanation that doesn't mention it as pretty lacking.

CDN use has exploded and, from a 30,000 ft view, the Web tends to look a lot like an overlay network on DNS.
Am I the only one who thought that this article was tongue-in-cheek? I mean, who seriously advocates for such a dystopian world? It has to be ironic!
As a C/C++ programmer I find these slides kind of amusing... These languages are popular because they make things simpler, and his suggestions may very well get a nicely jit'd language on par with C, but I suspect you'll then have the same problems C does (complexity).
Cory Doctorow was right. There is a war on "general computing" coming.
> Social engineering is using the force of the state to modify behaviors.

You may think that, but that isn't what it means. Look it up

Wikipedia: Social engineering is a discipline in social science that refers to efforts to influence popular attitudes and social behaviors on a large scale, whether by governments or private groups.

Google: The application of sociological principles to specific social problems.

Dictionary.com: the application of the findings of social science to the solution of actual social problems.

So whatever you're talking about, social engineering isn't the phrase you're looking for.
This comment thread is isomorphic to a comment thread on Packrat parsing with comments about how "I don't parse anything I just use sexprs".
Evidence.com - Seattle and Santa Barbara

Hiring smart, passionate dev, test, and PM to join our small team.

Enjoy working close to the customer and close to the revenue? Looking for something lower risk than a "regular" startup but just as fun and agile ? Not so keen on being part of a large corporate machine ? Really enjoy making the world a better place ? Want your work to impact lots of lives ? Want liquid equity upside ? Enjoy the entire end to end stack from hardware to video to saas to mobile to desktop ?

Well we have a killer opportunity :)

Evidence.com is a funded and profitable SaaS "startup" inside Taser.com providing secure digital evidence ingest, management, storage, and sharing. Our product actually saves lives, reduces tax payer expenses, and increases public safety. Seriously. Everyone behaves when they are on video (check out the videos on our homepage evidence.com)

Our investors/advisors include early stage investor/advisor to FaceBook, DropBox, AirBnB, and other $1B startups.

We have a greenfield opportunity to serve and disrupt an under-served industry, and our customers love our product!

We are looking for any of: embedded, c, c++, c#, android, qt, and iOS experience. That said, we hire for smarts and cool/fun before we hire for skills.

Please send resumes or LinkedIn profile to me: Danny at taser.com

For fun, also include your favorite interview question :)
I'm not sure I buy the whole syntax argument. I programmed in Forth for a while and it seemed like it was much easier to build up an understandable vocabulary than some of the C++ / Smalltalk class hierarchies I have seen. REBOL has dialects that work fairly well. I cannot help but think that DSLs are refinement of APIs the same way C is a refinement of Assembler.

When I talk to someone about what happens in a system it seems like a DSL flows from that conversation.

"It is to describe how to perform a complex task to other humans in a form that computer can also execute."

I think a DSL does that much better than a set of API calls, particularly when you involve non-developers. That is the point of a DSL.
@chadcf and @tptacek

I was responding to @tptacek criticism of the parent not the deck. The deck is great and it mirrors the wisdom I have picked up from optimizing my own code over the years. I personally find it really frustrating not being able to easily pre-alloc lists in Python. I think that having better APIs would go a long way.

As the deck says:

"Line for line these languages are fast!"

"We need better no-copy/preallocate APIs"

"Take care in data structures"
Why We Won’t Be Attending SXSW This Year
I also want an answer to this question... Especially since most android USB stick also have 1GB RAM, where as this only has 512MB.
He mentions that he couldn't find a pure C hash table.

http://linux.die.net/man/3/hcreate
For instance, the book "The Blind Side" [1] is about a black kid who got adopted by an evangelical family.

[1] http://en.wikipedia.org/wiki/The_Blind_Side:_Evolution_of_a_...
Another inefficient command that I use way too much is "x".

Using those keys once or twice is, of course, perfectly fine. One could set up some mechanism that limits the number of repetitions in a row.