skysight-inc/HackerNews huggingface dataset:
No it isn't. The diligence bar for obtaining a bachelor's degree is so far below the diligence bar for maintaining a work presence that they almost don't bear comparison.

People make this observation all the time, but I'm guessing that even the most diligent students who make it showed up late to class often enough that they'd have gotten disciplined had class been a real job.
There are a ton of people in the US that would love to be making $13 an hour like that - if the job also came with free health insurance.
That's the gist of it, with one correction. The 10,000 hours bit is fine, the missing detail is how you count to 10,000 when there are no convenient external reference points. The true extrinsic variables are things like a named discipline or degrees as indicators of experience.
The one thing that makes threads evil is shared memory, especially when doing so unknowingly.

You can't share memory unknowingly with processes, when you can share memory at all.
I'd like to be able to use Lua, D, and some Lisp to solve these problems. It seems like supporting these languages is a bit of work with your current model, but if you move to a model like that of Google Code Jam or Facebook Hacker Cup, you instantly support every programming language. These contests procedurally generate input each time the problem is attempted and let the programmer solve it on his own computer within a period of a few minutes.
one of the cardinal rules of OO is: "each unit (method, object, whatever) should do exactly one thing"[3]. this rule is universally ignored in all the big OO codebases I've seen[1]. applying this rule with discipline, forces you to have a better understanding of what your code is actually doing. I think, that applying this rule even in OO languages forces you towards "functional-style in the small, object-oriented in the large", and the only difference is your code will have fewer classes/methods, and more high-level data-structures with operations like list.filter on them.

[1] i get it, refactoring takes discipline and time, and desire to practice and learn[2], and a team of like minded people, on top of sensible business constraints.
[2] http://www.dustingetz.com/nostrademons-75h-work-week-harmful... [3] http://en.wikipedia.org/wiki/Single_responsibility_principle

edit: added source for single-responsibility principle
I go with whatever the default is. I've logged on to hundreds of *nix machines in just the past few years, and it's completely not worth the effort to try and maintain a concurrent configuration.
I want to believe you - it seems logical. But everything in front of me suggests they do not know how to price things! If you disagree with me, that's okay. But I have to believe they could have sold every single unit today for $200 to $250 per unit. Instead, this "company that has made thousands of products since 1939" dumped them all for $99 to $149. I don't know how many units were purchased today, but I can assume it was in the 100's of thousands - it was EVERYTHING that was available and I couldn't get my hands on one quickly enough. Clearly, they could have sold them for a higher price - how high? I don't know. But my strategy would have been to discount by 30%, then 40%, then 50% until everything was gone. I must be missing something. Too simple!
Hey, he has published more than I have ;-)
Keep it up kiddo!
> People go "threads are evil" with vague rationales about getting locks right and such, and insist we all use separate heavyweight processes.

Insisting processes be used != insisting OS processes be used. Although most language don't give any choice in the matter.

> Selection of sane data structures and communication channels can get you virtually all of the safety and ease of separate processes

It gives you none of the safety, as you have to be very careful in ensuring no mutable datastructure is ever shared unknowingly. When using processes, you can't share memory implicitly, which is safe.

> There as here, simply selecting the right primitives and development strategy in advance make the problem simply disappear.

That's bullshit. It may make the problem less prominent, but it can not make the problem disappear.
why are we arguing about "manufacturing jobs" instead of building robots?

If I recall my stats correctly, the US is #2 in robots, which isn't exactly bad. (Lagging Japan, as a result of 30 years of policy decisions. Japanese government/industry put their chips down on "robots win the future" many years ago and this was not a disastrously stupid decision.)
The Summer of Discontent
That's not a cardinal rule of OO or even a rule of OO.
The "unknowingly" part is the big difference then.

Besides that, you still have to deal with synchronization and mutual exclusion. Or you use a message passing model, which you can do with threads too, though your points in your other comment apply there, of course.
==> Is it implied that since the average American doesn't like some work, America is being afforded a chance to uplift "Chinese farmers" and whole bunch of other poor people? Is it?

==> Isn't such a thought ridiculous? Such a thought, I think implies that the global economy is a kind of a neo-socialist+charitable-capitalistic kitchen whose main aim is to feed the poor and in the process fatten some of them more than the others. Is it?

==> I think that the right question to ask is not if - Amazon Can Make A Kindle In the USA? The right question should be - Is the Amazon Kindle manufacturing ecosystem truly balanced? - If not, then in the long run some parts of the ecosystem will be eliminated, so that the ecosystem finds a balance.

==> Different regions have different geographic/social/economic environments and will be better suited for some kind of work than other regions. One can not ignore these facts.

But, does amazon have a real stake in the companies that make the Kindle China/Korea? I think not. Isn't there an imbalance between what these companies gain, in terms of ability, from this ecosystem and what the rest of the ecosystem (Amazon/American) gets back?

I dont think american companies have a stake in the Chinese/Korean companies/economies that they outsource to. In return they give you low cost electronics - in process building the largest reserves of dollars in the world and building the ability to innovate themselves in the long run.

==> I wonder how digium works though? http://www.digium.com

==> There is no point in being crazy nationalist. But I don't understand why a nation with such a huge continent can't find a place where it can build a manufacturing hub that can participate in the global manufacturing industry.

The country has enough people to enable a volunteer military, but for some reason can't find people who can build a manufacturing hub? even if this was the case - haven't immigrants signed up before?
For me codility rulez!
Insert single characters: Press 's' in normal mode and the next character you type will be inserted at the cursor and put you back in normal. Press 'S' (Capital S or shift+s) and the character will be inserted after the cursor like 'a' append. This is also repeatable, so you can insert a character and then do '5.' to insert it 5 times, still leaving you in normal mode afterwards. Being repeatable is the reasoning I read for it being a function. I picked this up from the Vim wikia site awhile ago.

" Insert single char (repeatable)
function! RepeatChar(char, count)
return repeat(a:char, a:count)
endfunction
nnoremap <silent> s :<C-U>exec "normal i".RepeatChar(nr2char(getchar()), v:count1)<CR>
nnoremap <silent> S :<C-U>exec "normal a".RepeatChar(nr2char(getchar()), v:count1)<CR>

Press 'F5' to run the file you're editing, assuming it has a shebang.

" Run current file if it has a shebang
function! <SID>CallInterpreter()
if match(getline(1), '^\#!') == 0
let l:interpreter = getline(1)[2:]
exec ("!".l:interpreter." %:p")
else
echohl ErrorMsg | echo "Err: No shebang present in file, canceling execution" | echohl None
endif
endfun
map <F5> :call <SID>CallInterpreter()<CR>

I don't actually use this one a lot, but it can be handy. F10 to switch between the line numbering modes, in Vim versions that have relative line numbering (>= 7.3)

" Toggle line numbering modes
" Default to relativenumber in newer vim, otherwise regular numbering
if v:version >= 703
set relativenumber
let s:relativenumber = 0
function! <SID>ToggleRelativeNumber()
if s:relativenumber == 0
set number
let s:relativenumber = 1
elseif s:relativenumber == 1
set relativenumber
let s:relativenumber = 2
else
set norelativenumber
let s:relativenumber = 0
endif
endfunction
map <silent><F10> :call <SID>ToggleRelativeNumber()<CR>
else
set number
endif
"When you say "We want our manufacturing jobs back", this is the kind of job you really want. It is easily the worst legal job I've heard of in a first-world nation."

How about cleaning up after old people when they mess themselves? How about any of the DVD sorting facilities at Netflix, which is practically the exact job you described? How about the massive amount of call centers we have in the US? How about almost any low level job in agriculture? I don't think your imagination is deep enough to fathom how bad a job can really be, even in a first world nation.

There are plenty of people who are willing to work or already work a monotonous or difficult job for low pay here in the US.

More investment should go into automation, but given that the world labor market makes humans so cheap(mainly due to not having the care about the workers health or safety), human labor usually wins out.

Once all these jobs go to automation, what do you do with the workers? That is then societies problem really, we'll need to figure out if there should be a social net that guides people into higher education so we have people building/repairing robots instead of doing what the robots are actually doing. Given the vested interests in the status quo, this is probably not too likely to happen in the near future.
The one thing that needs to be controlled for, is the age of the person filling out the survey. I would be below that average for pay, although I am only one year out of college and into a full time position. Obviously, not a candidate for the title of "lead" developer. Perhaps "sole" developer at the company....
History of Russia In Photos | English Russia
No need to create an alias avoid hitting escape:

C-c works in most cases
C-] works always
Where are we at with robots per human?

That aside, it's a fair point— lots of people are working on robots. But we should be building more robots. We shouldn't be talking about "how can we create American jobs," we should be talking about "how can we replace every American job with a robot."
Someone has to gather all of the data into one place and crunch numbers on it to make it useful.
That's really low. After this survey is done, I can give you access to the excel sheet. If I were you, I'd print it out, show it to my boss and ask for a raise. If not, I'd walk away and find another job.

Frankly, 42k in SoCal does not cut it.
This is really cool man.

Would you expand more on what you're planning for local apps?

One trend I see now is the reproduction of GUI toolkits in javascript. I feel like the better way would be to properly sandbox python (or whatever) and leverage the toolkits already available. Do you plan on enabling anything like that?
I understand your point but you can't give people what amounts to a handout while reminding them that they're better off than the Chinese.
I see that some people are saying that functional programming is more powerful than OOP. I disagree with that.

I do not think one is less than the other. Actually there is a mathematical argument why one is not less than the other. To me functional programming is "what does what I'm trying to describe do?". In object oriented programming it's "what are the properties of the thing I'm trying to describe?". In functional programming I describe the interactions directly and in OOP the interactions come about from how I have described the objects. Done properly, they are both about interactions, it is just a difference of what you focus on.

It has been shown that classes of OOP can be modelled for the most part as co-algebras. This means that objects are a mathematical dual to algebraic types of functional programming. The reason why functional programming is important is that some things are easier to express in a dual space. This means that many things that are hard in OOP are trivial in functional languages. But the reverse is also true. This is why it is important to not drop one for the other.

The real advantage IMO in functional programming is that these languages tend to be developed with stronger mathematical foundations. Hence programming in them tends to encourage people to be principled and rigorous (at least in theory). It is very likely that if you study the subject you will naturally come to be interested in why monads are only one particular type of functor, that polymorphic functions are well described as natural transformations or try to wrap your head around mechanically generating dynamic algorithms in terms of hylomorphisms. The more mathematical nature also makes it less magical and rickety to the self taught programmer (such as myself). That I think is the real advantage. But there is nothing inherent in OOP that stops it from also being built from more rigorous foundations. Such things will come to matter more with increasing concerns in security.

I think functional programmers sleep on the power of coalgebras. In fact his example of google map reduce is completely ignorant of the fact that the real hero in MapReduce tm is unfold not reduce.

I have a pet theory that the fact that algorithms are written in dual styles is why experienced OOP people find functional programming so hard. They literally have to reverse their style of thinking. This takes a lot of energy. Just because it takes place in your head doesn't make it any less physical than trying to roll a boulder uphill or get a wagon wheel out of a rut.

http://www.cs.ru.nl/E.Poll/papers/durham97.pdf
Maybe we do need to bite the socialism bullet, and instead of Social Security, give everyone a guaranteed minimum income with a negative income tax.

I'm a small-l libertarian and I support that in principle, because it's no more socialist than what we have today. We've already decided that we aren't going to let people starve, or die due to lack of basic health care. So given that, it's more efficient to just give everybody enough money for survival than to have hundreds of government agencies trying to fulfill specific needs, or to impose protectionist policies for the purpose of keeping inefficient jobs. That would also get rid of the perverse incentives that the working poor often face, where it's possible to get a raise and end up worse off because your benefits go to zero.
Registered a new domain today that I'd like the Twitter name for ... good heads up Ross, thanks!
I like Rao's writing. A lot of his new stuff is very interesting, but is he ever going to finish The Gervas Principle?
My comment was NOT about a solar battery tree, but a general philosophical statement about how we interpret and judge information.

The moment I start loving HN, I start seeing such Aspergeristic tendencies. So downvote me to hell, but I am stuck between people loving kittens & user-generated 'rage' comics, and between people cannot appreciate broad philosophical ideas.

PS: This comment does not have much to do with what the parent said, but a broader problem with HN. And somehow I think this too (like the orignal comment) will be misinterpreted and downvoted to oblivion.
Interestingly, Canadian English is almost en-GB-oed -- which is the closest thing the world has to "international standard English", seeing as it's the dialect preferred by both the United Nations and the International Organization for Standardization,
I think there is a fine line you need to tread. I agree with what paul has to say but sometimes what we care about is what drives us.

For the longest time i worked as a consultant but i never cared. When someone said to me so what do you do, i just said i work with computers, my rank didnt matter to me, my role , my status nothing. I wouldn't come to work in a suite or tie or even a shirt (i came in just a t-shirt and jeans) and it was very weird to many who were watching. I guess cause they cared and wondered why i didnt ...

They would say , "your a consultant, for a big4 how can you wear those clothes, cause i personally cant".

I would respond by saying, well i dont care , just wanna make sure customer is happy regardless of what my official role is, that way i could do my work , not have to redo things and then go home. Also one of the important things i think is i detached myself from being a consultant, i was nothing, not a manager, a consultant, a senior consultant , who has certain things attached to them so i felt free and just wore what i wanted with the one rule that the customer needs to be happy.

When i found out that i could get away with that i experimented with a few other things too, like if i was tired during lunch i would sleep on the park bench if it was a nice sunny day. I stopped thinking hey im a professional and cant be seen sleeping on a park bench cause thats what bums do and once i got over it and i thought , hey who cares, it was easy and i would come back to the office invigorated cause of a 20-30 minute quick nap :)

However the caveat is when you CARE enough about say programming . If you start to tell yourself you dont care anymore you loose a certain desire which if you care about it, isnt very good. if you keep telling yourself hey i am a programmer then that comes with certain things such as , writing code, being half decent at math, being logical etc etc and being good at those things isnt a bad thing.

So i think i get what paul is saying when he says "i am nothing" but i think you cant apply that to things you care about cause it will cause you to not care. But applying that way of thinking to things what you might care about but deep down know its just for perception or is kinda silly or even not really important has some surprisingly good results :)
The Four Resources of Personal Economic Exchange
hi, feedback here:

when I got to 100 lines and then clicked "Compile", I needed to select text to scroll down, your lightbox needs something like overflow:auto to bring up scrollbars.

likewise, google account means a bounce for me even though I've got one, try to delay showing that

was a bit disappointed with the end result - just shows two green boxes, when I really wanted to see the metrics page from your promo video (http://www.interviewstreet.com/recruit/) (that demo is also too well hidden imo).

A little more in the program description would help, specifically IRL I'll know a rough target time and how this thing is likely to be used (eg. repeatedly, with mostly small numbers, etc.)

Also, the UI is annoying, split into 3 vertical panes: Problem | Code editor | Compile Output

Also randomise the test cases...

int getNumberOfPrimes(int N) {
return N == 100 ? 25 : 78498;
}
> It's called a database.

Programs have to have state and side effects to interact with the outside world. That's not what's frowned upon.

The goal with functional programming is to try and minimize the number of functions that involve those external transactions. The spine of your program in Haskell will revolve around IO, but all the limbs can probably avoid requiring anything more than inputs and outputs.

Perhaps a concrete example would help? Imagine parsing incoming HTTP requests on your TODO app. Ignoring streaming (which I think we can do safely in this case), your IO code is to read and write to the socket, but the intermediate code to parse the incoming request into data structures for inspection? That can and should NOT be dependent on I/O. Similarly, the code that actually generates your HTML output (before writing it to the socket) need not care about I/O.
Am I the only one slightly worried about this? I mean, they aren't really impersonating anyone, since the Twitter handle was created before the website was even online.

First come, first served may suck sometimes, but at least it's a clear, well-defined and fair way of allocating handles.

Before registering your personal handle, have you checked if someone had the domain?
This is really not a useful metric; there are a lot of "developer+domain expertise" positions which are much more about the domain expertise than the development experience.

I've seen people who could hack together perl scripts making >$250k/yr due to being experts at other stuff, and they were titled Developers.
> And I'm not sure selling 10 million would even be enough of an inroad.

Elsewhere in this thread, earl claims that around 25 million iPads (both generations) have been sold. So selling 10 million tablets would be a pretty huge inroad.
I map semicolon to <Esc>, and ctrl-l to insert a semicolon in insert mode.

<Esc> is one of the most frequent commands, no reason it should be on one of the farthest keys.
Labor does not become obsolete. Inefficient capital is discarded, but less efficient labor is always useful to some degree, because of comparative advantage (http://en.wikipedia.org/wiki/Comparative_advantage#Example_1).

This holds even for the scenario of AI becoming a very close substitute for humans. The economic pressure, however, is to develop AI in directions that are complementary to human abilities.
Looks like a riff on "Keep Your Identity Small":

If people can't think clearly about anything that has become part of their identity, then all other things being equal, the best plan is to let as few things into your identity as possible.

http://www.paulgraham.com/identity.html
Where are we at with robots per human?

What exactly is that a measure of?
So you go from distinguishing between processes on the language and OS levels, to categorically declaring you can't share memory implicitly with processes.

A facsimile of a process that isn't implemented as an actual process is going to be in a shared address space. Your pet bondage-and-discipline language might work to prevent one pseudo-process from interfering with another, but I don't see it being equal to full-blown processes, nor do I see it being substantively more trustworthy than making a few simple, easy decisions about how to structure your programs.
My Karma
How can I increase my HN karma points rapidly?
It's not because they were using lisp. It's because everyone else was using C.