skysight-inc/HackerNews huggingface dataset:
The economics of programming are complicated and still unexplored. We're the leading front of the clash between labor finitism vs. labor progressivism.

There's infinite demand for problem solving: making existing processes better. The limiting factor there is trust. How do you make people trust your judgement enough that they'll take your suggestions seriously?

Where there is finite (and plummeting) demand is over subordinate labor: pre-defined work that someone has already decided to pay a fixed amount for. All of that stuff is getting off-loaded to machines or off-shored to low-wage countries.

Labor finitism is the idea that there's a finite amount of paid subordinate work to go around and that we're doomed to compete for a waning quantity of it. Labor progressivism is the idea that, when one block of grunt work is automated, it frees up energy to move to something more interesting (and less subordinate, but more profitable).

Fifty years ago, it didn't matter whether labor finitism or progressivism was a better model of the "true" underlying behavior of society, because we were at full employment and technology didn't change as fast as it does now.

Now, it's a genuine and unresolved question: are we doing the right thing when we, in earnest, do the best job we can at making existing processes more effective? Are we building the skills and credibility that will help us graduate to better work, or are we programming ourselves out of jobs and shutting down the middle class? Right now, it's not clear which. I'd say that labor progressivism is winning, but just barely. For labor progressivism to be true, people need credibility and trust and risk allowance (savings) and those were traditionally won by taking subordinate jobs for ~10 years, but those are disappearing because labor finitism is correct over subordinate labor. The result of this is that the terms of subordinate labor are going to hell, and the people most likely to win in the new economy are those who can find a way to leapfrog that increasingly unprofitable slog.
I wonder if you realise city-wide laws don't matter: you can drive 30 minutes from DC in Virginia and get a rifle...
Do you actually believe this? This makes me laugh... I think we need a psychological study to see what is this filthy obsession with guns people have here in the US.
ps. All are from Japan, US, Italy or UK. I suspect that may be down to record keeping as much as lifestyle.
For example, a friend's wife is from Turkey and doesn't know how old she is as her date of birth was never recorded; one year her parents just made a guess saying "well, you were born in summer and you look like an 8 year old, so we'll stick you down as 21st June 1965".
Yeah! Or like saying every needs to learn algebra or geometry! Biology or chemistry! Or heck, history!
How much research should you do
Very interesting! Some of this methods remind me of GTD...
Wow, really nice! I need to catch up on my math work :-)
I was expecting Mesos to be written in Java, but its written in C++.
This allows for better power management since the hardware has a better understanding the state of the system. When a system is idle now the hardware is also idle and can put itself to sleep.
> Suggesting that just anyone can learn programming in a summer spent with Python tutorials and getting “acquainted with APIs” trivializes the amount of real time and effort required to learn programming.

I am a self taught programmer and began learning about 6 years ago. I have spent probably a 1000 late nights hacking and learning in addition to working fulltime as a developer. Most of the other developers/programmers/engineers that I know have done the same. It takes MANY hours of debugging projects/issues and problems to gain a core understanding of the art of software development IN ADDITION to ones chosen language and associated toolchain.

Anyone who thinks they can learn this and be hirable/good without INVESTING serious time and energy is kidding themselves.

'Professional Programming' is a craft that takes time to cultivate and master.
I don't know about the NIH specifically but often what happens is journals will charge to make/allow an to be article open access. The NIH will give/include in grants funds for paying journals to make a paper open access (often a few thousand USD).

So in some ways the journals don't care, because they're getting paid. Personally, I don't like an author pays model much either, as it doesn't account for scientists working outside their grants (or God forbid independent scientists).
Building HTML5 Apps with Yeoman and Backbone
This is why power management has been superior in OS X/iOS.
Not the same thing! This is like comparing pre-DX8/programmable shader hardware acceleration to the fixed-function crud we had to deal with a long time ago. Ya, you can emulate fixed functions with programmable shaders, but its a poor way to make use of a modern GPU.

Here is a good discussion of the topic:

http://msdn.microsoft.com/en-us/library/windows/desktop/ff72...

Excerpts:

> When the GDI DDI was first defined, most display acceleration hardware targeted the GDI primitives. Over time, more and more emphasis was placed on 3D game acceleration and less on application acceleration. As a consequence the BitBlt API was hardware accelerated and most other GDI operations were not.

> In order to maintain compatibility, GDI performs a large part of its rendering to aperture memory using the CPU. In contrast, Direct2D translates its APIs calls into Direct3D primitives and drawing operations. The result is then rendered on the GPU. Some of GDI?s rendering is performed on the GPU when the aperture memory is copied to the video memory surface representing the GDI window.

> Existing GDI code will continue to work well under Windows 7. However, when writing new graphics rendering code, Direct2D should be considered, as it takes better advantage of modern GPUs.
IDG Connect – Angola: The Big Dream of the African Tech Cities 2063
https://archive.org/details/nasa_techdocs
Spot on! I've been programming for over 15 years and I feel the same way..
Found this:

"yes, vp9 would be helpful with its larger transform sizes. Plus the improved coefficient coding scheme, assymmetric transforms, new intra prediction modes, etc.
There's also some investigation going on around genuine yuv444 support,
or even lossless. However, keep in mind that most improvements of vp9 compared to vp8
are related to video coding (inter-frame prediction). And there's the cost inherent to introducing another bitstream format, which is a long-haul effort. Takeway: need some experiments and data point about extra-gain vs extra-complexity (including project complexity)"

https://groups.google.com/a/webmproject.org/d/msg/webp-discu...
I suspect another aspect is for linux developers to be less worried about keeping the API/ABI stable.
I don't think 30 minutes preparing a meal is the same as having it done. It's really completely different... I'm not perfect at this either, and sometimes the tradeoff of 30 minutes to prepare something is too big and I just do something quicker (rarely prepared food, but I love bread with olive oil and cheese, so it feels great for me when I'm not in the mood for cooking.)

It all depends on how you value those 30 minutes. If there's something in TV you want to watch and will make you happier/more energetic, it probably is worth the extra cost prepared food has. If you are just watching some nonsense to disconnect your brain... Well, stirring a pot is also quite a zen experience, far better than most TV programs :D
Colleges Profit Twice Off the Same Students: Tuition & Sallie Mae Dividends
Note that the problem you describe for process is not a fundamental design choice. For instance, FreeBSD has added such API.

http://www.freebsd.org/cgi/man.cgi?query=pdfork
Isn't Windows NT used only in large corporations that are afraid to upgrade their servers?
Your very own drone, to follow you home
I like process substitution feature in zsh. In bash you can write:

vimdiff <(ls /bin) <(ls /usr/bin) [ It is an example. In real world, I use this feature for comparing outputs of one version of program with another one ]

And this will create two pipes, where output of each ls will go. Unfortunately, vimdiff sometimes needs to do second pass on the files, so this command won't work properly when outputs are large.

But in zsh you can write

vimdiff =(ls /bin) =(ls /usr/bin)

and this will create temporary normal files, instead of just pipes, and vimdiff will work fine.
Ask HN: a question about seasonal topbar colors
The topbar on this site has in the past changed either seasonally or in response to various things - I think green/red for Christmas, a black line after Aaron Swartz died, and maybe on a few other occasions for other things. Do I remember it once being green on St Patrick's day? One time I'm sure it was pink but I don't know why.

"topcolor" unlocked in my profile a few weeks ago and I played around with it a tonne before setting it back to ff6600 today. Does ff6600 mean I'll be able to see when it's changed by the admins to mark events? Perhaps the topbar color in those cases changes to overwrite everyone's anyway for the (usually very short) times they are in effect.

I'm rather curious, does anyone know?
Aaron Swartz - Social Class in America
Very nice! Good work
huh. I kinda feel like everyone should learn a little graphic design. I get that I'm at odds with the general feeling here, but, eh, I'm comfortable being contrarian.
Do you deny either of the facts cited?

The crime decrease was extensively discussed here: https://news.ycombinator.com/item?id=5674263

The most visible and perhaps biggest of the relaxations of gun control is the nationwide sweep of shall issue concealed carry regimes, now around 42 states and 2/3rds of the population, see this for more details: http://en.wikipedia.org/wiki/Concealed_carry_in_the_United_S...; the recovery through political means of the fundimental right to bear arms is no small thing. You may laugh about my "filthy obsession", but the facts on the ground are that every time I exit my residence, I can carry a concealed handgun, and almost every time I do. That wasn't true here in my home state before 2004.

As for a study, not only are there plenty, but since you've made up your mind, for what purposes do you desire one?
If you start making exceptions you'll end up wasting more resources to keep track of them and evaluating whether they're acceptable for the scenario than just not making any as general rule.
It sucks though, because to watch H.264 on it you have to buy a license key for it to unlock the hardware on the device.
@Mike - Yes, that is true enough.
Rebuilding After Sandy, but With Costly New Rules
There's no such thing as growing up. Your spine gets longer you brain gets number. Various organs fail more often. That's it.

Some of the things you've figured when forty other people figured out when they were seventeen. Adults are just tall kids.
> You seem to start off from a wrong premise that the show function prints things.

No, I know what it does. That's how the book describes it however:

"The most commonly used function that operate on instances of this type class is show, _which prints the given value as a string_"

> Uh, no. It doesn't give you the tail of the string, it gives you a list containing just the last element of the argument (if the argument's not empty), or the empty list (if the argument is empty) - which you can read directly from your definition.

I continually forget that tail means the rest of the thing.

> Furthermore, " x:xs doesn't match x" doesn't make a whole lot of sense - it's not supposed to match x, it's supposed to match a non-empty list. Which it does, and the first element of such a list gets bound to the parameter x - but you do not use the parameter in your right-hand side of the definition, so you effectively discard it.

We're far enough away from what each other are thinking that this just isn't worth talking about as written.

You've already matched your list to x earlier in the program so x:xs doesn't get a chance to run. You're not showing x and then falling through to pass xs to the function again and chopping the first element off of that to show - and so on.

> Note that both pattern matching and the Show typeclass (and the corresponding function) are discussed in the book prior to the minimum example.

This:

http://i.imgur.com/7NKReoL.jpg

is not a discussion of the show type class and corresponding function.
Hang on, isn't Dave McClure an idiot? He speaks like an idiot. He writes like an idiot. He spells like an idiot.

You guys, I honestly think he might be an idiot!
The RPi does come with licenses for some proprietary codecs, namely MPEG-4 Part 10 (H264) and MPEG-4 Part 2 (DivX, Xvid and the like), mostly because they're cheap and their use widespread. The extra license you can buy are for codecs that are either too expensive (MPEG-2) or not used very much so their inclusion would increase the price of the RPi for everyone while only being useful for a few.
Interesting - I think I'll start using zsh :-)
No, you don't. H264 can be decoded on the hardware out of the box. The licenses are only for MPEG-2 and VC1.
>Now, you may think that implies that you could do something like this to print a string one character at a time:

I'm not sure how far you got after this point, but the problem is easily solved with a higher-order function:

mapM_ print "blahblahblah"

Or if you don't like each character being quoted:

mapM_ (putStrLn . return) "hello one at a time"

Or did you not want the characters on their own lines? In that case, you can do this:

mapM_ putChar "horse raddish"

But why bother doing that when you can simply do this?:

putStr "egg freckles"

>But what happens when, as is frequently the case, someone wants to retrieve the nth element of a list?

If you are frequently wanting to do this, you are probably doing something wrong. Haskell's lists are intended to be used as control structures, not indexed data structures. For those, you'll want an Array, Vector, IntMap etc.
Extremely interesting, thanks!
Problem is zsh is not omnipresent like bash is.
I'm sure that if you use zsh you also use Plan 9, code in D, write LuaTeX in Emacs and wear a monocle.
One of the most interesting articles I've read in the last year!
Interesting article, but it does sadden me when I see the author's name...
Entrepreneur Raised $300,000 By Wearing Dad’s Wool Shirt For 100 Days
Experience says the only solution to a situation like this is to fire the customer and likely refund any money taken already, no matter how much sunk cost you have.

Long-term, purging yourself of a toxic customer is at least as valuable as gaining a new one. For added points, direct him to your competition.
So it's sed, but you'll have to C, man.
I quit twitter altogether. Never felt better. I'm worried HN has replaced it though.
Santander: Test bed for smart cities and open data policies
His point about a dissertation is interesting, having just finished one myself, I had never thought that it could have been inspired as a task to focus (not distract) our attention on studying.
Bah! Give me Ksh.
Spent so much time a year back on twitter, facebook, instagram the best way is close all your accounts. It's hard the first month and then you realise how good in fact it is trust me!
MLM Multilevel Network Marketing
Help make the startup a reality
The Next Pandemic: Not if, but When
"How do you make people trust your judgement enough that they'll take your suggestions seriously?"

This is arguably the single biggest issue I've faced in over 20 years as first a programmer and since 2001, an architect.

The result? Trust is easy to get. I'd argue that credibility precedes it, and that's also easy to establish. The caveat is that it requires social skills, and must be done at the outset.

Building relationships that establish trust and credibility requires not focusing on building relationships.

When a new project starts I focus on three things - understanding the current situation, establishing a business objective, and bounding the scope. I do that by getting off my arse, meeting people, finding out what they need to succeed, and listening.

And by not talking, but mostly prompting or re-stating someone's problem in my own words, I build the trust I need from them.

[Edit] It's a bit badly articulated because I'm still formulating the idea, but over the last few months I've tried to put my thoughts down - http://www.wittenburg.co.uk/Entry.aspx?id=8ec91ced-b3a4-4b07...
Some of these things exist in bash too. For example, newer versions of bash support the recursive glob.

shopt -s globstar
rm **/*.swp
I'm reminded of the discussion of Joseph Weizenbaum in Pamela McCorduck's _Machines Who Think_.
> What's behind the Federal Circuit's sometimes overzealous patent jurisprudence is the echo chamber effect that comes from a court that so specialized.

I would add to that with the simple statement that many if not most of the Federal Circuit judges are from an patent lawyer background. We get a system like this when patent lawyers, who become patent judges, get to balance public interests vs patent owners.
Previously on hn, with some good discussion: http://news.ycombinator.com/item?id=3877880
If you love Django, you'll love spine.js. It's ORM is the only one which has a decent Active Record implementation.

Angular takes the gold when it comes to being opinionated. If you agree with the philosophy it's a breeze, if not you'll be fighting it every waking hour.

Backbone is the least opinionated and to be honest I don't see the point of a framework with so few opinions. It just encourages you shoot yourself in the foot.

Horses for courses, I suppose. What's the purpose of your personal projects? If you are doing them in hope that it will be a business one day, go with Angular as it does a lot of magic and things move very quickly after you succumb to its wisdom. If you are doing them to beef up your portfolio, go with Backbone as it seems to be most popular among businesses. If your purpose is to learn, write your own framework, at least initially. You'll get an appreciation of what weight they are trying to lift. Choosing a framework after that will be a much informed decision.
Do you realize how utterly rare you are?

You've definitely homed in on three very important parts of being a good programmer as I define it. You're probably assuming some basic things like good communications (a won't happen without that) and using source code control when the project is big enough (I assume a part of c, but indeed backups come first and in small companies I tended to take that over) ... and I'm struggling to think of something you haven't covered that's relevant to your domain.

And, yeah, it sounds completely illogical, but after a while if you're good you do develop "intuition" that guides you in quickly finding bugs.
Yeah, this "everyone must code" malarkey has gone too far. If anything, it should only be those who can find genuine interest in code. I mean I'd be a pretty terrible medical student.

I will say that the ability to find patterns is crucial to learning natural languages as much as programming. As is the important of finding context. Likewise being "technical" as in being comfortable with technology and a willingness and patience to learn it are important as well. But I would take a car to the garage instead of trying to fix it myself (knowing about how the car works a little bit helps me avoid getting ripped of).
I'd like to second this. There is a lot to Vim and Practical Vim is an excellent read. This book covers a lot of ground and the way it internally references itself is excellent (great for jumping around).

Links for the lazy (non-affiliate)

http://pragprog.com/book/dnvim/practical-vim

http://www.amazon.com/Practical-Vim-Thought-Pragmatic-Progra...

The better you get at Vim the easier it is to learn more Vim.
The killer feature to me is scp completion, e.g.

scp someuser@someserver:<tab>

… will ssh into the server, fetch the file list and offer it for completion locally (granted you have set up public key authentication)
i love my windows sys admin co workers... really lovely guys!

but there is no way in hell they can/ever will or want to write powershell.
OpenCoin Inc announces a new ripple giveaway
I subscribed to their list.
I got the following email:

===========================

Upcoming: Ripples for Email List and Developers
May 10, 2013

It has been quite a month for math-based currencies. There has been a flood of new interest so we have doubled our efforts to keep up with the rising tide. We are overdue with some important updates, but the time has come.

Announcing....

At the end of May, we will begin a ripple (aka XRP) giveaway to everyone who signed up for our email list on or before May 9, 2013. Tens of thousands of folks will be getting ripples! We will be sending emails for this ripple giveaway in batches. Everyone who is eligible will receive their giveaway email by the end of the month.

Thereafter, we will start a Developer XRP Giveaway. This giveaway will be designed specifically for software developers with the goal of introducing the Ripple protocol to them. If you are a coder interested in our developer programs, we recommend you subscribe to our developer email list and follow us on Github.

If you have more questions or want to chat with us, you can always find us in the Ripple forum or on Twitter.

Thanks!
my bash does this...
Hi Dilan

I'm happy to have it at Sydney Dev Camp which is on William Street, Darlinghurst. We already hold a couple of meetups here so can easily cater for another one.
Just use PlayOnLinux. It makes handling of wine configuration very easy and automatic.
I believe the official policy is that C++ is the upgrade path from C, and C is therefore deprecated.
The Web is easily my biggest timesink.
Patenting file formats make no sense to me. They are serializations of data, and although it can be convoluted how best to store a given representation of data the component parts must fall within mathematics.
Read here: http://vim.wikia.com/wiki/Using_Vim_with_the_Dvorak_keyboard...

Are there many guys using Dvorak? I only met one in my whole life.
Very nice, just the right amount of detail requested so that it is quick to fill in but not shallow and meaningless.

http://hoverboard.io/simonbarker

BUG?: when uploading images it would be nice if there were some acknowledgement as, on Chrome Mac at least, there is no feed back until save and refresh.
The site1 site2 substitution slide is at best disingenuous; I believe in bash you could type

^site1^site2

and get the same result.
Thanks! And yeah, the image upload lack of feedback definitely needs fixing.
Landlords beware: Airbnb is booming, but many users run legal risks
Smartphones driving violent crime across US
We can't touch named pipes. Let's add %INTERNAL_NOTIFICATION_SYSTEM%! And let's make it inconsistent with virtually every other named NT primitive.

Linux does this motherfucking bullshit too. "Oh, systemd is piss slow? We'll bung d-bus straight into the kernel, right along side the over 9000 other IPC mechanisms. Everybody uses d-bus these days, it's an Essential System Component. What? Systemd is a crap idea to start with? People like you should be committed."
That is a great starting point, and will probably get you better than average candidates if you can figure out how to tease out that information without knowing how to code yourself. Compared to the average non-coders approach, that will get you really far.

I'm curious what you ask in interviews.
Holy cannoli, that's an awesome trick. I've always created temporary files manually then diffed, then deleted them.
I use zsh on ubuntu, write code in ruby and java in sublime text. Your strawman non-argument has no place on HN
+1 for your thoughtful reply.

I've tinkered with other functional languages (Erlang, Scheme and Clojure), but Haskell is a stranger beast.