skysight-inc/HackerNews huggingface dataset:
Most people view Goldratt's teachings in a very narrow scope, and that is tragic. As others have mentioned, the Theory of Constraints is applicable to just about everything (I cannot think of anything where the TOC does not apply).

I believe Goldratt's goal with his first book “The Goal” was to introduce the Theory of Constraints in an engaging way through a fictional novel (much easier to read than a textbook). The intent of the novel is to prove that management is a science, not an art. A systematic, logical approach to identifying root causes (a.k.a bottlenecks) that impact the system's throughput (a.k.a. the goal) is introduced and explained in multiple scenarios. He shows that it is used in a variety of ways, including the production line, accounting, and sales and marketing. Profound results are proven step by step, but many make the mistake of thinking this is a book of recipes, when it is more a book of proofs.

Goldratt received much criticism for “The Goal”, most of which argued that the TOC was not generally applicable. Many people saw the first book as a set of recipes or plans, and discarded his theory because they could not take the situations from “The Goal” and overlay them or apply the solutions directly to their problem domain. That was never Goldratt’s intent. I believe that is when he wrote “It’s Not Luck” as a response.

In “It’s Not Luck”, he exercises the TOC in many more disciplines as well as introduces more tools to apply TOC. “It’s Not Luck” is a great companion because you get a bit more practice, though anyone anxious to apply the TOC and using the related tools will likely want to buy some of the textbooks to get quick guidance about using the tools i.e. building Current Reality Trees.

Some interesting memorable phrases/concepts/tools/what have you:
- Correlation is not Causation
- Common Practice does not mean Common Sense
- Cost accounting has profoundly negative consequences on any system (through induced behaviors, measures, rules and policies)
- Introduction of Throughput Accounting (perhaps the easiest way to explain/exercise TOC in an organization without TOC experts)
- Disproving supply and demand as we know it (“It’s Not Luck”)
- Current Reality Tree (tool to identify root cause)
- Lose-Lose situation is impossible (evaporating clouds).

“every situation, no matter how complex it initially looks, is exceedingly simple”

I have found this to be true every time I have examined a problem domain. I have never found more than one root cause in any current reality tree. Those who don’t take the time to understand the Theory of Constraints or the tools surrounding would never believe such a statement. Goldratt never asks for you to accept any concept or theory at face value, he proves it.

Goldratt has given us the process and tools to achieve profound results. For that, we are grateful.

(I'm sorry for the formatting)
Agreed. I am also not a fan of using "startup" as a strict noun. I think of it more of an adjective. That is, companies can be in their "startup" phase. Too many people consider startup as a business category in and of itself.

Moreover, even useful websites do not constitute a business, startup or otherwise. I'm sure there are plenty of nascent businesses that techcrunch would never cover just because they are not web-centered [citation needed].
Planet in a Bottle
Hi all, thanks for attention! My passion is finding the "aha!" moments when learning. In git:

- Git has a staging area before you commit
- Branching is "save as..." on a directory
- Imagine virtual directories inside your physical one
- Show the current physical & virtual directory in your prompt
- Visualize your branching strategy

That's what I'd explain if I had 30 seconds to tutor git in an elevator -- the rest can be looked up =).

Shameless plug: I'm making a general platform to share these "aha" moments, described here:

http://betterexplained.com/articles/share-your-insights-aha-...

The goal is to find and filter the best insights that really helped when learning.
I'm surprised Twitter hasn't tried to monetize this ala domain names. For handles that I want to keep, I (and no doubt many others) would fork over the cash to permanently secure it.
From what I've seen in Romania it's actually even simpler than that: money and attitude.

We have English proficiency, our internet infrastructure might be the best in Europe for home users and we presumably have good CS education.

The reason CS students (or professionals) don't think about contributing to open-source is because it's expensive to do it yourself and the employer doesn't ask them to afterwards. Also because they don't think they are able to or because they don't care.

Some students do have some 'phase' when they discover open-source, but it rarely lasts enough for them to contribute something meaningful. By the time they are hired, contributions are almost non-existent.

I am glad though to see that some companies here do open-source but it's quite rare.

So a combination of can-do attitude and money is needed to dare contribute to open-source. If you are from a rich, developed country these are actually a given. But in a poorer country, not so much.
New social network with privacy, use "mcsugamj" to JOIN
Thanks a lot for the info. I planned for a meeting tomorrow. The lack of communication among the top guys is affecting me because each one has their own set of tasks and usually they are tangential to the others. I wanted to make sure that all of them understand each other. Thanks for the reply.
Great idea. I'm sure many would love to hear a recording of a viola.
Me too. And I am not going to change it.
What is your problem with the Economist?
There's a loose correlation between freedom and economic/cultural attainment. It works on large scales and explains the difference between, say, the United States and North Korea.

On smaller scales though, such as comparing different states within the US, other things tend to dominate -- in particular the presence of big cities, which are positively correlated with economic and cultural attainment and negatively correlated with freedom.

Honestly, if this graph were the best case we have for the proposition that freedom is nice then it'd be a pretty weak case.
The easier and healthier option is to just avoid commenting on intellectual property issues on Hacker News in the future.
i turned down my friends' startup offer to go work in finance. 3 years later, they are multi-millionaires and i am not. that doesn't really bother me though. what bothers me is that they are happy and doing exciting work and i am not.
Well, if you had had a couple years' worth of graduate-level math and physics courses, you would be an intellectual demigod. The introductory sequences in analysis / algebra / geometry / mechanics / electrodynamics / relativity are a distillation of what the best minds in history spent the past 500 years figuring out. When I have no other motivation to study these topics, I just remember that Newton, Euler, Gauss, et al. would have /killed/ to get a look at my textbook :-)

(Hopefully you'd remember the proofs!)
If X is an OpenPGP implementation, I support this. We need more implementations of this standard.
I feel punked. The picture explaining their classification of startups has a blue underlined sentence. Clicking it just opened the picture, instead of bringing me to a list of top 100 sites as declared by google.
> I find it one of the most promising things about Scala -- it is not determined to become an instant boat anchor by committing to early decisions that are later revealed to be suboptimal, or outright mistakes.

The fact that Scala uses the JVM, with a hacky workaround for type erasure, is suboptimal.
A large factor might be that in a lot of less developed countries longer work hours are the norm, so they have less leisure time for things like contributing to free software?
Most enterprises and governments don't work with startups.
Where to Salvage Electronic Parts
The most common scenario for me is that while implementing one feature, I find a documentation error or a simple way to improve a component that is used by the new code. For example, I might be testing the new feature and have a bug in my new code produce a confusing error that could have been caught earlier by the existing component if its input validation was better. Usually I fix these issues on the spot because (a) they help me test the new feature and (b) otherwise I would be likely to forget where they are. I want to commit these changes independently. I almost always do this using egg (https://github.com/byplayer/egg) which has a very slick staging and commit interface within Emacs.
Read "It's Not Luck", followed by "The Critical Chain", then pick up any Agile Methodology book.

You might be amazed at the new insights you may have.
Fascinating.

So far I'm only up to Leaves of Grass, but I'm struck by the prose style of the earlier reviewers. Even the most pompous and pedantic of today's book reviewers would never write like this:

But multitudinousness cannot make the spectacle of his morbidness any more acceptable. It cannot palliate the gross impropriety of which he is guilty, in publishing what is unfit for repetition; an impropriety doubled by the retention of this disgusting stuff in a new edition issued after many years, during which the author has had ample opportunity to free himself from his youthful crudities.

though whether this is an indication of the dumbing down of the audience or merely some restraint on the part of overeducated book reviewers is unclear.
Most of their job postings still mention Ruby, so I suspect a big portion is Ruby/Rails based.
Global Internet usage by 2015 [infographic]
How Canonical automates Linux package compilation
I would say all successful engineers and aspiring entrepreneurs need to know the basis upon which we program today. Where we came from with assembly, why so many people wrote blocking code vs using event-driven programming, even though we've known that to be the most efficient way to handle IO for nearly 30 years, and the general human nature of technology and economics revolving around that. Working at a startup that is transparent about it's business relations is the most engaging and thrilling way to pick that up, of course. Knowing the broadest amount of relevant technology, and how to apply it to help people solve problems, is the most fulfilling (and coincidentally the fastest way to accumulate large amounts of money).

If you're familiar with some of the heavy hitting problems in computer science right now, such as vertically scalable architecture, garbage collection, how difficult it is to debug multithreaded applications, you might want to check out Node.JS, as it is my #1 bet for large adoption of engineers in the near future. It's the first project of it's kind, in the age of GitHub, that can really be called a trending software platform. It allows you to do very rapid iteration of development, without having the hassle of how to handle large amounts of IO and other problems that will make you bang your head against your desk with if you were using other systems.

Above all though, the most interesting projects for you to work are probably what you would learn the most from.
wow!!! makes my weekend of doing stuff around the house look weak.
Great. Thanks for the reply; I've been to a few of these, but will check out the others.
Have you heard of this Word11 Blogging event? (http://word11.com/)
I'm thinking it might be a good place to meet some people; ever heard of it or have any idea what it's like?
Turning the numbers into people
> Another option would be for me to learn about data structures and algorithms

I wouldn't call this an option, but it also doesn't mean you have to spend the next year doing nothing but this. I would recommend spending a few days getting the basics under your belt and figuring out the more advanced stuff when you encounter it (and trust me - you will, they're everywhere).

You already understand how apps work and how you build them so if you're unsure what project to tackle next I'd highly recommend picking up Django (because you already know python) and building some web app that just seems interesting to you. It'll give you some server-side experience, expose you to databases and the HTTP protocol (which everyone on the web should know - it's not that complicated but having worked with it really gives you a different picture of the web).

It'll also give you a working knowledge of browsers, AJAX, HTML5, etc which are always useful skills to have. You might even find yourself going back to apps this way by using Phonegap which allows you to write cross-device apps using web technologies (though the process isn't as easy as the website makes it appear).

Basically just work on expanding your knowledge until you find a project that fits and then dive deep into that.

Also, it's all hard work and everybody faces those problems, don't let it get you down.
Whoa there. Hold on just a minute and take a step back.

You're 15 years old, you made $21k making apps on webOS. You have four or five languages under your belt. By anybody's metrics, you're doing really really well. Awesomely, in fact. Even though "awesomely" really isn't a word.

Don't worry about it. Just keep exploring, and you'll run in to fun stuff that will continue to expand your horizons.

One thought that hasn't come up here yet is to get involved with the most intriguing open-source project of your choice. Get some experience programming on a team, and you'll not only have a chance to learn from others, but you'll also be able to expand your own portfolio without having to worry about validating ideas.

But the best thing you can give yourself is an open mind and a shot of confidence. Also: get in touch with the Teens in Tech guys. They're awesome.
While I do not know whether or not Watson actually does this, the paper doesn't mention anything about parallelism -- I suspect that the exploitation of structured parallelism is another handy benefit to using Prolog on as many machines as Watson was using.

(For example: http://lambda-the-ultimate.org/node/1867.)
Atkinson dithering (HyperDither) with Canvas+WebWorkers+FileReader API
Depends on what is suboptimal to you. If "suboptimal" is "not optimal for the perfect programming language", then sure. If "suboptimal" is "not optimal for real world use", then no.

Scala's interop with Java libraries has been a huge, huge boon, and undoubtedly drove take-up where there otherwise would have been none. Scala has come this far in a decade. Python is 20 years old. Ruby is 16. Scala came a long way in a short time, and was probably resigned to the dustbin of "that would have been cool" languages without that interop.
none of them works... a friend of mine said! @:)
http://news.ycombinator.com/item?id=96676

http://news.ycombinator.com/item?id=1900937
This article states that well known functional programming languages includes the ML family.

What about the Lisp family (Scheme, Clojure, Qi)? They represent the dynamic side of functional programming.
http://support.twitter.com/articles/18311-the-twitter-rules

"Trademark: We reserve the right to reclaim user names on behalf of businesses or individuals that hold legal claim or trademark on those user names. Accounts using business names and/or logos to mislead others will be permanently suspended."

How they handled it might have sucked, but it was fairly clear what they would end up doing in situations like this.
Hey there, the original idea is that each of us in the study group would have a github repo with their own solutions so we all can share and learn from each other. But I'm happy to go along with whatever works better for everybody.
If anyone wants to be added as an organiser/admin in the p2pu site or google group I'll be happy to add you guys!
cheers,
Jos
Typhoon dodong
A site that contains information about typhoon creation, latest weather condition, and safety precautions.
Not yet. The original user should kindly ask for the account back.

EDIT: User, not owner.
Very interesting. Makes me think if there is any knowledge or technology that we lost in the process? Is there something we knew but don't know anymore?
First off, if you know C and C++, then you should realize that C is not C++ and really, the two should be considered completely different langauges (C99 has enough semantic differences from C++ that you no longer can compile C99 code under a C++ compiler). With that said:

1. Learn C. Pick up the K&R book and work through it. C is the backbone for most everything these days (Unix, Perl, Python, Ruby, etc, all written in C). It will give you a feel for how the computer works at the lowest level (unless you really want to learn Assembly, which I would recommend eventually). Skip C++ for now. It's very difficult to learn the entirety of the langauge and everybody uses different subsets of C++ (and C++ is a language you can pick up when you need it).

Also, learning C will give you a solid grounding in imperative (procedural) languages.

I would also recommend learning a functional language, either Haskel or Erlang (Haskel is a more "pure" functional language, but Erlang has probably more commercial use, even if it's a bit less "pure"). You don't have to learn this like C, but enough to be comfortable with thinking "functional". It'll help you programming even in non-functional languages.

I would also recommend learning an object oriented language (but not C++)---either Java (more practical these days, if a bit verbose) or Smalltalk (not the original object oriented language (that distinction goes to Simula) but probably the first pure object oriented language).

Don't worry now about making money, nor about reinventing the wheel. At this stage, you should be reinventing the wheel, if only to gain a deeper understanding of the trade-offs in programming. This skill will also help you evaluate which libraries are useful under certain circumstances.

As for keeping your interest, have you thought of making a game? Even a simple game like Space Invaders (even a text-only version is useful) or Tetris is simple enough to finish in a few days, yet significantly non-trivial enough to see how differences in implementation affect the resulting program.

But if you want a real mind-blowing experience, try implementing the language Forth. There are useful implementations of Forth in a little of 2k worth of code (okay, written in Assembly) so it's not a difficult language to implement, but it's amazing just how powerful Forth is (think of it as the poor man's Lisp).
Perhaps by "feels like a dynamic language" he means "is succinct".
http://golang.org/doc/go_spec.html#The_zero_value

Yes if you're using pointer-like things, but at least in Go it's an unsurprising thing, all uninitialized data is zeroed. And Go permits you to work with by-value structs and arrays if you want.
Sounds like you're doing great - you're miles ahead of where I was at 15, that's for sure. I think you need a mentor. Look to open source, local universities, etc. I've heard good things about the google summer of code.
Ask HN: Any CS/MBA combined degree programs out there?
Have any of you ever heard of such a thing? A masters in computer science paired with an MBA? If so, any experience with them?
The Scala team have plans afoot to target LLVM and .NET too.
Canonical creates a custom 40-processor ARM build machine
The authors touch on the hardware benefits you get from doing away with pointers, but I think you could go much, much further. Yes, you know which things are heap-allocated and which are stack-allocated, so you have some language-level disambiguation that way, but within a functional operation like map, reduce, fold, etc., you have perfect knowledge about which data is touched in what way, so you could potentially do something like use a compiler-managed scratchpad for it instead of a cache. The compiler would have perfect timing, bank conflict, etc. information, so it should be able to an awesome job of scheduling and use much less energy than a hardware-managed cache. Will be interesting to see how much of this kind of thing is done as we come up with ways to compile high-level languages directly down to performance- or efficiency-oriented hardware (not through C). Most modern architectures are designed to do a good job when the compiler has very little idea what the code is doing; you can save a lot of area and power if you know more.
Direct links to the primary source:

http://thetanktheory.squarespace.com/this-8-bit-life/2011/6/...

and the build blog: http://dmtechtalk.wordpress.com/
From Languages to Information (Dan Jurafsky)
Put it all on Jack?
The glory of being in your position is that you really can't make a mistake here. I'll dispense some random suggestions.

-- it takes a ridiculous amount of time to do something that seems so easy.

Yes, this is a sign that you are doing it right. ;) Programming always takes a ridiculous amount of time. The only saving grace is that, once the program is done, a ridiculous number of people will be able to use it a ridiculous number of times. So, if you find that you're not motivated to finish stuff, you need customers. Customers are very motivational, and not just because they give you money. Happy customers are very morale-boosting.

-- The reason why you can know HTML, CSS, JS, and Python and still do not feel that you know web programming is that none of those things is a database. The database is the important part of web programming. Everything else is frosting. Try SQL for Web Nerds:

http://philip.greenspun.com/sql/

It's getting more dated by the second, half the links are broken, and you will not want to actually use Oracle (try Postgres instead, or do what everyone else does and use MySQL with InnoDB) but I know of nothing more readable and certainly nothing cheaper; most published books on SQL are drier than dirt, and I fear that the online tutorials may be all syntax and no substance. Then maybe look at a framework or two. Other folks have recommended Django, or you could look at Rails. Nothing glues all the parts together like a framework.

-- There is nothing wrong with teaching yourself basic CS before you get to Stanford. You will not run out of potentially interesting things to study at Stanford -- either you can study more advanced CS, or you can (hint! hint!) study something that is not CS, like science or other branches of math. If you like reading SICP and CLRS for fun, by all means read SICP and CLRS for fun. Don't neglect other potentially fun things, though.

-- If you find that you know language syntax and simple statements but don't know how a whole app goes together, find someone else's app and tinker with that. Read other people's apps, take them apart, fix bugs in them, find bugs in them.

-- Find someone else to work with. Get some small but honest jobs on an online consulting site and fix other people's code. Join an open-source project and hack on stuff with a community. The Drupal project is always looking for people... (/shameless plug)
Am i the only one that went online shopping for the items mentioned after reading the article? :)
Probably a better distinction is that features are a short-term competitive advantage, which should not be mistaken for structural, long-term advantages that aren't easily copied. Investor's are much more interested in the latter.