Gall's Law - <AUTHOR> https://en.wikipedia.org/wiki/John_Gall_(author)#Gall.27s_law <comment><USER2> > A complex system that works is invariably found to have evolved from a > simple system that worked. A complex system designed from scratch never > works and cannot be patched up to make it work. You have to start over with > a working simple system. – John Gall

While this sounds more like a strong tendency than a law it sure rings true for my programming career. I've built complex systems from scratch, but they all started from the universe of discourse of an existing business model. When writing such systems I've learned to always start from a dead simple version of it. (I called one such system "Moe" to purposely keep it stupid simple) And then increment it.

If the creationists are correct, and God did indeed cook up Adam from scratch, that would be more evidence of the exceptional power of God. What we do know about actual evolution seems to support Gall's Law.

<comment><USER3> >What we do know about actual evolution seems to support Gall's Law.

But human design is not evolution. That Gall's law, which is a form of incrementalism, rings true for a system without a designer appears to be almost true by definition, but it is far from obvious for human design.

We have many examples of human architecture that went from "0 to 1". The von Neumann architecture. The first spaceships, new breakthrough theories in mathematics or physics. While you can debate whether those systems were built literally from scratch or not, they sure made qualitative jumps not comparable to evolution.

And also I would point out that there is a strong survivorship bias in Gall's law. All sustainable complex systems built up incrementally that are still around are by definition an example of success. But we don't actively see the resource cost of incrementalist dead-ends, or the limitations. ("You don't get to the moon by climbing up trees"), whereas every failure in ambitious design is actively debated, or even derided.

<comment><USER4> > The von Neumann architecture

How do you get that? There was decades of prior experience both in computer science theory as well as practice, especially from the code breakers in WW2.

<comment> daniel-cussen Decade of experience at best.

An example from 1945 and also from von Neumann is Mergesort, the first O(n logn) sorting algorithm, and still in use to this day. Von Neumann was known for inventing things from absolute scratch.

</comment></comment></comment></comment><comment><USER5> Gall's Law maps to building "The simplest thing that could possibly work."

However, one can work at an even smaller granularity. "The simplest thing that could possibly work," can be made out of stupid things that won't work. To build the networking for an MMO, I cookbooked a websockets chat demo, then used it to pass updates from the server to the client. No login mechanism. No security. No dead reckoning. No fancy synchronization. All those things can be added later, however. It will be easier to add them to a running system. (Provided one also refactors to clean up code.)

If you're stuck at how to proceed, feel free to stub out features in a way which can't possibly work in production, but which will let you compile, run, and test your system. It's always easier for me to modify a running system than it is to big-bang an entire system from scratch.

<comment><USER6> Gall says nothing about the _simplest_ thing, only that complex systems grow out of simple small ones. I mention this not to be a stickler, but to highlight the interesting possibility that "the simplest thing that could possibly work" might _not_ actually (or always) be something that a complex later system can evolve out of. We don't know that. I'm reminded of a comment by Alan Kay about how you don't want the lowest stratum of a system to be too simple.

<comment><USER7> >Gall says nothing about the simplest thing, only that _SUCCESSFUL_, complex systems grow out of simple small ones

Fixed. Missing a key word. The whole point of the law is that complex systems can be built from scratch but will fail. The successful ones grew organically.

<comment><USER5> Weapon system designers sometimes observe that an older system on its nth iteration can be better in the field than the revolutionary new ground-up design. (Until the latter gets to its nth iteration.)

</comment></comment></comment></comment><comment><USER8> Related: Second System Effect

[https://en.wikipedia.org/wiki/Second- system_effect](https://en.wikipedia.org/wiki/Second-system_effect)

As an aside, I'd love the Twitter engineering teams that fixed the fail whale to one day write about this as it related to fixing Twitter's stability and performance. It seems they simultaneously made major platform shifts and managed to fix things. Maybe it was done in small pieces, piece by piece and perhaps a SOA/Microservices architecture may have enabled that to feel like a rewrite without being one all at once. I'd love to hear the story. My understanding is that in addition to platform shifts, the actual engineering teams cycled out almost completely at least once, too. Really hard changes to manage through.

<comment><USER9> I remember seeing the fail whale constantly until around 2010 and honestly, as an almost daily user of twitter, i don't think I've seen it since and the site is one of the most stable I visit (via mobile.twitter.com).

Reddit could definitely use a lesson from them

</comment></comment><comment><USER10> I can understand the idea of starting from a simple spot, and iterating/evolving a system to more complexity.

But where does - or can - security fit into this?

That is, I've consistently found over my years developing, is that when making a "secure system" \- ie, implementing some kind of permissions-based system on top of a login/password or other authorization scheme, for access controls and such...

...doing so after the fact (ie - bandaid-ing) - when the system has already become complex enough to "suddenly" need it - usually ends up being a very poor implementation with tons of holes. It also tends to be very grueling to implement, and lots of refactoring tends to be needed to accommodate the changes.

A similar kind of issue can also be found in the hardware world, specifically automated/robotic systems where you need to implement and think about certain safety measures, cutoffs, big-red-button-full-stop measures. Doing so after the fact can lead to missed edge cases or other issues that can make the system less robust and/or less safe - but only in retrospect after something fails to work from a safety perspective (and it is compounded by the fact that such a system will have both physical hardware and electronics coupled with software).

From that standpoint and personal experiences, I've always tried to stress for new projects that such parts of the system, if needed or thought to be possibly necessary in the future (which is pretty much almost guaranteed for all but the most simple examples) - that it should be designed and implemented "up front" \- as the first part of the project. Get it in place and get it solidly built, to the best of your knowledge, then move on to the rest of the project built around that security/safety system(s).

However, such systems can tend to be or become extremely complex in their own right.

Am I wrong in this assessment? Should I not be advocating for such things for new designs? How do you balance this "law" with such needs? Stub all the things?

<comment><USER11> Gall's Law applies to the security part of a project too. A complex security subsystem needs to evolve from a simpler security subsystem. Waiting until the project as a whole is super complex and needs a complex security subsystem built from scratch is asking for failure.

</comment></comment><comment><USER12> This may have been one of the strongest reasons for Google Wave's failure[0], which was alluded to many times on HN. It was too complex from the start (1M LoC), did not evolve very fast at all, started with a huge number of engineers, and was prematurely optimized (but still plagued with performance issues). As cool as Wave was from the start, Gall's Law certainly applies to it.

[0]: [https://news.ycombinator.com/item?id=3101201](https://news.ycombinator.com/item?id=3101201)

<comment><USER13> That's a good observation. This also makes me wonder if one key reason why Ted Nelson's Project Xanadu didn't take off was because it was too complex from the start?

<comment><USER14> It was definitely the case with the Semantic Web: a much greater up-front investment with only hypothesized pay-offs down the road. Making simple things hard is rarely going to be a popular choice.

<comment><USER15> IPv6 to a tee.

<comment><USER10> Could systemd be described by Gall's Law as well?

<comment><USER14> I would argue yes, that it's a good success story: it took a welter of init scripts, supervisors, logging, event-triggered notification systems, configuration conventions, etc. and provided a single standard mechanism which is easier to work with than any one of those was on its own much less the number of combinations most systems have.

</comment></comment></comment></comment></comment></comment><comment><USER16> Oddly enough, he was my pediatrician. I would never have guessed about his involvement in systems--though he did help spark my early interest in astronomy. He was a generous man.

<comment><USER17> I am a long-time fan, and have owned all three editions of his book (which started out titled "Systemantics"). Back in the day you ordered it from his pediatrics office and he sent it in the mail.

</comment></comment><comment><USER18> Just to be clear simplicity is the progression towards singularity and complexity is the progression away from singularity. _Complex_ quite literally means to _put together_. The terms complex and simple are completely unrelated to _easy_ or _challenging_.

That said, a task accomplished by a single nasty 5000 line function is three times more simple than using 3 small 10 line functions. Inheritance means to extend and is thus inherently complex.

The simplicity of a system is the result of the competing requirements the system addresses. A system that does one thing only is simple. A system that does a few things is complex. A system that does many things is more complex.

This can be measured objectively. There is a Github plugin called _Code Climate_ that rewards a grade to code based upon things it considers cognitively challenging. Large functions and large files are punished by that grading metric. I prefer to organize my code with lexical scope because the structure of code directly reflects the availability of capabilities. That is more simple but it also tends to result in really large functions that are trees of child functions. In this sense the Code Climate grading metric punishes that form of simplicity and instead suggests breaking things apart into many pieces to be put together. That is a punishment of simplicity in a very direct way even though the result is clean code that is faster to read.

<comment><USER19> I think it is doing a disservice to push this as an objective measure. Not to mention, you reduce it to number of things. Some things are more complicated than others, after all. Regardless of numbers.

Still, I think, from your last, that we agree. Many intended objective measures actually don't lead to what they are pushing for. I see this in designs from peers all the time. They index on terms they understand, and miss the holistic system for it. It is very frustrating.

<comment><USER18> Complexity is objective, so a numeric measure isn't good or bad. It's the rules upon that number that are subjective.

I am curious about why developers find this frustrating. It is very commonly frustrating. Developers almost always claim to want simplicity until the terms are defined, which makes me wonder what they are actually wanting.

<comment><USER19> I contest that it is truly objective. Some complexity measures are objective. Most merely appear so.

Consider, who wins a sports game is objective and quite simple to define. It is whoever has the winning score. Now, the facets that go into all of the plays and other aspects of the game? Those leave the realm of simplicity quite quickly.

</comment></comment></comment></comment><comment><USER20> Any HN reader who has not read Gall's book _Systemantics_ (whose latest printing is under the title _The Systems Bible_ : [https://www.amazon.com/Systems-Bible-Beginners-Guide- Large/d...](https://www.amazon.com/Systems-Bible-Beginners-Guide- Large/dp/0961825170)) really ought to rectify that. It's not perfect, but it will give you lots of things to think about, and Gall's witty writing style makes it a fun, easy read.

(I pulled my copy out just a few weeks ago so I could quote a different Gallism that was relevant to an HN discussion: [https://news.ycombinator.com/item?id=18859680](https://news.ycombinator.com/item?id=18859680))

</comment><comment><USER21> I am heavily reminded of OpenStack, which was designed by committee to help large companies' IT departments compete against AWS (and flopped), and AWS, which grew out of a flat file storage service (and very much succeeded).

It still amazes me how warty and ugly production code can be sometimes -- yet it works and puts food on the table. Meanwhile "beautiful" systems like Plan 9 languish on an old wiki somewhere.

</comment><comment><USER22> This is good and rings true. I've taken it a step further with my definition of "Good Enough Programming" \-- Implementing technology has two primary goals: it delivers value and you can walk away from it. To fail at either of these two goals isn't good enough. [1]

The reason simple systems sometimes involve into successful complex systems is because development is completely decoupled from business needs. You code it, you watch to see how useful it is. Complex systems, on the other hand, are tightly-coupled. You code it, it needs changing, you spend a lot of time fretting over impedance mismatch, upgrades, patches, and so forth, instead looking and evaluating true value. In fact the more complex a system is, the less you're able to evaluate both its current and potential value.

1\. [http://tiny-giant- books.com/Entry1.html?EntryId=recj67HoP8cK...](http://tiny-giant- books.com/Entry1.html?EntryId=recj67HoP8cKW5Eso)

</comment><comment><USER23> _Meta_ : wondering if it exists a _law_ about all the various repertoried _laws_.

(Nothing negationist on my part but lately I've observed that I'm internally more critical and usually take all these laws with a grain of salt, I'm feeling less and less wanting to _generalize_ everything, of course maybe I'm wrong but, it seems I've caught a kind of _law-fatigue_ , I hope it's nothing serious :) ).

<comment><USER24> One candidate would be: "90% of everything of everything is crap" [https://en.m.wikipedia.org/wiki/Sturgeon%27s_law](https://en.m.wikipedia.org/wiki/Sturgeon%27s_law), extending to reported laws.

<comment><USER13> Very interesting, this made me think of Pareto Principle and then as I read down, Wikipedia cites this. Also, I found it neat that Daniel Dennett uses this as a tool for critical thinking.

</comment></comment></comment><comment><USER25> >> A complex system that works is invariably found to have evolved from a simple system that worked...

Unless the system had an intelligent designer behind it from the beginning. ;p

There is a general truth to the statement but I'm not sure that it's consistent enough to be a law.

Sometimes things can get overly complex and disfunctional in spite of having evolved to that point. Just look at the state of front end development today; TypeScript, WebAssembly, app bundling, Source Mapping, GraphQL, Protocol Buffers, gRPC... Most of these projects try to make things simpler by adding complexity; that's not possible. It's just madness and all that complexity does rear its ugly head from time to time in pretty much every project but developers just blame themselves instead of realizing that the root problem is the tooling.

</comment><comment><USER26> I've collected a curated, abridged list of empirical laws:

[https://mechaelephant.com/dev/Empirical- Laws/](https://mechaelephant.com/dev/Empirical-Laws/)

<comment><USER27> I'd suggest Hanlon's razor:

Don't assume malice when stupidity is a sufficient explanation.

<comment><USER28> Too often I am bitten by that one. Some people are just nasty creatures. I think I assume good faith too much.

</comment></comment></comment><comment><USER29> Isn't Gall's Law a tautology? Simplicity and Complexity is a catch up game. Thesis, antithesis and synthesis: Hegel's trascendence concept. First, let state the following Axiom or mechanism for explanation: To explain something you have to reduce it to simpler terms. This mechanism stems from how we use our language: something is complex when one is able to compared it with a simpler system that is functionally related. So the use of the word complexity requires a hierarchy, a ladder that connects simplicity with complexity.

An artificial mind could conceive and use a different concept of complexity for constructing an artificial language. For instance, multiplying two 64 bits integers is a simple instruction for a computer. In the analogy of the mind as a neural network we know that some problems cannot be solved with perceptrons. Who devises the divide line between a simple and a complex system? Our minds compose the graph of concepts and relations looking for a decomposition from simple to complex. But the definition of something simple is completely relate to the context in which one poses the problem. Building a computer, as the one I am typing on, was a infinite complex endevour a century ago, today that endevour is a solved problem.

Finally, in maths simplicity is rescaled: Once you solve a problem and find a method to solve related problems, then the initial problem becomes trivial and the pursue of complexity is restarted. The ontology graph in our minds is always evolving with new methods, concepts and intuitions, and the simplicity complexity scale measured by the distance in that graph is dynamically adjusted.

So I believe Gall's Law is a consequence of how we use the word complexity.

Edited: Grammar, spelling, and excuse me for my poor use of English.

</comment><comment><USER30> i design lots of infrastructure for mining companies (physical mineral resources mining) and this holds incredibly true.

It's one of the biggest things I push back on when our clients have scoping meetings that just turn into endless strings of wants/needs.

</comment><comment><USER31> There is only one system that doesn't abide by this law. That is the cosmos including the quantum cosmos. All at once all the complexity in the universe came into being. Basically its safe to say that "everything" disobeys this law.

<comment><USER32> Physics is still an unsolved problem. The Standard Model is complex (in that it has a lot of free parameters), but it's not the final answer, and hopefully whatever is underneath it is simpler.

I suppose you're talking about cosmology and not physics, but the story there definitely gets simpler the further back you look in time. The entire universe was an almost-uniform plasma for 300 thousand years or so, and once it cooled down it was almost entirely hydrogen atoms for another 100 million years. The only observable features would have been tiny changes in density from place to place, and that's where all of the complex stuff we see today (stars, galaxies, etc) came from.

</comment></comment><comment><USER33> > First the simple then the composite, such is the methodology of the human > mind

Voltaire

</comment><comment><USER34> Anyone know of any interesting counter-points or examples of exceptions?

</comment><comment><USER35> This is how I learn new tech. If I'm using docker for the first time you can bet I'm doing an echo "hello world" first then incrementally building up from there.

</comment><comment><USER36> Is hard, sometimes simple is relative to each person and can be misinterpreted

</comment><comment><USER37> I disagree. Build a system too simple, and you'll end up with technical debt and can't scale, build it too complex, and it probably won't ever take off.

The first does give you a product that runs the risk of becoming obsolete once it's deployed, the second never reaches that stage. Survivorship bias is what makes Gall's Law even a thing.

I believe there's a sweet spot of simplicity/complexity for a successful system. But on the downside, finding this can lead to whatever scientific name this [1] phenomena has...

[1] [https://xkcd.com/1908/](https://xkcd.com/1908/)

</comment><comment><USER38> "Monolith first" is a specialization of this.

</comment><comment><USER39> Makes sense, that is how evolution works

<comment><USER37> But evolution is a result, there is no inherent design to it. I doubt you could apply Gall's Law to evolution, maybe just the first sentence?

<comment><USER40> I would argue that there is a design to evolution. At least in the case of sexual reproduction. True, its not one big, upfront design but rather an iterative design built up from the collective decisions of the partners.

</comment></comment></comment><comment><USER41> Something some prominent Linux programmers -- not naming names but one of them rhymes with Cuisinart Buttering -- would do well to keep in mind.

<comment><USER14> You mean the people who looked at many existing systems and built a replacement which solved many long-running nuisances while also being much easier to use?

I think about these reflexive hate affirmations every time I replace many hundreds of lines of buggy, hard to extend or troubleshoot SysV init script with 10 lines of systemd unit which provides significant operational and reliability improvements. There's a good reason why most distributions switched, and why most experienced admins appreciate not having to deal with certain hassles ever again.

</comment></comment><comment><USER42> counterexamples: git, paxos, TeX

<comment><USER43> I don't think git counts as a counterexample. The initial commit had 1244 lines, including documentation. It now has over 200,000 lines of C. The initial commit didn't include branches, remotes, submodules, or many other git features I use daily. It just had trees, blobs, and changesets. A simple core of what git eventually became.

<comment><USER42> If distributed version control is not "complex" then what is? Git has mostly added features on top of a core model that was designed from scratch in one go.

<comment><USER44> Nothing in the git core cares about "distributed". It is distributed purely in the sense that it is copied many times.

A distributed system then that is not cognizant of it's distributedness does not incur the complexity of that.

<comment><USER42> Lucky break then that git core uses merkle trees and content hashing which require no coordination and make it easy to reject corrupt data

</comment></comment></comment></comment></comment><comment><USER45> Did someone post this in hopes of starting a dynamic >> static language flame war?

</comment><comment><USER46> Anyone find some counter arguments ?

</comment><comment><USER47> The trick is to use abstraction, so complicated systems become simple systems.

<comment><AUTHOR> "Hello leaky abstraction, my old friend,

I've come to talk with you again

Because a vision softly creeping

Left its seeds while I was sleeping…"</comment></comment>


Decide On A Startup Idea That Will Make You Happy - <AUTHOR> http://ruidelgado.com/2013/11/18/startup-idea-you-love/

<comment><AUTHOR> If you love your startup idea, you will be more likely to succeed. Make sure you decide on an idea that will make you happy, because you'll need that when it gets tough.</comment>


Andrew Yang's math on the robot takeover doesn't check out - <AUTHOR> https://www.bloomberg.com/opinion/articles/2019-11-20/robots-replacing-human-workers-isn-t-supported-by-data <comment><USER2> This article does seem a bit intellectually dishonest. Its sleight of hand to point out countries that have more robots than we do, do so with "no ill effects". There are secondary and tertiary reasons why more automation in SK or DE does less damage to the blue collar Korean or German than the American for reasons like corporate culture, social welfare, etc.

Our issues have everything to do with boardroom and executive policy and profit maximalism.

What bodes well for South Korea and Germany are their social and corporate welfare systems which are a completely different cultural makeup than ours.

Also, manufacturing as a whole _HAS_ improved throughput over the decades, just with less humans:

[https://qz.com/1269172/the-epic-mistake-about- manufacturing-...](https://qz.com/1269172/the-epic-mistake-about- manufacturing-thats-cost-americans-millions-of-jobs/)

[https://www.vox.com/new- money/2016/10/10/12933426/27-charts-...](https://www.vox.com/new- money/2016/10/10/12933426/27-charts-changing-economy)

The Federal Reserve Bank of St. Louis' chart seems at odds with the chart from the Bureau of Labor and Statistics.

I'd like to see more journalism with less cherry picking and more delivery of a whole picture.

<comment><USER3> Agreed. In fact, Yang's platform isn't so much stop-the-robots, but rather to make our culture (social and corporate welfare systems) align closer to a world that is friendly toward robots.

<comment><USER4> > Yang's platform isn't so much stop-the-robots

no one is claiming that this is his platform though.

<comment><USER5> Isn't that the implication of the headline? I.e. "No robots nothing to fear."

<comment><USER4> its disputing his claims about effects on society not that yang trying to stop robots.

<comment><USER5> As you know, you are right. But that isn't the superficial reading of "robots are replacing jobs". The article makes the point that some people like Bill DeBlasio will try to outlaw automation and robots.

</comment></comment></comment></comment></comment></comment><comment><USER6> This article is badly reasoned. Here are some bad statistical sleight of hands it engages in:

1\. He claims "Prime age" (25-54) participation is at an all time high. It is, but overall labor force participation is at a 40 year low.

2\. Median income has risen in the past 4 years than at an point since the 90s. This is such a cherry picked stat, I don't even... How about this, real wage growth has barely moved since the 70s (source: [https://www.pewresearch.org/fact-tank/2018/08/07/for-most- us...](https://www.pewresearch.org/fact-tank/2018/08/07/for-most-us-workers- real-wages-have-barely-budged-for-decades/))

3\. Companies that invest in IT experienced hiring growth. Sure, but we're talking about the entire labor supply not individual company success. Success at one company often comes at the expense of failure at another (a competitor who is made irrelevant, etc).

4\. Productivity gains. This is getting insanely hard to measure, as others have pointed out, but it also seems to be a straight lie. Productivity has increased since 2010, so I can't make out what he's saying there. Also, why narrow the timeline to 2010? Brief periods of stagnation often occur within larger trends. Like productivity.

This is just another "head in the sand" think piece, by someone who is part of a group of people that are desperate to convince everyone that this economy is actually working fine. Well the labor market hasn't really recovered since the last recession, so this wish fulfillment is just wrong.

Manufacturing increased productivity and profit over the last decade while employing net fewer people. That is the first time in human history that that has ever happened. We need to take it very seriously.

<comment><USER7> Regarding point 1, isn't that just due to the fact that baby boomers are entering retirement age, and retirees are living longer than ever before?

"Prime age participation" seems like what you would want to measure if you're trying to assess whether the robots are taking our jobs

<comment><USER8> No, that stat doesn't count 65+ people: "Labour force participation rate is defined as the section of working population in the age group of 16-64"

</comment></comment></comment><comment><USER9> This reminds me of one of the business / economics dilemmas of the 90s: computers were "increasing efficiency everywhere but in the statistics" (also phrased as "computers are invisible in the statistics").

The answer was that computers allowed new models that weren't measured by the stats. Just as much labor was done but now you'd have a few people running the numbers on a financial deal when before it was slower and more shoot-from-the- hip.

Consider the robots at Amazon warehouses: they are reducing the labor component, but amazon is growing so much that their hiring is growing as well, though not as rapidly as it would have without the robots...or do the robots mean they can open more sites? Who knows?

Plus the robots are leading to more workplace injuries but nobody is tracking that statistical correlation yet; the reportage is just starting to appear.

The numbers will be visible once it's obvious to everyone that a phase change has occurred.

<comment><USER10> What's being omitted in most cases are (1) the increase in productivity allowed by things like robots at warehouses and (2) the new markets enabled by new technologies.

The first can be estimated in various ways (revenue per worker, costs per worker, packages shipped per worker, etc) but the second is not estimable. The example I like to use is the advent of the automobile. I'm sure there were a lot of horse-and-buggy drivers or train operators that were decrying the disastrous unemployment it would cause, but the automobile industry now employs more people than that industry ever did, not to mention the new industries it has enabled such as long-haul trucking, taxis, private postal couriers, ride-sharing, logistics, etc. On top of that the automobile industry enables new productivity gains in hundreds of not-directly-related industries such as sales, food service, plumbing, medicine, and so forth.

The average American owns more than one vehicle. They're an affordable, quick way to do things like work more than a couple miles from your home, haul goods, or take a vacation. If the horse-and-buggy operators had got their way we'd have deprived ourselves of many of the luxuries we enjoy today.

<comment><USER2> Agreed. Though there is something to be said for skilled and unskilled labor.

Where the advent of the automobile brought about a labor market for machine operators (taxi drivers, combine driver, etc.), what happens when the machines automate themselves.

Or the bar to acquire the technical skills of an operator (ML engineer) is so high and move too fast coupled with institutions reacting far too slow to adopt policy aiding the unemployed in high skill acquisition.

<comment><USER10> The bar to acquire the technical skills of an ML engineer could, to continue the example, be likened to the bar to acquire the skills of an automotive engineer. It's a technically skilled profession. But the industries it empowered to arise (drivers) have much lower bars to entry. The point is that ML will create jobs not just in the _production_ of ML but primarily in the _application_ of ML. We cannot anticipate what that looks like, but it may be as simple as a clerk who speaks to a Star Trek-like computer and says "Computer, extrapolate what this person would look like in ten years and display."

The more we pursue new technologies boldly without fear of the consequences the more power we give to the common man to get things done that would've previously been impossible to him.

</comment></comment></comment></comment><comment><USER11> The article has this near the end:

 _Perhaps AI algorithms are just getting started, and in the coming years they will automate health care, education, retail and other industries the way machine tools once automated the assembly line. If that happens, either humans will have to find new things to do that can't be easily automated -- for example, creative jobs -- or something like Yang's basic income proposal will indeed become necessary._

Isn't it obvious this is happening right now and increasing? The articles uses words like "Perhaps" and "If that happens" as if this is some science fiction. This isn't some possible far future, it's currently in progress right now. Self driving trucks are already being tested on the roads. And so much more is coming in other industries.

<comment><USER12> We are at the top of the hype curve for AI. It's very good at specific tasks, ie speech to text, object recognition, but cannot reason at a high level. Although advances in RL are showing some promise with planning, I don't think we're nearly as close to fully self driving vehicles everywhere in all conditions as anyone thought. I think it's hard to predict when advances will happen that will enable automation in healthcare and education. Most healthcare recommender systems I've seen turn into glorified search upon closer examination.

<comment><USER13> Even without high level reasoning, software can replace a lot of routine jobs, which I think speaks more to the fact that routine jobs are not fit for humans than the humanness of software.

For example in the physical realm, working an assembly line is mind-numbing, and relatively unfulfilling. A robotic arm can take over.

And now in the cognitive realm, sticking to a strict call center script or taking orders at a fast food restaurant is equally uninteresting, and if speech to text + a decision tree can do that, then that's good.

As long as we don't leave people behind, removing in-human jobs is imo a net good.

</comment></comment></comment><comment><USER14> I think it should be obvious that current automation technology will wipe out a very large segment of jobs.

Here's where I think just about everyone is not seeing the full picture. You have all of the major tech companies and many universities and enthusiasts in a global race to create AI that has better abstraction abilities and understands the world better. We don't need to get to something that is exactly like a digital person in order to approach many of the highest level jobs. ML can already automatically create world models. We just need them to be more compositional and accurate. And yet everyone is acting as if this AI race is guaranteed to just sputter out.

The only way this is really about retail workers and truckers is if Bengio, Hinton, LeCun, Deep Mind, Tencent, Baidu, Google, Facebook, Open AI, Amazon, Nnaisence, many other companies, John Carmack, and thousands of independent geniuses all fail. It certainly is possible. But take a look at the papers coming out where they are hammering away at creating better disentangled models and such.

There is no way to predict the future but I think that people are a little too comfortable.

Basic income and the other radical ideas are going to be relevant for everyone. Everyone.

</comment><comment><USER15> Productivity growth gets the most discussion:

> But the most important piece of data against Yang's thesis is slow > productivity growth. If companies are adding robots, AI algorithms or other > automation to their production processes, it should show up as accelerating > productivity. But labor productivity growth has slowed to a crawl since > 2010...

The article presents a graph going back to 1980 in which productivity spikes as high as 4% but hasn't broken that level since 2010.

Two points:

1\. Productivity, as measured by the government, could be a lagging indicator, as Yang notes and the article doesn't address.

2\. Productivity growth (as seen in the chart) spikes _after_ recessions. This could be because underperformers get fired during recessions. There hasn't been a recession since 2009. No recession means no pressure to cull the workforce.

Are there any forward-looking measurements of productivity?

<comment><USER16> It's not just productivity that hasn't grown, it's also investment. Here's a graph plotting net capital formation and net share buybacks back to 1960: [https://americanaffairsjournal.org/wp- content/uploads/2018/1...](https://americanaffairsjournal.org/wp- content/uploads/2018/12/Share-Buybacks-768x451.jpg) (article at [https://americanaffairsjournal.org/2018/12/share-buybacks- an...](https://americanaffairsjournal.org/2018/12/share-buybacks-and-the- contradictions-of-shareholder-capitalism/)) Share buybacks crossed investment earlier this decade, the former on a 60-year uptrend and the latter on a 60-year downtrend.

We would expect investment to track productivity growth, and it apparently does, which suggests productivity growth _is_ trending down, rather than simply being hidden or lagging.

<comment><USER15> I didn't read the article, but a quick scan showed no mention of "interest rate" or quantitative easing.

I'd be wary of any discussion of buybacks that didn't mention that the price of money has been kept artificially low for a long time now.

<comment><USER16> Sure, money is cheap. So cheap, in fact, that companies are borrowing money to fund buybacks. But that begs the questions--if you're not only using free cash for buybacks, but borrowing cash for buybacks, then what does that say about capital investment opportunities and the willingness of private investors to pursue them?

Maybe there's just so much free cash that companies can keep investing normally while also doing buybacks. But few people would deny that America has a serious infrastructure problem, both in maintaining our existing infrastructure, and failing to meet demands for new infrastructure. So there _are_ plenty of investment opportunities--to the extent public infrastructure could maintain and boost productivity--and nobody is disputing that these opportunities aren't being pursued. The question is, how do we direct that cash to fund those capital improvements?

The old argument was that share buybacks returned money to shareholders, who are better capable, writ large, of discovering new investment opportunities. But they're not. All we're seeing are more buybacks and more cash accumulation. Investors aren't investing, they're just cashing out, which because there has been so much cash floating around[1] has become a persistent trend rather than cyclical.

[1] IMO more because of global industrialization, not because of injection of dollars by the Fed. Reduced capital investment is a global trend. Because of the structural position of the U.S. in the global economy, much of that cash is funneled to the U.S., at least for the time being.

</comment></comment></comment></comment><comment><USER17> The sleight of hand here is the qualifier "in the here and now" (notice that this doesn't make it into the article title). If I've understood Yang's position correctly, it's that we need to develop policy proactively for this likely future.

<comment><USER18> No, he pretty clearly claims that job loss at the present is from automation. Here is a quote from an oped he wrote: "It's easy to cite incomplete statistics that ignore the full picture and the situation on the ground, but I've done the math while spending time in struggling communities. Venture for America, the nonprofit I founded, sent me across this country, to Detroit, St. Louis, Birmingham, Ala., and other communities, where we attempted to spur entrepreneurship and create jobs. It was during this time when I spoke with workers who had lost their jobs to automation and couldn't find more work. My organization was helping to create jobs, but automation was displacing tens of thousands of workers in these states. We were pouring water into a bathtub with a giant hole ripped in the bottom."

[https://www.nytimes.com/2019/11/14/opinion/andrew-yang- jobs....](https://www.nytimes.com/2019/11/14/opinion/andrew-yang-jobs.html)

<comment><USER19> It's both.

</comment></comment></comment><comment><USER13> Betting against technology isn't a winning strategy in the long run. There's idea that I had first heard articulated in Sapiens: that the rules of society are shaped by the underlying technology (e.g. kings only make sense after agriculture).

We've been living in a society built around the 1920-1940s when we passed universal high school and labor union laws, setting up a scenario where companies needed human labor in factories and human workers could be compensated well as their companies succeeded.

If technology advances again it only makes sense that we would need to update the social contracts as well, as we have always done.

<comment><USER2> An important meta observation, I agree.

I would add to that a corporate shareholder governance model that takes all the externalities into account like labor and environment instead of primarily profit and public perception.

While we're at it, update our model for GDP to include softer concepts like mental and physical well being / education / etc.

If your metric is money, you become money.

<comment><USER20> That's actually exactly one of his central arguments [https://www.yang2020.com/policies/measuring-the- economy](https://www.yang2020.com/policies/measuring-the-economy)

</comment></comment></comment><comment><USER21> What would the consequences be of implementing a 10% VAT tax in the United States per Yang's plan[1]? This seems like an enormous increase in taxes by American standards. Wouldn't companies just pass this cost on to consumers?

[https://www.yang2020.com/policies/value-added- tax/](https://www.yang2020.com/policies/value-added-tax/)

<comment><USER11> A VAT alone would be bad for consumers. But the VAT is being used to fund a UBI of $1000 per month for everyone. So even the worst case of the full 10% is passed to consumers (and this doesn't happen in other VAT countries, it's usually half the VAT passed to consumers), a consumer would have to spend $120,000 per year in VAT eligible goods (usually essentials like food are excluded) to negate the $1000 per month UBIfunded by the VAT.

<comment><USER22> The VAT+UBI is notably bad for anybody on disability today. Disability today averages around $1200 per month. With Yang's UBI, you choose between disability and UBI - so most people on disability aren't getting any more cash. But now they have to pay 10% VAT as well, so they basically see a 10% decrease in buying power.

Can't say I'm a huge fan of that, since UBI often gets touted as a "help the poorest" thing.

EDIT: looks like Yang's position on the stuff below changed. His website used to say it wouldn't stack with anything, now it says it stacks with some things, which makes more sense. I'm till not completely convinced though, since the combination of programs that it doesn't stack with can easily exceed the $1000/mo limit that make it regressive again. But there's a complicated analysis there that I'm not qualified to make.

<comment><USER8> Not entirely true, straight from his website "You can collect both SSDI and $1,000 a month. Most people who are legally disabled receive both SSDI and SSI. Under the universal basic income, those who are legally disabled would have a choice between collecting SSDI and the $1,000, or collecting SSDI and SSI, whichever is more generous.

Even some people who receive more than $1,000 a month in SSI would choose to take the Freedom Dividend because it has no preconditions. Basic income removes these requirements and guarantees an income, regardless of other factors." [https://www.yang2020.com/what-is-freedom-dividend- faq/](https://www.yang2020.com/what-is-freedom-dividend-faq/)

<comment><USER22> Hunh - I'm wrong. In my defense, Yang seems to have revised his plan on this - his website used to read "We currently spend between $500 and $600 billion a year on welfare programs, food stamps, disability and the like. This reduces the cost of Universal Basic Income because people already receiving benefits would have a choice but would be ineligible to receive the full $1,000 in addition to current benefits."

So it looks like they softened this position at some point? But yeah, that's a much better position than the old one.

</comment></comment></comment></comment></comment><comment><USER23> It sounds like Noah Smith isn't actually disagreeing with Yang's solution (on the contrary), only his purported reason for it. From the article:

"Instead of sounding the alarm about robots, proponents of a basic income should use arguments that aren't dependent on the threat of automation -- and there are many good ones."

On the macro level, automation's effects are uneven. At present, the gains from automation are likely incremental. I suspect the losses from automation however might be deeply felt by a segment of the population that most of us rarely interact with. An economist recently put it like this: "the gains are diffuse, the losses are concentrated".

</comment><comment><USER20> As more of a meta point, it's fascinating to see the corporate media's response playbook to outsiders like Yang. First stage was a Ron Paul style pretend he doesn't exist, such as MSNBC consistently omitting him from polling reporting despite the reporting including numerous competitors polling under him, or corporate-hosted[0] debates not letting him talk for 30 minutes straight.

Perhaps he's hanging on for long enough now to progress to the next Bernie style 16 negative stories in 16 hours[1] level.

[0]: [https://www.lwv.org/newsroom/press-releases/league- refuses-h...](https://www.lwv.org/newsroom/press-releases/league-refuses-help- perpetrate-fraud)

[1]: [https://fair.org/home/washington-post-ran-16-negative- storie...](https://fair.org/home/washington-post-ran-16-negative-stories-on- bernie-sanders-in-16-hours/)

</comment><comment><USER24> Even if the automation argument is wrong, basic income isn't necessarily wrong.

</comment><comment><USER25> [https://outline.com/EW9jbk](https://outline.com/EW9jbk)

</comment><comment><USER26> NAFTA was a larger contributor to deindustralization than technological advancement but technology will be on of the leading causes of 'loss of jobs' going forward. What Yang doesn't account for is the dynamism of the American economy to create new jobs.

UBI is a solid idea that could be more easily realized in the US through expansions of the EITC and child credits.

<comment><USER5> Wouldn't child credits incentivize children. And shouldn't we wish to disincentivized children?

<comment><USER26> Why? An economy needs people to grow, how can you fund universal programs like this without tax revenue to find it.

<comment><USER5> At some point we will have to stabilize the economy with a stagnant or shrinking population. We might as well learn sooner than later if you believe in global warming. We should consider these incentives now.

</comment></comment></comment></comment><comment><USER27> Keep in mind, that now Bloomberg is in the Democratic race, They will be making hit pieces against Bloomberg's opponents.

</comment><comment><USER28> Re: all the comments that this article doesn't disclose the Bloomberg conflict of interest. It was published before Bloomberg entered the race. Granted, you could make the argument that Bloomberg was shadow directing the publication to attack other fringe Dem nominees, but Noah Smith has been making this argument on twitter for some time now.

<comment><USER29> Yes, just like how every Washington Post article critical of Elizabeth Warren is because "Bezo is trying to protect the billionaire class" /s.

I saw a blue checkmark people saying just that in response to WaPo covering Warren's own staff releasing her law work with corporations. This Bloomberg stuff comes up constantly too.

idk how otherwise smart people buy into this stuff. It's a very naive view of how the world works and conspiracy theory tier stuff. Much like gov conspiracies hiding massive world changing information, newsrooms unquestioningly follow the orders of the chairman and the editors and staff all keep it super-secret (despite it being the biggest story of the year if it leaked, among people in the business of leaks), just to help one guy polling at 2% beat the other guy polling at 3%. Bias in newspapers is very different than direct interference.

<comment><USER30> > It's a very naive view of how the world works

Reporting costs money. If you can control the budget, then you can control which stories are prioritized and which aren't. If you own the paper, you can control the editorial section. Pretending that these tools can't be or aren't being used to influence the population is naive.

<comment><USER29> > Pretending that these tools can't be or aren't being used to influence the > population is naive.

Fortunately that's not what we're talking about, at least not so broadly.

But saying the stories are artificial or plants directly from the Bloomberg campaign - basically saying "ignore anything to do with his competitors from Bloomberg News because it's obviously at the direction of the chairman". That's what I don't buy.

Another example which would be crossing a line is any reporters getting silenced or stories getting squashed.

Even worse is the idea there's a broader conspiracy to protect the 1% class that Bezos et al and all of the big newspaper teams are engaged in is an even bigger yawn.

If we're just talking about hiring people with a certain bias and budgeting then eh.. I really don't see the problem with that, which as you mentioned every paper or editor/management would be guilty of it. That's why we have more than one newspaper.

I'd rather judge each story on their individual merits, with the obvious consideration of the source being a factor.

</comment></comment></comment></comment><comment><USER31> Fascinating that nowhere in the article is it disclosed that the publication is owned by a competitor of Yang.

<comment><USER32> Yeah, like maybe they could put the competing candidate's name in the name of the news service, or in the URL, or something...

</comment></comment><comment> caleb-allen Is my suspicion of Bloomberg publishing a critical article of Yang misplaced?

Both are polling around 4% and are battling for 5th in polls.

Not that that would invalidate the article. Just feels funky.

<comment><AUTHOR> not really. It would be in Bloomberg's interest to write articles critical of Warren or Sanders than focus on Yang, who is polling so low as to be a threat.

<comment><USER33> Bloomberg doesn't have to beat Warren or Sanders to get the nomination. He's betting that, given a "centrist" alternative, the Dems will prefer it to Warren and Sanders. I.e. it will be a redux of Clintonites' '16 argument "We all love Sanders, but he is too far left and we need to win against mean-old Trump"

Therefore, he only has to beat Yang (since he doesn't really care if he looses to a Biden candidacy; he joined the race when Biden seemed wobbly)

<comment><USER34> But Bloomberg was a Republican who only recently switched. Why would they elect him as the Democratic candidate at all? Perhaps the answer is "money", but in that case, he's got Yang beaten already. From my (very foreign) point of view, Yang is simply not a serious contender.

<comment><USER35> What would you define as a serious contender? I'm not a Yang supporter but very early on, he loaded up most of his many policy positions on his website and he has been making the rounds in terms of media exposure e.g. the debates, the Joe Rogan podcast, etc. He's polling at 5th or 6th nationally the last time I checked.

Trump was a Democrat for a lengthy period of time and the Republicans still nominated him. I think Bloomberg is betting that the party and its supporters will not build a coalition around a more left-leaning candidate (Sanders, Warren) and they desire a candidate who, at least for the intent and purpose of electability, can appear more moderate to attract the swing voters. He's also betting that Joe Biden's support will peter out as the campaign moves along - perhaps a gaffe to top all gaffes? - and Bloomberg will slowly vampirize Biden's base. At least, that's my hypothesis on his motivations.

I think the problem Bloomberg will find is that many who lean farther left will not settle for another moderate Democratic candidate who promises only to carry on the status quo (and of course, to defeat Trump). I think his likability and charisma (or lack thereof) will become hindrances to him as this election progresses (Joe Biden, for all his faults, is much more endearing and 'folksy' if you will). I can't imagine hardened Bernie supporters rallying around an old New York billionaire who has the gall to enter as late as he did and basically buy his way into electoral momentum.

<comment><USER34> > What would you define as a serious contender?

Someone with much support, influence and popular appeal.

> I can't imagine hardened Bernie supporters rallying around an old New York > billionaire

Me neither, but I also can't imagine them rallying around an uncharmismatic, non-mediagenic guy with primarily nerdy support and the same ideas as the rest, except for the unrealistic and probably "unamerican" UBI, to phrase it in the same style.

> the Republicans still nominated him

Democrats aren't Republicans, of course.

</comment></comment></comment></comment></comment></comment><comment><USER36> If I worked at Bloomberg, I'd be pretty upset about Mike Bloomberg's campaign. It really undercuts their reporting, even if everything in this article is 100% correct.

<comment><USER37> I thought he gagged his reporters from writing about his Democrat opponents?

<comment><USER38> This article was published prior to Bloomberg's candidacy announcement.

</comment></comment></comment><comment><USER39> Should we be surprised that Bloomberg's press is writing about one of his political rivals? To me, a UBI approach seems inevitable and perhaps moral. At some point, humanity should reap the rewards of technical innovation so that we enjoy a safety net and peace.

<comment><USER40> I can't see how society can possibly function post-automation without UBI. All our basic needs will be met by machines, yet thousands will starve because they don't have a job so they can sit on a desk all day and do nothing?

<comment><USER41> The concept of "post-automation" makes no sense. Automation is an eternal exponential curve that's been going on for ages, there's not going to be a discontinuity unless we suddenly discover something magic.

<comment><USER42> > Automation is an eternal exponential curve that's been going on for ages

I think this is Yang's biggest fallacy. He assumes that growth and innovation will be "eternal exponential". That's a pretty huge assumption. Yes, it's been relatively true for 100 years, but that's a very small slice of human history. What if growth isn't exponential? What if the singularity is 1000 years away?

Moore's "Law" and exponential growth are taken as gospel, but there's no reason why it will continue this way forever. Too many people are thinking about the singularity and too few are thinking about an impending innovation stagnation.

<comment><USER41> Fine, maybe it will stop. But my point was _if_ it continues with the same exponent, an exponential curve continues to look the same locally. The _future_ always looks steep and scary, but the present is the same as ever.

</comment></comment></comment></comment></comment><comment><USER43> Lately, Bloomberg has been "doing the math" on a lot of the Democratic field. They've recently done articles on Warren's and Bernie's plans, as well.

Absent of a lot of critical coverage is Michael Bloomberg. Here [0] we have an article that simply reports on Bloomberg's apology for stop and frisk, but of course it's behind a paywall.

This isn't suspicious in the least. Right?

I am not a supporter of any of the above-mentioned candidates but I hope people see what is going on here.

[0] [https://www.bloomberg.com/news/articles/2019-12-03/michael-b...](https://www.bloomberg.com/news/articles/2019-12-03/michael- bloomberg-reiterates-apology-for-stop-and-frisk)

</comment><comment><USER44> Two days ago, on my way home from an errand, I made the mistake of entering the subway at a digital-only entrance. Tap payment only. The fare box is shuttered up permanently, leaving me at a loss as to who I'm supposed to show my paper transfer to.

Having just had a taste of dystopian future injected straight into my veins, my irritability was at a peak, so I tried to quickly pass through behind someone else. Fuck it, I have my transfer I paid for anyway right?

A lady in the city's transit uniform instantly appears from behind the fare box and asks me what the hell I'm doing. I avoided trouble, but, well, I don't even know what to say really. It is just so absolutely bewildering and upsetting to have no human in uniform to go show my transfer to, but faster than I can snap my fingers does one appear to be the muscle.

Capitalist power structures will forever invent stupid shit for humans to do. The rich and powerful seem to prefer it this way, because whatever the hell it is for them that replace the simple joys of friends and family, is something that can only be appreciated when others can't have it. Diamonds.

<comment><USER45> > Capitalist power structures will forever invent stupid shit for humans to do

I bet all power structures do that...

</comment></comment><comment><USER46> I thought Bloomberg banned their journalists from discussing the democratic side of the field?

Regardless, any political commentary about any topic coming out of this organization is highly suspect and shouldn't really be linked to while Michael Bloomberg is in the race or in office.

</comment><comment><USER47> This is indeed an imaginary problem. Do we really think that people who do lower-level jobs can't be trained to do higher-level jobs? The same thing was said during the industrial revolution. If we make tractors, what will happen to the people who toil in the fields by hand? Those people ended up running the machines. Now all of a sudden we are somehow sure that when the people running the machines get put out of work by higher-order computing, those people won't be able to adapt? Not buying it. The human mind has a lot of plasticity. It learns to grow and change based on its environment. IQ has gone up in developed countries.

We are clamoring for a problem that doesn't yet exist, ready to provide a solution that won't give people what they need the most: a feeling that they are a valuable part of society. It's pure arrogance to predict that people can't learn new trades, that there are people currently functioning in society who will one day be too dumb to be part of society.

<comment><USER13> > Do we really think that people who do lower-level jobs can't be trained to > do higher-level jobs?

It's not going to be easy to retrain the 3 million truck drivers, many of whom have high school diplomas and are age 60+ men, for one of the high-growth jobs of today (topped with software engineer, statistician, nurse practitioner). Especially considering that they're competing against 20-somethings.

And when I say it's not going to be easy I mean we haven't managed to do it so far.

By the numbers those who have lost their auto manufacturing jobs to automation have not been retrained very well. Half dropped out of the workforce, and of those the other half filed for disability (the number of disability beneficiaries has increased 5x since 1970).

</comment></comment><comment><USER48> Presidential candidate caught lying. News at 11. :-)

Seriously, are we going to hold politicians to not distorting the facts now? Since when is that even a thing? No politician has ever been elected into a public office without lying. In fact presidential elections could be viewed as a competition for who lies the most convincingly.

Also: facts do not matter in who gets elected. What matters is how people _feel_ about a candidate. Facts affect that very little. I think Yang's ideas are kooky, but of the entire dem lineup he _feels_ the best. He's obviously very intelligent, he's also much more authentic than all the others, especially the frontrunners. And he's not a career politician, which is a major advantage in this day and age.</comment>


Parody O'Reilly book covers - <AUTHOR> http://imgur.com/gallery/vqUQ5 <comment><USER2> My favorite is the refrigerator magnet we have on our refrigerator.

The refrigerator is where you put the refrigerator magnets, right? At least until the acid kicks in.

[http://i.imgur.com/dy0ii.png](http://i.imgur.com/dy0ii.png)

<comment><USER3> This is great! Is there a website selling these?

<comment><USER2> Here you go:

[http://www.amazon.com/dp/B015YEY7FA](http://www.amazon.com/dp/B015YEY7FA)

It's a slightly different version of the image, but still a good one.

</comment></comment></comment><comment><USER4> While most of them are well done and funny in their way, they are not actually parodies of O'Reilly, they are parodies of developer attitudes _using_ O'Reilly cover style (similar to meme generator images).

As an O'Reilly parody I would expect something like "Official paper version of an OSS manual you can download on the project page". The Stack Overflow cover is kind of like that.

<comment><USER5> par·o·dy ˈperədē/ noun

noun: parody; plural noun: parodies

1\. an imitation of the style of a particular writer, artist, or genre with deliberate exaggeration for comic effect.

While splitting hairs can be fun, for all intents and purposes, I'd say this is a parody.

<comment><USER4> Staying in that definition: My comment was that the "deliberate exaggeration" would be an exaggeration of the original, not of something else. For example, these meme generator images using movie pictures with Brad Pitt are also not parodies of Brad Pitt.

But yeah, I know that it is hair splitting. ;)

</comment></comment></comment><comment><USER6> Needs "Essential Debugging with print statements"

<comment><USER7> There's nothing wrong about "debugging with print statements".

If anything, if you're any good at it, it shows better knowledge of your program's behavior than blindly looking around in the stack on a debugger.

In fact some of the biggest name programmers use just that -- including the very people who created .

At best it's "hardcore" \-- but not "bad" or anything like what's in the list. Here's some appeal to coding authority for ya:

"The most effective debugging tool is still careful thought, coupled with judiciously placed print statements." Brian Kernigham

"I don't like debuggers. Never have, probably never will." — Linus Torvalds

<comment><USER8> > There's nothing wrong about "debugging with print statements".

Nor is there anything wrong with searching for the text of an error message, but both are funny to see as a fake book cover.

<comment><USER9> It's such a simple tool that it feels wrong the first time you do it.

<comment><USER10> Yet it's also the only thing that actually works in a tough debugging situation.

</comment></comment></comment></comment></comment><comment><USER11> The author: [https://twitter.com/ThePracticalDev](https://twitter.com/ThePracticalDev)

The T-shirts: [https://threddit.com/thepracticaldev](https://threddit.com/thepracticaldev)

<comment><USER12> $35 for a t-shirt?!?! I was ready with the credit card until I saw that salty bit.

</comment></comment><comment><USER13> The amount of questions I find on StackOverflow that could have been found with a simple Google search makes me think there really is a need to read effective Googling of error messages.

<comment><USER14> Often times stack overflow is the first google result for certain types of error messages, and the responses are generally useful for both fixing and understanding the problem.

</comment></comment><comment><USER15> Missing the best one: [http://imgur.com/m11eiu4](http://imgur.com/m11eiu4)

<comment><USER16> I can top that: [https://i.imgur.com/8A4lF4p.png](https://i.imgur.com/8A4lF4p.png)

<comment><USER17> Not programming related, but a great one: [https://i.imgur.com/JRzMTR7.jpg](https://i.imgur.com/JRzMTR7.jpg)

</comment></comment></comment><comment><USER18> If I only had the time, I'd make "Technical Debt: The Credit Card With No Limit".

</comment><comment><USER19> I remember writing an internal white paper as a mock O'Reilly book. IIRC, my chosen animal was the badger.

</comment><comment><USER20> My fav:

[https://imgur.com/INBvStO](https://imgur.com/INBvStO)

</comment><comment><USER21> Ben Argyle started doing designs like these 16 years ago - [http://www.bofhcam.org/co-larters/index.html](http://www.bofhcam.org/co- larters/index.html) and you can buy his t-shirts etc. from Zazzle

</comment><comment><USER22> 'code written by some stranger on the internet is always perfect' \- AWESOME! :D</comment>


SCiO: A Pocket Molecular Sensor - <AUTHOR> https://www.kickstarter.com/projects/903107259/scio-your-sixth-sense-a-pocket-molecular-sensor-fo

<comment><USER2> Most likely a scam. The Healbe GoBe, and the TellSpec supposedly operated on the same principles. You can't do Raman spectroscopy in a lit room with a low wattage laser. If they did have the technology, then they could easily get a contract to produce these from the government.

This is the state of the art:

Agilent 4300 FTIR

[https://www.youtube.com/watch?v=OVKg3s4GswU](https://www.youtube.com/watch?v=OVKg3s4GswU)

Large battery for the laser, interchangeable interfaces, "under 5lbs".

Or this...

TruDefender FT

[https://www.youtube.com/watch?v=caiSiLGNYGU](https://www.youtube.com/watch?v=caiSiLGNYGU)

3lbs

<comment><USER3> They never claimed to be doing Raman spectroscopy.

</comment></comment><comment><USER4> This seems remarkably useless. Their only use case they present is figuring out how many calories are in the things you eat, which you can already figure out by looking it up by name (chances are if you are finding and eating random things you're not carrying around a portable spectrometer). Even if it were more convenient to carry around a dedicated calorie-tester device, I hightly doubt that it would be at ALL accurate just looking at the skin of most things you eat. It might be accurate if it's using a spectrum "fingerprinting" technique to identify what it is you are eating and look it up in a table, but it's likely going to be less accurate than your own ability to assess whether something is an apple or a pear.

Oh, I guess they also say you can test medicines. I guess that does solve a lot of problems - I can't tell you how many times I've found unlabeled pills lying around and thought, "If only I knew what kind of medication this was!" Gone are the days of "pop-and-pray", I suppose.

<comment><USER5> Or for detecting gluten in food before eating it? The real question, is what can it accomplish in practice?

<comment><USER6> They say they can't detect amounts less than 1%, and it's pointless to assume there's even that little unless you scan the entire portion of meal you're eating (there may be no gluten in the area you scan, but there may very well be in another).

</comment></comment></comment><comment><USER7> I am at an internet of things meetup at Google Tel Aviv and just saw a first hand demo of the sensor. I can guarantee this is real and working.

</comment><comment><USER8> Does anyone know what IR sensor they could be using, I thought for alcohol spectroscopy measurement you'd need an expensive InGaAs sensor

<comment><USER9> A fictitious one?

</comment></comment><comment><USER10> If this is not a scam, it might be perfect for an aquaponics water quality sensor (if it can detect single ppm quantities of ammonia, nitrates, and nitrites). They specifically mention hydroponic solutions analysis.

</comment><comment><USER11> As far as I understand this, the scanner is nothing more than a glorified barcode-scanner. It can only identify items already in their database and all the properties that it can find about the scanned item is stuff that has been manually entered into the database.

So if I scan a piece of cheese, I won't be getting the data about my specific piece of cheese but rather the same information from the back of the package which was manually entered into their database.

</comment><comment><USER12> Kudos for the skepticism here. Sorry to have to rain on anyone's parade, but when there is a 'need' for opacity regarding the specifics of the technology in an announcement which exclusively confines itself to positivity in the way that this does. Admit it, 'an analytical chemist in the palm of your hand' does sound magical, but surely we are all duty-bound to ask probing questions. Personally, I am getting a good feeling about this project, but I sense that am just being swept up in the excitement. So please, please continue to act as a counterbalance to my optimism. The risks posed by either being misled or by sharing unrealistic enthusiasm can only be mitigated by a relentless disregard for such sentiments. I want to believe the dream that the protagonists portray: I need others who are less convinced to challenge it, even if I feel irritated by their cynicism.

</comment><comment><USER13> Just an FYI, I have a close friend who is an employee at this company. While I know nothing about the field, they're a real company with real employees and real products, so I don't think it's a scam in the way some people here are saying.

(Not going to comment on whether anything in the post is "misleading" since I don't know enough of the field to even begin to understand that).

</comment><comment><USER14> SCAM? All these bloggers that saw this work with their own eyes. Not sure anyone saw HealBe or TellSpec work. Ever. Pretty sure this is not a SCAM.

[http://gigaom.com/2014/04/29/consumer- physics-150-smartphone...](http://gigaom.com/2014/04/29/consumer- physics-150-smartphone-spectrometer-can-tell-the-number-of-calories-in-your- food/)

[http://www.pcworld.com/article/2148944/meet-scio-the- handhel...](http://www.pcworld.com/article/2148944/meet-scio-the-handheld- scanner-that-identifies-exactly-whats-inside-food-and-pharmaceuticals.html)

[http://www.medgadget.com/2014/04/scio-handheld-molecular- sca...](http://www.medgadget.com/2014/04/scio-handheld-molecular-scanner- analyzes-food-drugs-and-neglected-houseplants-video.html)

[http://venturebeat.com/2014/04/29/scio-handheld-sensor- can-d...](http://venturebeat.com/2014/04/29/scio-handheld-sensor-can-decipher- the-chemical-makeup-of-food-pills-and-plants/)

<comment><USER9> "saw this work"

You mean saw a mock-up, employee of ConsumerPhysics.</comment></comment>


Boss writes to employees - <AUTHOR> http://www.finextra.com/community/fullblog.aspx?id=2625

<comment><USER2> Terrible. Instead of finding a way to effect change in the government, the "boss" dumps it on his employees.

Also, isn't he implicitly saying that the employees are as lazy and unambitious as his friends? How demotivating is that? Then he rants about the politics and their prime minister, and as a cherry on top, closes by saying that something that is totally out of the employees' control will be a cause for their job loss.

If I were an employee in that company, I'd quit and tell him quite publicly to f __* off.

</comment><comment><USER3> This message and different versions of it have been floating around at least since the final election campaigning week in October 2008. Maybe a propaganda type of stuff.

</comment><comment><USER4> Surely this has been posted here enough by now.

<comment><AUTHOR> Oh? I just saw it in one of the fellow Australian's blog and think it is quite interesting to see what HNers got to say. =)</comment></comment>


Under Rainier's crater, a natural laboratory like no other - <AUTHOR> http://seattletimes.com/html/localnews/2024638286_rainiercavesxml.html

<comment><USER2> Fascinated with this type of geologic activity? Check out Lassen National Park.

Or actually, please don't -- because it's the most pristine and beautiful national park in California that isn't overrun with tourists.

</comment><comment><USER3> Trivia: There's a small Piper airplane frozen into the ceiling of one of those caves near the summit.

Edit: According to the link JoeAltmaier pasted below, the plane has now fallen off of the ceiling. It was pretty weird to see it just hanging there, at the time.

<comment><USER4> Interview but no pictures: [http://www.gorp.com/parks-guide/travel-ta-secrets- from-the-p...](http://www.gorp.com/parks-guide/travel-ta-secrets-from-the- park-ranger-files-sidwcmdev_159133.html)

</comment></comment><comment><USER5> amazing article. i've been up there a few times, had no idea what was under my feet</comment>


190,000 req/seq (micro benchmarks) ... Haskell webserver shootout continues - <AUTHOR> http://docs.yesodweb.com/blog/warp-speed-ahead

<comment><USER2> I don't get what these benchmarks are supposed to do. I mean, it's great that a server takes 5 μs to complete a request, but when my own code takes 10 ms to run, does it really matter? It's 2,000 times slower, it's not like the webserver is the bottleneck...

<comment><USER3> Well, the faster the webserver, the more time is left for code to run while still having a very responsive website.

<comment><USER4> Let's suppose the webserver takes 0ms to run. How much would that help ?

<comment><USER5> To serve a single client, it doesn't matter, but when you're serving more than a few thousand of clients concurrently, there's benefits to a faster web- server. I mean, more concurrent clients on the same hardware, better average/worst-case latency, need for less hardware, less chance of a bottleneck...

<comment><USER2> That still doesn't make much sense. The gains of sticking with a proven, solid server which you are familiar with surely outweigh the 0.5% speed increase.

</comment></comment></comment></comment></comment><comment><USER6> Misleading title. I expected to find a comparison of various webservers. Instead it looks like release notes from somebody's web framework.

Incidentally, the proposed HTML syntax in the 2nd half of the article is terrible. Developers have been closing HTML tags for 15 years now, to the point where we've associated little pyramids with correctness. All this syntax does is make _all_ your code look broken all the time.

<comment><AUTHOR> These are comparisons of various Haskell webservers, running the same _micro_ benchmark, and the given number for Warp is provided. There are links to older benchmarks against servers in other languages.

Look for the big graph with different columns for different webservers.

</comment></comment><comment><USER7> How do other non-Haskell Web-Servers perform? Is there somewhere a pong benchmark, say for Tomcat, PHP?

<comment><USER8> Yes there is, this is a comparison to Snap, while a comparison of Snap to other frameworks including node.js is here: <http://snapframework.com/blog/2010/11/17/snap-0.3-benchmarks>

<comment><USER7> Many thanks for the link! I did not expect PHP and Ruby to be so slow...

I am happy to see that Haskell gets better support for Web programming.

<comment><USER9> These benchmarks are misleading.

Looking at the github repo, they're comparing a rails app (full MVC, router, etc) against a node app (regex-based routing) to a snap application, which unless I'm missing something about snap actually seems to be two different applications, one to serve files and one that responds "pong".

Instead of a rails app they should have benchmarked a rack app.

</comment></comment></comment></comment><comment><USER10> What benchmark is this?

<comment><USER3> The article mentions the "pong" benchmark which seems to reside here: <https://github.com/snoyberg/benchmarks>. Looking at the code is doesn't do anything besides answering "pong" to any request so it's mostly about testing the overhead of the webserver, not its resilience against high loads.

<comment><USER11> I may be wrong, but with those benchmarks, the "typical" servers are configured to load the text "PONG" from a file as opposed to the haskell servers that are hard-coded to do it. Surely I/O gives them a massive disadvantage?

<comment><USER12> Yesod does support sendfile: [http://hackage.haskell.org/packages/archive/yesod/0.7.1/doc/...](http://hackage.haskell.org/packages/archive/yesod/0.7.1/doc/html/doc- index-S.html)</comment></comment></comment></comment>


What every online service can learn from Ma.gnolia's experience - <AUTHOR> http://www.transparentuptime.com/2009/02/magnolia-downtime-saas-cloud-trust.html

<comment><USER2> I believe the term is "debt". When you launch an app to the public, you're creating debt for yourself, forever.

Magnolia just managed to transfer the debt from time/work debt to "image" debt. In other words, now they just look really really bad but they don't have to maintain anything anymore.

<comment><USER3> Did you get an MBA or something?

</comment></comment><comment><AUTHOR> A good thread over at Wired around popular social bookmarking alternatives: <http://blog.wired.com/business/2009/01/magnolia-suffer.html></comment>


Ask HN: What problems can a consumer EEG solve? - <AUTHOR> An example of such an EEG is the OpenBCI device, plus whatever set of useful machine learning algorithms are used for source localization and signal processing.
Other than e.g. helping people with locked-in syndrome to communicate with the external world, or brain-computer control of robotic systems,
1. what questions can it help researchers to answer? 2. what problems can it help researchers to find? <comment><USER2> A consumer-priced EEG system would enable individuals to conduct polysomongraph testing at home to diagnose sleep disorders. Analysis of time in each sleep phase by EEG is the most accurate way of assessing quality of sleep but current polysomnograph systems are very expensive and complex to use and therefore polysomnograph testing must be administered through an overnight sleep study session at a clinic.

</comment><comment><USER3> I would like to see what happens when you connect a million people wearing eeg caps to a network....see if it can find the sixth sense.....universal conscious frequency. (then sell it to the AI community)</comment>


Tetuan Valley The Next Generation: New team, a lot of changes, same spirit. - <AUTHOR> http://blog.tetuanvalley.com/2013/02/tetuan-valley-the-next-generation-new-team-a-lot-of-changes-same-spirit.html We anounce the next edition of Tetuan Valley Startup Scool, with a new team and a lot of surprises. <comment><USER2> Yes!!! Congratulations! Let's take Tetuan Valley and Spain to the Next Level.

</comment><comment><USER3> Go guys! Fantastic job so far! Looking forward to the next cycle! :D

</comment><comment><USER4> Great news and best of luck. Full support from San Francisco

</comment><comment><USER5> Great news!!!Congratulations!!! Go Tetuan Valley!!!</comment>


Release of 'iPad mini' from Apple viewed as 'question of when, not if' - <AUTHOR> http://www.appleinsider.com/articles/12/04/17/release_of_ipad_mini_from_apple_viewed_as_question_of_when_not_if.html <comment><USER2> aka iPhone?</comment>


Starting to Hack on Steel Bank Common Lisp - <AUTHOR> http://www.pvk.ca/Blog/2013/04/13/starting-to-hack-on-sbcl/ <comment><USER2> SBCL is really amazing. Even though it's "bog standard" 1970's and 1980's technology, it still puts up a great showing against state of the art compilers: <http://benchmarksgame.alioth.debian.org/u64/lisp.php>.

It's also a great example of the power of macros. If you look at the backend, things like define-vop and the like, it does a lot of things using macros that e.g. LLVM uses an external code generation tool (tblgen) to accomplish.

<comment><USER3> No offense, but I'm not sure that the Language Shootout is the best showcase, the SBCL code submitted there could hardly be called idiomatic Common Lisp. Mandelbrot is one of the most egrerious offenders in that regard [1], compare that with the Java submission [2] which is both cleaner and faster...

[1][http://benchmarksgame.alioth.debian.org/u64/program.php?test...](http://benchmarksgame.alioth.debian.org/u64/program.php?test=mandelbrot&lang=sbcl&id=1)

[2][http://benchmarksgame.alioth.debian.org/u64/program.php?test...](http://benchmarksgame.alioth.debian.org/u64/program.php?test=nbody&lang=java&id=2)

<comment><USER4> When the text of a post is greyed out, has it then received a bunch of downvotes?

// From a HN newbie who's already wondered this

<comment><USER5> It has received more downvotes than upvotes.

</comment></comment></comment></comment><comment><USER6> Funny. Chance has it that I am right now working my way through "Practical Common Lisp" and rather enjoying Common Lisps bag of tricks. We'll see if I will dive deep enough to start hacking on the compiler itself. Once I go there, this post will be an awesome resource though.

<comment><USER7> I already read PCL and imho it's a really great book. In case, however, you have further questions (like I did) have a look at #lisp on irc.freenode.org - the guys there are really nice and helpful.</comment></comment>


GHost: Flash-Based Operating System - <AUTHOR> http://www.g.ho.st

<comment><USER2> I'm still trying to figure out what problem Webtops solve.

<comment><USER3> Portable functionality on limited systems, where the limitation is not technical, but policy-based (i.e. display systems that you can't break out of the web-browser on.) Not the most righteous cause, but a cause nonetheless.

</comment></comment><comment><USER4> Jesus that was painfully slow. I think it maxed out my 8Mb connection as well...

It did look slick though.

</comment><comment><USER5> Every couple of months one of these wanders along by. They are looking slicker these days but they all have the same problem:

They are just OS mock-ups that don't do anything running in a browser.

When I can upload a vmware image and then run it _quickly_ in a browser from anywhere, then we might have something, but until then, toy versions of real apps running in fake desktops are cool, very technical, and very impressive, but not _useful_.

I can almost feel the vibe of something like this coming from amazon EC2 eventually. Something with EC2, nomachine, persistent storage, vnc... its _almost_ all there. Sounds like a ycombinator startup to me.

</comment><comment><USER6> it doesnt even have a web browser

</comment><comment><USER7> Why oh why?</comment>


Zero Downtime Just Isn't Worth It - <AUTHOR> http://blog.wrenchmode.com/maintenance-mode-vs-zero-downtime-column-rename/ <comment><USER2> Since most of my maintenance is off peak hours, this makes total sense! Spending only 45 minutes of development instead of 6 hours with the trade off of 10 minutes downtime during off peak hours makes total sense. Thanks for the post with a relevant example.

</comment><comment><USER3> This is something I've discussed with my teams on a few occasions. Performing updates to applications usually ends up consisting of a hacky "down for maintenance, back in 10..." page put up by hand.

<comment><AUTHOR> It's because nobody really thinks about it until the last minute. That's kind of as it should be, since there are usually more important things to worry about. I think the "back in a jiffy" pages are fine, but if you want something a little friendlier, that's where Wrenchmode fits in.

</comment></comment><comment><USER4> Seems like every app I use has had downtime, heck, even Pivotal Tracker had some last week, so why is it something people disregard / ignore as a topic?

<comment><USER5> It really is a case where a little preparation can save you a lot of heartache when there's a problem or a big change to make.</comment></comment>


Microsoft Has 'All the Pieces' for Its Ad Business - <AUTHOR> http://www.bloomberg.com/apps/news?pid=20601087&sid=anZBKa7.MM.Y&refer=home <comment><AUTHOR> _We have all of the pieces we need to move forward'' and be one of the top ad platforms, Yusuf Mehdi, Microsoft's chief advertising strategist, said today at a Goldman Sachs Internet conference in Las Vegas when asked about an acquisition of Yahoo._

Microsofts say the darnedest things.

</comment><comment><USER2> methinks it would have been a lot cheaper just to build ms-ad sense from scratch.</comment>