skysight-inc/HackerNews huggingface dataset:
The extra days don't advance the Sun-Sat cycle no matter where you put them. January 1 is essentially defined as Monday (or whatever).
Please,

I found the article fascinating in it's own right.

The theme of greed and patents goes back a long way while Jobs' name is unmentioned in the article from reading and text-search.

Jobs is kind of exception to the pattern in that he both innovated and sued, sometimes successfully, sometimes less-so.

And the lying about health issue thing is bother irrelevant in this context and one of the smaller issue in any weighing of Jobs' sins and achievements.
Chinook Jargon
"at the time Dan Shapiro argued against it" -> and still do. :) To summarize the key points, I think:

- Joel confuses "easy" (50/50) with "fair" (working out the right number)

- It is better to argue yourselves to death early, when nobody else is affected, than later, when people are depending on you

- The expected value of an IOU is negligible because investors usually force you to waive them as a precondition of investing and they go to zero if the company fails

But perhaps I'm wrong. I'm expecting a round of innovation in equity allocation as companies heed sama's advice and try new things. I'm very curious to see how it works out!
> Just agree on a number of weeks on which pay is given out, rent payed,...

You can do this now. In particular, pay is quite frequently handled by the week.
Yes. There's no denying that. I would not have studied finite automata, nor subjected myself to the horrors of compiler design, or even still, hardware languages such as vhdl or verilog, had it not been for spending 100k+ on some formal education.

Why does this matter? Well: All my code is as efficient as possible, to the best of my working knowledge, all while meeting deadlines.

How did I do it? Well: Get it to work. Make optimizations. Repeat. Potentially refactor. You'll always have a fallback that works, because you had to in order to get a non-failing grade.
I'm self taught :)

Algorithms in a Nutshell does a great job of introducing data structures and algorithms. It's also very short. Data structures and particularly basic graph algorithms (DFS, BFS, DSP) are very powerful and can solve a lot of common problems.

After that, study Math. Algebra, Set Theory, Automata and Calculus were real eye openers. Schaum's Outline of Discrete Mathematics is a good start in discrete math.

Automata: if you can, try and get hold of the Coursera course on the subject. It's excellent. It is hard work, but it got it through my thick skull :)

Then, compilers! They're awesome. They changed the way I think about development, and also in one feel swoop destroyed a lot of respect I had for the industry. I read "Engineering a Compiler" and followed the excellent Coursera course.

Did learning that make me a better developer? In some ways, yes. I'm capable of solving problems that I thought were impossible a few years ago. On the other hand, it is now clear to me that our industry is building castles on sand too often, and that makes me sad.

I feel like Algernon.
Why? It's still three numeric digits. If anything, it would be much easier to calculate date validity. In Python:

acceptable_days = range(1,29)
if pickedMonth == 14:
acceptable_days = [1];
if isLeapYear(year): acceptable_days = [1,2]
# any future hack will just go here

if pickedDay not in acceptable_days or pickedMonth > 14:
raise InvalidDateException()

Compare this with anything we use today. Which code is simpler?
Would be nice if you get a quick summary of each channel.
> There's a lot I don't love about Rust

We'd love to get your feedback on the parts of Rust that you don't love, either here or on the mailing list!

https://mail.mozilla.org/listinfo/rust-dev
It's true that CS is more theoretical and not that useful for the majority of paid programming work out there. However you can go get a job anywhere building CRUD apps and acquire the knowledge to build a Rails app or whatever is the flavor of the day, but finding a job where you can, for example, build a compiler is rare. In a good CS program you get to do dozens of such projects from implementing a ray tracer to a network stack to hand optimizing decompiled assembly.

Aside from feeding your curiosity, the practical advantage of a CS degree is that it gives you the lay of the land of computation in general, so that if you are lucky enough to work on something novel and challenging that requires more advanced data structures or algorithms then you'll at least know where to start researching. Without CS you won't know what you don't know and so you are likely to miss entire avenues of exploration.

The idea that you will learn more in industry than in a CS degree only applies if A) you are in a shitty CS program or B) you aren't trying hard enough to learn anything. If you are so eager to get out into the real world, do a startup in your spare time—you'll never have as much spare time available for projects as in college.

Granted the ever increasingly extreme expense of college throws a major wet towel over the whole value proposition, but let's not conflate that with the unique learning opportunity that it represents.
Wow, they don't even release the gpl code they're distributing but announce that it supports openwrt? Linksys is really riding on those guys backs...

Btw, Asus has the best hackable access points nowadays, in my opinion.
That's a valid data point. Without moving the goal posts, I'd like to re-phrase the logic :

The crux of this argument is that the supply chain for illicit marijuana will be disrupted by legalization. In other words, legalizing will cause current (illegal) suppliers to go out of business and/or stop doing business with street / kid / high school dealers - thus reducing availability for underage kids.

My issue with this logic is that I can't see why the demand for a product (marijuana) won't continue to drive supply once it's legalized. There will always be a way for a local high school dealer to find weed. Supply chains could easily re-route to accommodate demand in high schools.

What I do find to be a compelling argument, however, is the notion that demand could decrease post-legalization. This seems rational to me.

The alcohol comparison feels awkward, primarily due to the difficulty in trafficking in alcohol at the small scale. It's bulkier and decidedly more awkward to manage. Therefore, it's not exactly apples to apples.

At one point, I also considered the fact that legalizing could decrease profit margins. However, low level dealers really don't have much of a profit margin to begin with.

However, you have solid data and I'm primarily speculating :)
Oh god, that was the most hilarious (yet accurate) description of Quebec I have ever heard... Thanks!

> I probably make four times what they do but can't see how they can afford it let alone me.

I'm sorry to break it to you but you are paying for it through taxes. Ok, that's an over-generalisation but there is some truth to it. It's very easy to get by without a salary in Quebec due to the multitude of governmental services (I recall reading that over 50% of Quebec's economy is driven by the public sector). I have a friend who is on welfare and still manages to go to Cuba every year.

Personally, I'm a fan of the attitude (not caring too much about work/money) on an individual level. For a while, I was living the 3 months freelancing / 3 months vacation lifestyle and it was great. That being said, I'm not a fan of the governmental policies which promote it at the expense of other equally admirable attitudes (e.g. entrepreneurship/hard work). It's not all fun and roses. The economy of Quebec has been suffering a lot from those "big government" policies and Quebec has now become one of the poorest province in Canada despite its abundance of natural resources and highly educated population. Of course, I implied here that there is a cause and effect between those policies and the economy but not everyone would agree with me on this. In fact, a sizeable fraction of the population (http://en.wikipedia.org/wiki/Quebec_solidaire) actually advocates for economic degrowth...
Ok, I'm definitely going off topic now.
If I'm splitting cedar, white pine, or poplar - yes, I will split with a splitting axe - and I'll go through it almost as fast as the demo, ex-knotty wood. But, if I'm splitting larger (20"+) gnarly pine logs (which, for whatever reason, seems to be the only wood we collect off the crown land next to us), it's all about the maul, and, if I don't make any progress with that - it's the wedge+sledge hammer (which will split anything)
Squadio: new football (soocer) app launched
Auto-loading test fixtures in node
Without having attended a university, I would assume that one of the many advantages are the possibility for mentorship during self-study. Which is a scenario one could replicate in a daily routine.

I think mentors are extremely important, to inspire and to help you, when you hit a dead end. So you avoid many of the negative experiences, and keep a good flow when learning. It's definitely the case for me.
Like for like? I was programming on Acorn Archimedes 310s back in 1987: an ARM 2 clocked at 8 MHz. The memory and video controllers were discrete chips. Acorn claimed that their ARM 2's pipeline design let it run integer operations at the same speed as a 20 - 25 MHz 386.

IIRC it only had 23 instructions, making it the most pure RISC design to be available off the shelf.
I moved from yahoo mail exactly because they started to delete my email if i didn't log in every 3 months... Sigh. There we go again.
This comment is partially correct, and partially bullshit.

I've been to university and studied computer science. What computer science gives you is a foundation in understanding computing and what's going on at various levels, which simply toying around with languages does not.

What a computer science degree generally does not do, is teach you how to be a particularly good programmer. There might be brief parts about patterns and whatnot, but I found there was bugger all about reusable, maintainable, elegant code. There is so much about "programming" that is very much removed from "computer science".

This is where the bullshit part comes in - what stiff is saying about the Dunning Kruger effect is quite frankly obnoxious drivel. You can be an excellent programmer by learning to program via toying around, and a degree suits a very specific learning style. I've known many programmers who do not have a degree who are far better than those with a degree.

I found a degree very difficult as I have ADHD and am terrible at sitting in a lecture sucking up information, then vomiting it into an exam - it is also not particularly representative of how the knowledge is actually applied.

tl;dr CS degree gives you a good foundation and a bunch of in-depth insight into how computers work (and a are good tool to make you realise the breadth of the subject), but are not for everyone as people have different learning styles, and certainly do not make you a great programmer - and are not necessary in order to be one.

We just need to remember that the people who invented Computer Science did not have a degree in Computer Science.
That is a new information to me :). Thanks
I actually really liked the article standing by itself. But, the article is without question a commentary on Apple's recent litigious behavior, and, indeed, coming from other writer's might have been insightful. But I couldn't help but read it as another in a long thread of articles by Joe Nocera trying to slam Apple.

Nocera's treatment by Job, including his statements about his health is the source of Nocera's ongoing diatribe's against Apple. The context is useful when reading essays knocking Apple by Nocera.

I might have a little more patience if Nocera was a random blogger/pundit, but, I expect more out of the NYT. Yes, opinion, but balance and nuance is also important.
Flying Angle of Attack
Wohnungsräumung 
Wohnungsräumung , Wohnungsräumung wien
Übersiedlung Wien; Umzug Wien; Privatumzug Wien ; Firmenumzug Wien; Transport Wien; Kleintransport Wien; Botendienst Wien; Internationaler Umzug Europaweit und Österreichweit; Entrümpelung Wien; Kellerentrümpelung Wien; Dachbodenentrümpelung Wien; Entsorgung Wien; Sperrmüllentsorgung Wien; Müllentsorgung Wien; Bauschuttentsorgung Wien; Containerentsorgung Wien; Dachbodenentsorgung Wien; Räumung Wien; Wohnungsräumung Wien Gratis; Haushaltsauflösung Wien; Wohnungsauflösung Wien; Hausräumung Wien; Verlassenschaft; Delogierung; Zwangsräumung Wien; Kellerräumung; Verpackungsmaterial Wien
Ailerons aren't really conceptually different from wing warping, it just uses a hinge rather than bending.
Funny how that was one of the first few things I had to teach myself, as distributed systems was something that only the biggest businesses had when I started school, and so, the curriculum didn't exist yet.

Hadoop is not exactly the best example of distributed, but it does contain all the core components. If you want a highly efficient, distributed system, then I suggest one tries to write their own. This ground is still being tested.

Sockets and asyncrony are tricky things, and I'm sure there exist better ways of achieving distributed computing.

1) Compute-intensive, job-centric?
2) Compute-intensive, parallel reductions?
3) Database-intensive, map-reduce?
4) Database-intensive, sharded, non-normalized?
...

The various forms of distributed systems is something that many people don't fully grasp. It's rather easy to build your own #1 or #3 (hadoop). Facebook has done an alright job at #4. Parallel reductions on distributed systems... I'm thinking million factor by billion-row matricies. That is something that we have yet to explore. Sure, we've done thousand-factor by billion row no problem. That's essentially a map-reduce. But doing the matrix reductions on 1e6 by 1e9+ is not something typically done. ... at all. One would need to find alternate ways of representing those 1e6 features as separate matrices... perhaps some form of Bernoulli/Bayes combination and increase the number of operations by 1000-fold.

// Forgive me for the rant. This is something I do like to think of in my spare time. You're right in that self-taught's don't have this skill. My value-add is that a lot of school-educated don't possess this skill either.
HMRC 'plans to share tax data with private firms'
So, for uninitiated - "Uber" is cab, and "UberX" is gypsy cab? Is it correct?
Perhaps, but as an employer I would run away from a candidate that couldnt code a linked list.
Graphene ‘spaser’ brings optical computing to the nano-scale
I parsed the final "/s" as per second.
The people who invented computer science were certainly driven by theoretical and mathematical concepts. Lambda calculus, church numerals, etc all played a role in the formative days of cs
sicp is my recommendation
How should a non CS person develop CS skills?
Hi , I'm looking to get deeper into CS and have a biomedical background with some introductory programming courses under the belt. Would appreciate advice. Thanks
I would recommend very simple things really -

1. For Data Structures and Algorithms.

- Join this site where active job seekers hang around and share interview questions - http://www.careercup.com

- Solve a question a day and post your solutions, read through that of others and comment.

- This is an active community so you would get up and running with the basics quite fast.

2. For Design Patterns.

- Do a "light reading" of this book - http://www.uml.org.cn/c%2B%2B/pdf/DesignPatterns.pdf

- Explore opensource projects and see if you can identify patterns.
Moore's Law limit hit by 2014? (2009)
Programming != Computer Science

Programming is a tool used to solve Computer Science problems but Computer Science is in my opinion not a course in programming. If you eventually want do something else than programming but like the field I would advise you to pursue a degree.
Depends on your goals.

Generally, if you want to work with product development, please learn the importance of good abstraction, readable code, clarity, doing the simplest thing, refactoring, and so on.

Most of the time, you can get away with just hacking away until it works. But code bases developed like that tend to develop tons of incidental complexity, weird logic, unintelligible ownership issues, etc.

Clever algorithms are awesome, but don't let cleverness and complexity grow like vines. Code is like a bonsai tree or something: you have to be meticulous and responsible in pruning it.

Check out SICP. It's a beautiful book that teaches very good design.

Also, take every opportunity to really learn about the languages you code in. Like, if you code JavaScript, you should understand its scoping rules, how its closures work, its peculiar object semantics, its various crazy quirks, etc.

Don't underestimate the value of time. Learn when to take a shortcut, and how to isolate "shortcut code" into a module that can be replaced or improved if needed.

If you're interested in design patterns, read Gabriel's "Patterns of Software" -- http://dreamsongs.net/Files/PatternsOfSoftware.pdf -- for a more nuanced view than most courses and articles.

If you're into OO design, read Eric Evans's "Domain-Driven Design," and take heed when he emphasizes the importance of domain language and concepts.

Learn how to use some structured to-do system efficiently. Don't try to juggle dozens of random things in your memory. If you realize you will need to do something after you're done with debugging or whatever, you should be able to quickly jot it down.

Learn methodical debugging. Learn to narrow down your problems.

Read books like "The Pragmatic Programmer," "The Passionate Programmer," "Working Effectively With Legacy Code," and so on.
For a lot of this stuff, trade secrets wouldn't really keep people from sharing innovation.... Anyone could have looked at a Wright airplane and figured out how the lateral stabilization worked.
KDE Releases Applications and Development Platform 4.13
Interesting viewpoint. Overall, though, I disagree with your tone; particularly the importance you're implying a degree has over your ability to learn.

I've found that, for me personally, learning with a group of peers interested in whatever aspect of computer science I'm learning has been far more beneficial than an academic setting or formal curriculum has. That is to say, I learn faster and receive more accurate/timely feedback sitting in IRC than I do listening to lectures.

I don't think college is necessary or even well suited for everyone, in fact I wish I didn't personally feel obligated to check the box myself; it's certainly one of the best places to meet people in your field though.

In the end I'd say I learn fastest when I a.) Don't understand something and want to, or b.)Want to make something. In both of those cases effectively using the resources available(docs/irc/mailing-lists/google)helps enormously.

That said, I think people learn in different ways so I'm hesitant to offer any concrete advice based on anecdotal experience.

I'd also be hesitant to imply that people without a degree are more susceptible to Dunning-Kruger effect.(especially when some of the most incompetent people I've faced are recent graduates with a lot of confidence)

Also that 'well elaborating' post is under 500 words and consequently elaborates very little.
AGE OF DECEPTION 7
I just started a series of blog posts that handle some of the more complex subjects in a clear and relatable manner.

http://daemon.co.za/2014/04/introduction-fullstack-fundament...

This is a roadmap, not a recipe book. I want to give people a bit of surface area to grab onto when learning these things, so they can figure out how all the pieces relate to each other.

here's a trello of the planned posts so far (several outlines/drafts already): http://i.imgur.com/txu4yd3.png

Any ideas about what I should write about would also be useful.
What should a self-taught programmer study? The simple answer is: whatever you want. I have always found that I learn best when I'm motivated to learn about the subject. So I would suggest studying the things you find interesting. Where others' suggestions can help is in describing and motivating fields you might not have heard of, or might have dismissed. There are plenty of suggestions in this thread, or just look at the curriculum of a top CS program.

As for how you study -- just choose some and use it. There are many great texts, online courses, and so on. However it is far far more important to just start with something -- anything! -- than to waste time deliberating about the best method. The difference between a book and online course, for instance, is not so big that it's worth spending time deciding between them.
Rich Hickey's presentation "Simple Made Easy" changed how I communicate about software complexity.

I got so frustrated about only having a 1 hour presentation to link people to, that I ended up writing some notes to be able to refer to them later.

http://daemon.co.za/2014/03/simple-and-easy-vocabulary-to-de...
"What skills do self-taught programmers commonly lack?" is a very different question from "What skills do self-taught programmers need to learn?"

What you need to learn depends a lot on what you plan to do. Programming is a large field with lots of different specializations. If all you want to do is make web apps and mobile apps, there is probably no need to learn how to write an OS, you only need to understand how the various OSs differ from one another. On the other hand, if your passion is in systems programming, there is probably no need to learn about the latest CSS preprocessor. All of these things are good to know, but one person cannot, and does not need to, know everything.

Pick one or more specializations that you're particularly interested in, and learn a lot about them. Don't completely ignore all the other fields, but satisfy yourself with a high-level understanding of (1) what those fields are generally about, (2) why they're important, and (3) when you should defer to the judgment of someone who is an expert in one of those fields.

Anyway, here's one specific suggestion that I don't think anyone has made yet: if you do anything web-related, learn what the various protocols that make the internet tick (http, smtp, dns, etc.) actually work under the hood. You should be able to create a text file, pipe its contents to a telnet session, have the machine on the other side return useful information, and be able to parse the result. Not because such a skill will get you a job, but because the insight you gain during the process will put you ahead of the majority of "web developers" who have no idea how much complexity Rails hides behind its ass. When you're done with text-based protocols, move on to binary protocols. (Memcached is good for practice because it uses both.) Incidentally, this will also teach you a lot about commonly used data structures.
Your question is too unfocused and general for a meaningful answer. Without specific questions, all I can say is, "study computer science."

Here's a suggested starting point:

http://www.bottomupcs.com/
If you only take one computer science concept with you into industry, let it be the finite state machine.

More than one would obviously be preferable :)
If you invented it, you should be allowed to patent it. Especially, if it as ground breaking as flight would've been. I see no greed there. By that logic, the writer should head to North Korea and lead the life of a Comrade since the same could be said about capitalism too.
Non sequitur means "it does not follow."
A possible way to look at Airbnb is that they have 200k properties and 200k contractors that get paid a percentage of the revenue they generate.

They aren't in the hotel business, they're marketers and matchmakers.