A look at asm.js and the future with WebAssembly - <AUTHOR> https://mayaposch.wordpress.com/2015/12/30/a-look-at-asm-js-and-the-future-with-webassembly/ <comment><USER2> The author seems to assume asm.js/WebAssembly are only for games and not useful for anything else: "It's so limited and specialistic that beyond porting games to run inside a browser using WebGL and LibSDL, it's hard to think of suitable use-cases."

This is not the case at all - there are loads of use cases outside of games, and some of them have more straightforward dependencies (e.g. no graphics or networking). Take a look at Alon Zakai's github [1] where there are some examples of various libraries compiled to the web which include physics engines (ammo.js, box2d, cannon.js), database engines (SQLite), programming language VMs (lua, j2me), parsers (xml.js) and more (LLVM, clang, zlib, GMP, image/audio/video decoders...)

In some cases these are more-or-less drop-in replacements. For example I've pretty straightforwardly dropped in asm.js compilations of Box2D and zlib and gotten massive performance improvements over the handwritten versions with minor effort. In the Box2D case, it was so good we integrated the result in to a commercial product (Construct 2). I think it's also a compelling idea to be able to support new image and audio formats on the web at native-like speeds without requiring browser support, e.g. compiled WebP or Ogg Vorbis decoders.

I think the author has simply not done enough research around uses of compiling to the web to recognise its immense value.

[1] [https://github.com/kripken?tab=repositories](https://github.com/kripken?tab=repositories)

<comment><USER3> > programming language VMs (lua, j2me)

Since these are garbage collected languages, wouldn't it make more sense compile to plain JavaScript, treating that as VM-bytecode, and avoid doing things that slows down JavaScript VMs?

<comment><USER4> Not necessarily, since their GC semantics might differ from JavaScript. For example, if they have finalizers, then compiling into JS isn't an option.

Other semantic differences might also make this hard or impossible. Compare pyjamas to pypy.js, for example - the former compiles to JS, but has known differences from proper Python semantics (long bignums), while the latter is a straight port of a Python VM, so the semantics are identical.

</comment></comment></comment><comment><USER5> This article makes the mistake of buying into the idea that WebAssembly has anything to do with NaCl. It's not. It just had some NaCl people working on it (along with emscripten Asm.js people and others).

When it's released it'll map to asm.js and have most of it's limitations. Many of the limitations he ran into (no raw socket access, system library access) were related to the API limitations imposed by the browser's security model.

Also WebAssembly is pretty far along as they have drafted a specification and have prototype implementations in all the major JS engines. They also have a LLVM/Clang backend.

<comment><USER6> That's right. wasm is just like asm.js, plus the possibility of shared-memory multithreading. It has far more in common with asm.js than it does with NaCl, contrary to the conclusions of the article.

Threading and being a binary format instead of a text one aren't differences as fundamental as the difference between the Web APIs and NaCl's Pepper. Many of the complaints, as you point out, are about the Web APIs, and unlike NaCl Web Assembly is fully committed to the Web APIs (as it should be).

<comment><USER4> To be fair, asm.js already has significant progress towards shared-memory threads [1]. That will finish standardization and ship long before wasm has threads.

I would say that the main difference between asm.js and wasm is, as you mentioned, that wasm is a binary format. That will allow far smaller downloads, and far faster startup times.

The second main difference is that wasm is a new formal standard, with all vendors involved, so we should see consistent performance across browsers. Unlike asm.js which was a pure JavaScript optimization, so different browsers optimized in different ways, leading to large variability (which decreased over time, but remained significant, e.g. on specific things like memory growth, which was abandoned due to that).

[1] [http://kripken.github.io/emscripten- site/docs/porting/pthrea...](http://kripken.github.io/emscripten- site/docs/porting/pthreads.html)

</comment></comment></comment><comment><USER4> Some notes:

1\. Emscripten/asm.js supports the defined behavior case of setjmp/longjmp. What is not supported is jumping up an already unwound stack, which is undefined behavior. This is somewhat commonly-seen undefined behavior, though.

2\. I don't think it's fair to say that function pointers are "hairy at best, broken at worst." Again, this is a case where we do not support undefined behavior. But perhaps most importantly, most real-world code is properly portable and just works. When not, we have tools that help figure things out.

3\. It's not true that everything must be compiled into one massive JS file, Emscripten/asm.js also supports dynamic linking, [1]. However, the default is a single file, because then it can be more fully optimized.

4\. There is already threads support, [2]. It works, and progress in the standards bodies is going well. The main issue is waiting for browsers aside from Firefox nightly to support it, but that's coming too.

A final note, I don't think the reason most asm.js use cases have been games is because the technology is only suitable for games. First, there are a bunch of non-game use cases already (for example, I've seen sites use asm.js for encryption, education, emulation, codecs, non-game WebGL sites, etc., including on major sites like Wikipedia [3]). But perhaps more importantly, games are already on the web, so they have a clear business model and use case. And, they are on the web mostly in the form of plugins, and plugins are going away, so they have to move to JavaScript.

[1] [https://github.com/kripken/emscripten/wiki/Linking](https://github.com/kripken/emscripten/wiki/Linking)

[2] [http://kripken.github.io/emscripten- site/docs/porting/pthrea...](http://kripken.github.io/emscripten- site/docs/porting/pthreads.html)

[3] [https://brionv.com/log/2015/08/09/video-decoding-in-the- java...](https://brionv.com/log/2015/08/09/video-decoding-in-the-javascript- platform-ogv-js-how-u-work/)

</comment><comment><USER7> I think the main takeaway is: Writing code for asm.js/webassembly is not easy, and there might be a serious porting effort from existing C++ code. But I think that's nothing really new for C++ developers, differences in data types, OS APIs (e.g. for networking), allowed threading models, allowed exception handling already exist in a lot C++ target platforms. When you look at the embedded market it gets even worse. What I mean is that writing cross plattform C++ code is never easy, and that's not due to webassembly.

Still webassembly will be very helpful for some applications or even only libraries which have very high performance requirements. And porting some existing desktop applications might be easier than completly rewriting them to JS. But I guess for most websites and webapplications [transpiled] JS will be the more productive choice.

I found the "there is no main loop" comment not that fair, as I think javascript is one of the few languages which has a mainloop (aka eventloop) already built in. It's not a spinning loop like what you would build in a C++, but continously enqueing the main loop iterateration handler in setImmediate or similar should give the same result.

</comment><comment><USER8> I expected a fluff article by a high level JavaScript programmer buying into all the optimistic promises of WebAssembly.

Instead, this is actually one of the best articles I've read about WebAssembly. The author approaches it from a C/C++ background and investigates what it means to write applications from that mindset, revealing the huge limitations of asm.js. Then the author turns to WebAssembly and gives a sobering look of how immature that project still is.

<comment><USER9> You mixed it up. Actually, it's usually "high level JavaScript programmers" who are "trying to reveal the huge limitations". Because they are not happy with the fact something else can be used for client-side web-development other than JS.

<comment><USER10> I'm really disturbed by this clueless Javascript developer stereotype being repeated over and over. I know there are many more beginners in the js world than others but any time there's a js alternative being discussed, I read comments in the tune of "haha now js developers will be useless finally" and then I wonder who is being threatened by whom.

Please be more welcoming. We don't have enough programmers, no one is taking anyone's jobs away.

<comment><USER11> Utter lies. There are plenty of programmers around.

<comment><USER12> I'm not sure that follows. It's increasingly difficult to hire skilled developers.

</comment></comment></comment></comment></comment><comment><USER13> Good article. If the limitations of the web platform are taken into account from the beginning when writing multi-platform C or C++ code, and one doesn't go crazy with C++ templates, it actually is not too bad. Porting a huge existing code base with many external dependencies is quite another topic.

I found the performance of asm.js in current JS engines the least limiting factor, instead it's the higher level APIs like WebGL, WebAudio that become the limiting factor.

Also, existing (game development) middleware hardly focused on reducing code bloat so far, which then results in huge Javascript blobs (but also huge native executables).

I've started a little while ago writing a low-level C++ engine from scratch with all of this taken into account (here: [http://floooh.github.io/oryol/](http://floooh.github.io/oryol/)) where the size of the Javascript blob is (roughly) in the same ballpark as a three.js demo (minified and compressed three.js is around 100kByte, Oryol 3D samples start around 90 kByte.

So basically: asm.js and WebAssembly yay, HTML5 APIs nay :)

</comment><comment><USER14> I always though that the idea was to write the performance critical parts in C++ and trans/com/whateverpile them to asm.js

A lot of the criticisms come from fundamental limitations that are here to stay. Browser security, JS spec and so on.

The best approach for JS multithreading problem is to create a PureJS spec that has no side effects. This code will be easier to be multi threaded.

</comment><comment><USER15> _JavaScript is a single-threaded, prototype-based language with no real concept of scoped variables and the like._

Is this true?

Webworkers is a multithread concept and as far as I know all variables are scoped but maybe not like they are in C.

<comment><USER16> I think they meant to say block scoped variables. In js everything is function scoped or global (until you get to ES 6 "let" and "const" variables).

As far as web workers, they are very restricted/isolated compared to regular shared memory threads In other languages.

</comment></comment><comment><USER17> Asm.js is okay, but with WebAssembly we will see more and more websites be a binary blob. (I am not speaking about C++ to WebAssembly, but Java/C#/Typescript/CoffeeScript/Dart/etc to WebAssembly). Instead of transpiling their languages to Javascript they will compile it as WebAssembly. This will be a tipping point. Is going back to MSNv1 or AOL style times is a good thing? In the end it's a real threat for the open web. Well let's hope this will never happen. Google will have the power to regulate them, by lowering their site rank.

<comment><USER18> There will be a very few really good applications of this. But this will be used mostly to obfuscate code that's doing something hostile to the user.

Look at WebGL. There's a site which lists the best WebGL sites.[1] Most of them are demos. Some which aren't:

\- [http://breakthrough.nationalgeographic.com](http://breakthrough.nationalgeographic.com) \-- a menu system which puts you inside a sphere. Somebody really liked Lawnmower Man.

\- [http://histography.io](http://histography.io) \-- a timeline of history. Only works on Chrome or Safari.

\- [https://www.rudys.paris/](https://www.rudys.paris/) \-- a shoe store. Doesn't seem to have any 3D; they just seem to be using WebGL for zooming. Takes forever to load, and they broke the Back button.

\- [http://www.thehappyforecast.com/](http://www.thehappyforecast.com/) \-- an interactive "happiness map" of London. But it's just an overly fancy 3D menu.

\- [http://www.webglgames.com/](http://www.webglgames.com/) \-- Deadtrigger 2 (zombies), They Will Eat You (more zombies), X-Wing (the 80s called, they want their arcade game back.)

You could do most of this stuff in Flash, and it would load much faster. Browsers now have more technology than use cases.

[1] [http://cssnectar.com/css-gallery/nominees/site- features/webg...](http://cssnectar.com/css-gallery/nominees/site- features/webgl/)

<comment><USER19> PLEASE never use "You could do most of this stuff in Flash" as an argument against WebAssembly or, uh, any other technology. Flash is a 3rd party, closed source, proprietary plugin. Aspiring to replace it with something slightly better at the very least is worth doing.

All else being equal, would you rather have a .swf binary blob that depends on Adobe, or a WebAssembly binary blob that follows a well defined internet spec and independent implementation by multiple authors?

<comment><USER18> There are non-Adobe Flash players. The format is well understood. Some commercial video games use Flash for the non-3D GUI. They don't use Adobe's player, but they use Adobe's authoring tools, which are graphics-artist friendly.

[1] [http://lightspark.github.io/](http://lightspark.github.io/) [2] [https://en.wikipedia.org/wiki/Gnash](https://en.wikipedia.org/wiki/Gnash)

</comment></comment></comment></comment><comment><USER20> Minor correction: you can use UDP, or at least networking with UDP-like characteristics (unreliable, packet based, low latency).

This is because there is a WebRTC data channel you can use that uses SCTP. Emscripten emulates UDP on top of SCTP (which should be just a few bytes overhead per packet). Emscripten also includes the excellent enet networking library which let's you multiplex multiple reliable and unreliable channels on the same connection.

It's kind of a crazy multi-level hack (enet->UDP->SCTP->UDP->C++->JavaScript) but it works well.

<comment><USER7> But this would require the remote peer to utilize the same protocol encapsulation (UDP->SCTP->UDP), wouldn't it? This means due to browser limitations you can never directly speek an existing UDP/TCP protocol besides HTTP/WS.

<comment><USER20> Yes that's true. I think it is not too much of a limitation though. The major use of UDP is games and if you're writing a game you control the whole protocol anyway.

</comment></comment></comment><comment><USER21> Throwaway to vent. Ignoring the current technical positions (there's less than meets the eye). WASM is a vanity project by consummate politician working the promo committees. I'm tired of these types ruining the company I've worked for over a decade. Bourbon at the desk for peer massaging cocktails. Flying around for face team with people in nice places. Blowing smoke on standards committee BS. It's not about delivering for the company it's about the next grant.

</comment><comment><USER22> ...first using Visual Basic Script, JavaScript, ActiveX and Java, then basically just JavaScript. This half-baked language grew from a quick addition by Netscape to keep up with the competition into the center point of the modern web, being forced into roles it was never meant or designed for.

I don't see how JavaScript was designed to "keep up with the competition". Java came first, as part of Sun's HotJava browser, and later as a native plugin for Netscape using (I think) their proprietary NPAPI (though it might have simply been welded into the client, to support the next part). Then JavaScript was built by Netscape, with direct access to Java via LiveConnect. Finally, Microsoft, to support all the new features being dumped into the web by Netscape, added VBA to Internet Explorer as "VBScript" with a separate JavaScript-compatible-ish syntax called JScript. (Later, under pressure from Microsoft, Netscape worked with them to file an international standard.) JavaScript was not a way to catch up: it was a game changing move, and one of the great innovations of Netscape (as opposed to most of the stuff they either implemented or refused to implement, which led to their delaying CSS and forcing HTML presentation markup on the world).

</comment><comment><USER23> To be fair, if you have a good read of [https://github.com/WebAssembly/binaryen](https://github.com/WebAssembly/binaryen), you'll find the OP is pretty much on the ball; there's no easy way to compile to web assembly from (language here), and even if you do, there isn't really any easy way to run the result other than compiling it back to asm.js

...and yes, asm.js certainly has its fair share of limitations, and problems. but...

        I'm more interested at this point to see what other approaches to create
        the new web-based apps of the (near) future have been dreamed up by people
        so far. Something which does not involve abusing a flawed scripting language's
        runtime to do unspeakable things.

Like what?

What people?

Who's _actually_ working on _any_ other solution to this problem?

I get that Web Assembly isn't going to solve your need compile a C++ application to run in a browser without modifying it; but... I'm pretty sure that's not the goal.

The goal is to have some way of making extremely high performance parts of a web application, without resorting to an unsafe propriety vendor plugin or breaking backwards compatibility; and (possibly) allowing a new category of 'compile to js' languages to exist that can target web assembly rather than javascript, which (may, arguably) be easier to implement, technically.

What's the alternative? Web components? That's been a great success. The polyfill only occasionally destroys firefox and its _technically not possible_ for it to implement some of the features, so lots of people (ie. no one) is using it.

Dart? I'm not even going to talk about that.

Another browser plugin? Native apps and no more web apps at all?

Come on, it's easy to complain, but unless you've got a tangible alternative, cut them a bit of slack.

The web assembly stuff is coming along pretty darn fast, and lots of players are involved. It'll be a big deal before you know it; I think it's pretty fair to be excited about it.

<comment><USER24> I have certainly given this a great deal of thought. What is needed? How could we get from here to there?

People have often called for a ByteCode vm. This has been rejected over and over again. Bendan Eich in particular has repeatedly argued against bytecode in ways I found to be quite disingenuous. He has variously used Java to imply one bytecode being unsuitable means all bytecodes are unsuitable, or suggested if you want bytecode to make a bytecode VM in JavaScript (even using DCPU16 as an example), or that it is too late for a new standard, or that. No bytecode would be accepted by all browser makers (which I took to mean 'not on my watch'). I have yet to find the arguments against a bytecode VM to be convincing.

I think it would be well worth making a few different candidate bytecode VMs to give the platform a chance in the field. Such VMs are not hard. In the case of the DCPU16 (A imaginary CPU created for a project Notch was working on) it took less than 48 hours for emulators to appear and just under a week for the first compiler. A VM that occupies a similar space to Javascript has its own particular needs.

In a different direction Maxime Chevalier-Boisvert argues for a Control Flow Graph representation [http://pointersgonewild.com/2015/08/02/javascript-is- the-c-o...](http://pointersgonewild.com/2015/08/02/javascript-is-the-c-of-the- web/) Which if the Webassembly approach is to be taken this does seem more sensible than a AST.

The cooperative multitasking aspect of JavaScript has been a bugbear for all too long. I have argued for a preemption mechanism of some sort that would fix the dependency on a main loop event pump. I have half a specification written as a proposal, but I suspect people will fight the idea tooth-and-nail.

Ideally a solution should encompass concurrency as much as preemption. I kind of like the idea of A bytecode VM with an arbitrary number of virtual CPUS. A fork instruction to launch a new CPU. The VM host is free to run them on however many actual cpus as it sees fit.</comment></comment>


When Women Stopped Coding in 1980's: As we repeat the same mistakes - <AUTHOR> http://computinged.wordpress.com/2014/10/30/npr-when-women-stopped-coding-in-1980s-are-we-about-to-repeat-the-past/

<comment><USER2> Am I the only one that feels like insisting that every occupation has 50/50 gender representation is an odd policy goal? Can't there be things that women prefer and things that men prefer and that be okay?

<comment><USER3> I don't think the point of these pieces of journalism (the podcast and this response) are advocating 50/50 gender split in CS. It's examining a phenomenon where females fell off the map, and it is trying to understand the factors that went into that shift.

It's pretty clear that in today's society women make up a smaller portion of the workforce in general, so achieve a 50/50 split in all professions is simply impossible. And there may be anomalies in some professions where one gender is more represented, but there is no inherent reason that men should outnumber women so greatly in a profession like computer science. It's important to examine the impact social influences like marketing and advertising, etc. have.

Rather than caring what a gender quota number says, and trying to argue that it's unfair to women, it's exposing the underlying societal factors, thus suggesting a direction for change.</comment></comment>


Redesigning the Redesign of Reddit - <AUTHOR> https://medium.com/@fairpixelsco/redesigning-the-redesign-of-reddit-in-60-minutes-ddddda1d4374 <comment><USER2> Their re-re-design is a slight improvement but much of my issue with the Reddit re-design isn't simply the initial layout (although the excess whitespace is irksome) it is many things:

\- Slow / high CPU usage

\- Comments don't /really/ open. Instead it is this strange modal-like experience with these "suicide" dark bars at either side that redirects you to that subreddit or the reddit homepage losing your position on the comments.

\- Tons of whitespace everywhere.

\- Infinite scroll

\- More visual distractions ("Trending today", larger image ads, more embedded ads, the footer is now on the right instead of bottom, etc).

\- Too much emphasis on stuff that isn't important. Content should be king but they list "r/AskReddit •Posted XXXYYYY 12 hours ago" first so you have to visually skim passed it, annoying Join button (which is a solution to a non- problem), and a comments button that does the same thing as just clicking the title (rather than taking you to the actual content).

I could go on.

<comment><USER3> Totally agree on it being slow. Displaying a list of links should not be slow. Too many design and dev teams try to make these interactive JS apps in the browser that are terribly slow and anti-user.

</comment></comment><comment><USER4> I'll stop using Reddit when they inevitably remove old.reddit.com

<comment><USER5> I made the same decision the other day. The redesign is such a pain to use that it's absolutely unbearable.

</comment></comment><comment><USER6> > _Don't turn redesigns into a revolution that alienates your core users_

I've been a heavy Reddit user for 7 years (still am) and alienated is exactly how I feel about the desktop redesign. I rarely use Reddit on mobile, I'd say 99% of the time I use it via the desktop interface with RES.

It's like a different company took over a product they didn't understand, completely lacking skills to accomplish their goals. It's wrong on a design level, on a UX level, and on a technical level.

I absolutely love using Reddit and I've even considered making my own UI and feed it via their public API.

<comment><USER7> I currently use a plugin to redirect to old.reddit.com[1] and I _think_ I read somewhere that reddit does not plan to shut that down any time soon.

[1][https://addons.mozilla.org/en-US/firefox/addon/old-reddit- re...](https://addons.mozilla.org/en-US/firefox/addon/old-reddit-redirect/)

<comment><USER6> If you are logged in there is a setting to use old Reddit. When the redesign was launched it wasn't very consistent, but it has been working fine for the past couple of months.

</comment></comment></comment><comment><USER8> The redesign of the redesign isn't bad, but it needs more contrast. The light grey on the white background is too hard to read and the light grey borders around key elements do nothing to separate them out visually.

Is this a new design trend? I'm seeing the lack of contrast on a site being seen more and more as "subtle" as if that were a good thing.

</comment><comment><USER9> Compact != cluttered

I like things dense for better use of monitor space, be it Gmail or Reddit. All that dead space is wasted space, minimalism or not.

</comment><comment><USER10> Removing the preview button will probably hurt functionality. Also if you're going to make things bigger anyway I'd make the thumbnails bigger as well (not that it will matter much for the text-based subreddit).

Also changing the upvote / downvote arrows won't help adoption, even the redesign didn't dare do that.

</comment><comment><USER11> This approach is from a designer perspective and not an engagement/user retention perspective.

<comment> V-eHGsd_ you say that like it's a bad thing.

trying to game user engagement/user retention numbers are what get you things like notification requests when you visit random websites (I'm looking at you, website for arbitrary midwest nbc affiliate).

I posit that the "stickiness" factor of website is a bad measure of how "good" its design is.

</comment></comment><comment><USER12> Looks a lot like the classic view, with more minimalism and whitespace. And lacking the sidebar.

</comment><comment><USER13> Can't you overcome this "problem" by simply changing the view?</comment>


Ansible 1.9.0 Released - <AUTHOR> https://groups.google.com/forum/#!topic/ansible-project/G7XyPMl1tNc <comment><USER2> Have spent the past few months heavily working with Ansible and would totally recommend it for anyone wanting simple configuration management and orchestration. The barrier to entry is extremely low, because it uses ssh and there are no remote agents, so you can get going pretty quickly. I have an introductory screencast on in @ [https://sysadmincasts.com/episodes/43-19-minutes-with- ansibl...](https://sysadmincasts.com/episodes/43-19-minutes-with-ansible- part-1-4)

<comment><USER3> The other thing that should be noted is that ansible feels like (shell scripting)++. Other competitors I've used needed a much heavier cognitive load to get started.

<comment><USER4> > The other thing that should be noted is that ansible feels like (shell > scripting)++. Other competitors I've used needed a much heavier cognitive > load to get started.

Having used Chef, Puppet, and Ansible, this is exactly why I prefer Ansible for all my projects now.

If you can write a shell script, you can write an Ansible playbook. It won't be a great playbook, and you get benefits from using their modules instead of shell commands (like idempotency). But you don't have to worry about learning a new DSL just to do write a basic playbook or tweak an existing one.

As a functional programmer, I understand the benefits and appeal of declarative syntax. Unfortunately, systems programming is the one place where it's _really_ hard to be 100% declarative, because systems are inherently all about state[0].

[0] At least in 2015 - perhaps things will change as we move toward better containerization models

<comment><USER5> > Having used Chef, Puppet, and Ansible

The only comparable system that I believe is a match for Ansible is SaltStack.

> As a functional programmer, I understand the benefits and appeal of > declarative syntax. Unfortunately, systems programming is the one place > where it's really hard to be 100% declarative, because systems are > inherently all about state[0].

Have you looked into Nix/NixOS/NixOps? I think they have a really good approach to "functional configuration mgmt".

> perhaps things will change as we move toward better containerization models

I agree. When using scrappable VMs/containers (deploy to a new one, then scrap the old one) that are build from a description, it is in some ways quite close to approach in the Nix-camp.

</comment></comment></comment></comment><comment><USER6> Love Ansible for its simplicity. For some reason it "just clicked" whereas I really struggled with Puppet / Chef / or old-school shell scripts. (That says more about me than Puppet and Chef)

For me, YAML files and fantastic documentation made more sense than the DSLs of the other two.

Currently we use it to setup our 12-factor app in production, staging, and development environments. (Django, Elasticsearch on Ubuntu)

</comment><comment><USER7> I'm really happy they now support "svc", part of D. J. Bernstein DaemonTools [1]. This one really is a killer feature, I'm excited to use.

I'm far closer than ever to not use ssh on my server manually.

1 : [http://cr.yp.to/daemontools.html](http://cr.yp.to/daemontools.html)

</comment><comment><USER8> Started using Ansible last year, I use it to create up to date base images for AWS autoscale groups and to quick set up personal development environments for other developers, and have playbooks for creating all my security groups so I can version control them. Highly recommended. I tried other tools but by far and away Ansible was the easiest to learn and use with no loss of functionality.

</comment><comment><USER9> One of the changes hinted at here is that you can now specify that a task will always run using the 'always' tag - handy for things like ec2_facts which was a long requested feature ([https://github.com/ansible/ansible/issues/3157](https://github.com/ansible/ansible/issues/3157))

</comment><comment><USER10> Ansible is really great, but for reasons some people might not think about.

Ansible has support for powershell, which is essentially now the backend of windows. (your new servers are gui-less right?) Powershell is also not a bad language at all, and while for those of us that are bash/zsh/fish natives, it will take some getting used to, I find it a really powerfull and more intuitive way to interact with windows, even if it is _very overly majorly verbose-verbose_.

Being able to work in my very mixed environment (Solaris/OSX/Linux/Doze, etc) via a central ansible server group is awesome.

<comment><USER11> Is it a problem for you that it requires PowerShell 3.0?

I wish I could use ansible with all those XP workstation a work.

<comment><USER10> No it hasn't been a problem so far, just an update that gets pushed via the normal pre-ansible methods and requires a restart. Regarding XP... unless it's embedded get that shit outa there!

<comment><USER11> > Regarding XP... unless it's embedded get that shit outa there!

We're also stuck with Windows Server 2003 for now :(

I grew up thinking that the technology move so fast...

</comment></comment></comment></comment><comment><USER12> I've learned with Ansible never to be quick to update. There's always something that will break. I've been on 1.7.2 for a while, and will probably think about updating later this year.

<comment><USER13> S3 module and something else was b0rked in this release that I ran into last week (can't remember atm). Very annoying.

<comment><USER14> Yes, very sorry about that. The 1.9.1 rc1 will be out today, which will address this.

</comment></comment></comment><comment><USER15> Do they have any plans to support python3? I want to use it on Arch and Ubuntu. FAQ says they will address this issue by python3 becomes mainstream, but what does the mainstream exactly mean? When RHEL set python3 as default? Python2 maintenance continues until 2020, so seems have to wait for more several years.

<comment><USER14> Hi ynak, we're planning on supporting py3 in the core engine with the v2 codebase. As for modules, we're still working on the best possible solution there, since we do need to continue supporting python 2.4 for the foreseeable future.

<comment><USER16> Why would you need to support Python 2.4? Haven't that been dead for for like 10 years?

<comment><USER14> There are still a lot of RHEL/CentOS 5 users out there, which run python 2.4. While py3 is moving forward, the number of users stuck on 2.4 is still considerably larger, and we will continue to support that until such a time as it's no longer the case. In the meantime, we are exploring options so that we can help those on newer distributions work by default in the same way.

</comment></comment></comment></comment><comment><USER17> OK I am gonna ask the obvious question here: How does Ansible compare to Saltstack?

<comment><USER18> My own experience, which is fairly limited, is that Ansible is much simpler, "agent-less" (it uploads code as needed and remote executes it over SSH) and a mix between declarative and imperative in nature (a lot of the modules require you to use semaphore files or equivalent for idempotence.) Orchestration is pretty much built-in, including rolling deployment/restarts. Performance can be lacking on large cluster due to the many network round trips and lack of agent. Agents can be faked by rsync'ing config and running ansible in local mode. You can use ansible to do it and ansible is a great Fabric replacement.

Salt is much heavier to setup. Has explicit agents ("minions") and a server ("Salt master") whereas ansible can be run from anywhere as long as SSH connection exists. Salt maintains metadata ("grains") about the remote hosts, ansible gathers whatever data it needs on demand. Salt is heavy on the custom terminology and concepts. You have to work with the metaphors. Salt states are much more declarative.

Both make use of YAML for a lot of things.

My impression was that Ansible is a far better tool for smaller environments with, say, less then 20-50 hosts being managed and the learning curve is surprisingly shallow. When I got it to work, I had more difficulty getting Vagrant to like Ansible than Ansible to setup a complicated stack (Islandora for the curious.) The semi declarative nature of the Ansible modules was easy to work with but getting idempotence was actually a bit of a pain.

I've not fully setup Salt because of the level of effort required. It's comparable to a full Chef setup.

<comment><USER19> Salt has an agent-less option as well.

<comment><USER20> Indeed it does. Salt-SSH: [http://docs.saltstack.com/en/latest/topics/ssh/](http://docs.saltstack.com/en/latest/topics/ssh/)

It was recently declared production-ready, but it isn't intended to be an alternative to the standard Salt fileserver. Seems like it's more of an easy way to bootstrap machines.

</comment></comment></comment></comment><comment><USER21> 1.9.0 includes convenient new gluster_volume and haproxy modules (among others) and will also update its DigitalOcean integration to use the v2 API shortly (in 1.9.1 - it's currently using the more annoying v1 API).

If you want to use the latest and greatest, it's easy enough to set up Ansible from source. Otherwise, use brew, apt, yum, or pip (they're all up to date).

P.S. 1.9.0 was released on Mar. 25th, I think there's an older thread on it somewhere around here.

</comment><comment><USER22> Nice maintenance release with a few improvements. I'd say the core of Ansible's brainpower is focused on v2 which will have significant changes (easily available today if you want to try, check the v2 dir).

</comment><comment><USER23> Does there exist a good playbook for setting up a production-ready mailserver? Thanks!

<comment><USER24> [https://github.com/al3x/sovereign](https://github.com/al3x/sovereign)

<comment><USER23> THIS! thanks!

</comment></comment></comment><comment><USER25> A comparison of notable free and open source configuration management software: [http://en.wikipedia.org/wiki/Comparison_of_open- source_confi...](http://en.wikipedia.org/wiki/Comparison_of_open- source_configuration_management_software)</comment>


Portable Cloud Programming with Go Cloud - <AUTHOR> https://blog.golang.org/go-cloud <comment><USER2> Hey ho. I worked on this project.

The majority of the team is in SF for Google Cloud Next to present this. I'm about to hop into the car to head up myself to watch, so I can do a little AMA throughout the day. Reply to this to make sure I see your question!

Here's a question I've already seen:

> Is this a Google project or a Go project?

It is a project led by the Go team, and we are very aware of our responsibility to be cloud provider neutral. At the same time, while the project is so new and evolving so rapidly, we need to have working examples that we can change atomically in a single repository (atomic changes necessary for rollbacks and such). We don't want to have cloud provider-specific code in the Go project, so the code is currently sitting under the Google GitHub org. When the interfaces to different products stabilize, the intention is to graduate them up to the Go GitHub org. Then anyone can code implementations to that interface for whatever cloud they like in separate repos, similar to the way `database/sql` is structured. The cloud provider-specific code will always live outside the Go project.

But things are very new, so change is possible.

<comment><USER3> > we are very aware of our responsibility to be cloud provider neutral

Yet, Azure support is listed as unplanned.

The language could mean that this is not going to be planned. The fact that y'all have not worked with Azure Go folks to get this moving is something to ponder.

A reminder that Go is a Google language and isn't vendor neutral?

<comment><USER4> PM for Go Cloud here (and poster of the Azure feature request).

"Unplanned" on the issue tracker just means we haven't assigned it to a sprint milestone for the team yet.

Azure and more clouds are very much in the works. As an open project, there are many approaches and we're open to all of them.

One other point: since Go interfaces are implicitly fulfilled, anyone can write and share implementations of Go Cloud for new providers or custom services without asking anyone for permission. If you take a look at the implementations we've provided, you'll find it's actually rather easy.

More to come.

<comment><USER5> Hi PM guy. If project is to remain independently cloud-gnostic and people file a lot of bugs and pull requests it'll definitely help Google or Alphabet or whatever deliver that k8s abstraction y'all've workin' on. That's great for you.

My my question is, what if developers want access to innovations in specific cloud providers, such as reduced redundancy storage on S3? Wire up or own provider? Will there be some sort of community-provided provider registry or will we be grepping awesome lists on GH? Are providers extendable in any way?

Thanks and have a sunny day.

<comment><USER2> This is a great question.

The main goal of Go Cloud is that the abstraction is not leaky and that you don't get access to specific features in the way you are describing in the application itself.

Now if the specificity of the thing you want happens at provisioning time but the API is the same (e.g. choosing to use Aurora on AWS vs standard RDS), then there's no problem. Go Cloud doesn't need to know about that.

If the API changes too, then that's a much different thing, and gets back to the leaky abstraction which we want to avoid. If you can't simply wire new providers to your application code and have it Just Work, then we've done our job wrong.

But remember that it's all Just Normal Go, there's no magic here. It's just standard Go. If you want to write an app that ties itself to something specific on some cloud you can; just write the code you'd write now. But that necessarily means you're tied to that product.

<comment><USER6> Contributors could also add drivers that not only fulfill your Blob interface but add features that might creep into multiple services. For example, someone could contribute a SuperBlob that fulfills Blob and also adds conditional writes, which GCS supports. On the app side, if they want to check if some feature is available that speeds up operations, they could then see if the returned Blob is also a SuperBlob and if so, perform the more optimized approach.

</comment></comment></comment></comment></comment></comment><comment><USER7> Maybe it's a biased and distorted perception that I have, but Go seems to be the most consistent and unsurprising language I've used, and I mean this positively. I haven't written any Go for over a year since my current job mostly uses Node, but I feel immediately comfortable jumping in to the examples in this blog post. I don't think that I'm explaining what I mean very well, but it's something I don't think is so true for Node/JS and other languages I've used.

<comment><USER8> For me the big surprise is that we still have languages where we have to write things like

      func setupBucket(ctx context.Context) (*blob.Bucket, error) {
          sess, err := session.NewSession(&aws.Config{
              Region: aws.String("us-east-2"),
          })

full of ( ) { } * and & as if we were still in the 80s. So Go is a very surprising language, but this is highly subjective. No hard feelings.

<comment><USER9> You're right, it is dependent on your perspective. Go is intended to be unsurprising to developers who want to just be able to look at code and have a good idea of what it does. Punctuation is very useful to get rid of ambiguity.

Contrast this with a language like Ruby which tries very hard to make punctuation optional, and often ends up with ambiguous cases where you aren't 100% certain how the interpreter will parse some code and so you end up throwing in all the punctuation anyway.

</comment></comment></comment><comment><USER10> I like how Google tries to masquerade their corporate goals behind the 'portability' banner. Google Cloud is in a distant third place behind AWS and Azure, so ofcourse they don't want developers to have tight coupling to their competitors.

This portable cloud strategy is a mirage. I haven't seen anyone migrate providers easily (we tried in my last company). In reality, you have to break the cloud agnostic abstraction to leverage provider specific functionality. And then you are stuck with unmaintainable mess of 'cloud agnostic' APIs mixed cloud specific APIs.

<comment><USER3> Note, Azure support is filed under "unplanned"... [https://github.com/google/go-cloud/issues/76](https://github.com/google/go- cloud/issues/76)

Interesting that the #2 cloud provider is listed as unplanned in a library coming out of the Go team.

<comment><USER4> See: [https://news.ycombinator.com/item?id=17604358](https://news.ycombinator.com/item?id=17604358)

</comment></comment></comment><comment><USER11> Am I the only person not excited by this? It seems to be based on the idea that you can just paper over the chasms between vastly different implementations. Putting aside the fact that the differences are important and you can't ignore them, doing this well is simply not scalable. How could it ever be all of: comprehensive, correct, up to date, elegant?

<comment><USER12> You're not alone.

This is like those DB abstraction layers because "we need to change DB", but in the end almost no one doesn't the products lifetime.

Also given that most of our clients don't use these fashionable cloud APIs, rather their own infrastructure, makes also not that much relevant to me.

</comment></comment><comment><USER13> My understanding about a cloud provider lock in that it is a well thought-out, conscious decision (at least it should be) and after you made that step, you can use the specific services of the given cloud provider and you never move out.

Are those hybrid/mixed cloud solutions or move between cloud provider viable or that common?

Is there anybody went through a huge cloud migration which went well?

If you need to move, there are huge amount of data you have to move for example between S3 and Google Cloud Storage, is that even possible to do beyond an early stage? I can't imagine.

</comment><comment><USER14> I'm working on a new kind of container that allows for lambdas with very-very low latency. (Suitable for running a game loop.) This is absolutely awesome! Programming against the auto-generated AWS golang APIs is pretty painful. It works, but it's not idiomatic and overly verbose. I'm going to give it a try and see if switching to GCP is that easy.

<comment><USER15> Have you looked at this: [https://www.usenix.org/system/files/conference/atc18/atc18-o...](https://www.usenix.org/system/files/conference/atc18/atc18-oakes.pdf)

</comment></comment><comment><USER16> I like to see how Go seems to getting some traction within Google. For years, I had the impression that Google was more Java/JS/Python driven and I was wondering why they weren't using their own language for more projects :-D

<comment><USER9> Google is actually C++ centric - every other language is a bit of a "second class citizen" when interacting with infrastructure.

Go is still new and Google is "old", so there is surprisingly little Go code at Google - it doesn't make sense to rewrite critical infrastructure just because you have a shiny new language.

The derivative is positive though, and slowly Go is being used for more and more new development.

<comment><USER12> I can assure you that on Android world C++ feels pretty much "third class citzen".

<comment><USER17> Yep. Google has built multiple ecosystems and they each have their own preferences. The grandparent was talking about Google's internal, server-side ecosystem. People working in that area sometimes assume that's it's the default.

Client-side development is a whole different thing. It's fragmented between browser, Android, and iOS. (And each of those is further fragmented, with multiple languages available.)

</comment></comment></comment></comment><comment><USER17> Interesting that they built a new dependency injection framework, much like similar things in Java. I guess this doesn't replace Context, though?

[https://github.com/google/go- cloud/tree/master/wire](https://github.com/google/go-cloud/tree/master/wire)

<comment><USER18> Doesn't replace context, and neither is it alone in terms of being a DI library, [1].

[1] [https://github.com/uber-go/fx](https://github.com/uber-go/fx)

<comment><USER19> As a Java engineer, I really missed DI in golang. Then I found fx.

Once I wrapped my brain around fx, I really liked it and used it heavily in a project I wrote. It was especially good for initializing 'things' of the same 'type'. Like a bunch of controllers for a web app.

One nice thing about fx is that it does not rely on code generation (uses reflection instead). I'm very curious what other features wire has over fx.

</comment></comment></comment><comment><USER20> I wonder what kind of monitoring and alert system must exist if any cloud provider changes their SDK or APIs (signature, logic, capability etc.) upstream while your go binaries are in production. Did Google manage to get cloud providers on board to register and update a 1 to 1 match between the upstream api and the go cloud api?

Secondly on the article's mention on multi cloud usage, you would need to be a pretty large place to need (or even bothering to assess and convince yourself that you need) to use multiple cloud providers at once. Just learning and tweaking settings in the cloud providers GUI console is half the battle won sometimes.

Saying all this, this, together with the data portability announcement, it is definitely great for competition and going to bring great resilience in your code base to be SDK agnostic.

<comment><USER21> I don't think cloud providers would just change their SDK or APIs without notice. It will break anyone using their SDK, not only go-cloud.

For your second point, it's normal for small startups to shop around and pick the cloud provider that's more suitable for their needs. For example on my last job at a small startup, we switched from AWS to GCP for cost reasons, and I implemented an abstraction (similar to go-cloud's) between S3 and GCS because of that.

<comment><USER20> They never change over the course of say 3 years? 5 years? If it changes frequently that's great - someone could be put to task to monitor. If it changes very rarely, you will have a surprise outage although I am guessing debugging and fixing it would not be an issue unless you have SLAs you need to keep up with.

<comment><USER21> By "change" I mean "breaking change". Backward compatible changes doesn't matter in the original question.

</comment></comment></comment></comment><comment><USER22> This is tempting in the same way ORMs were once tempting. But just like with ORMs, this is solving the problem at the wrong abstraction level.

</comment><comment><USER23> Seems like a very useful library. Any similar libraries for other languages?

<comment><USER24> Isn't this just centralizing the cloud provider SDKs? Instead of AWS, GCP, Azure designing their own SDKs, they have a common contract to adhere to. I'd imagine as the cloud becomes more mainstream, you'll see similar support in Java and .Net (a System.Cloud package for example)

<comment><USER25> It looks like it, but think of the power. If you write your app for S3 and Amazon raises their prices 100x you can be running on GCP in no time. Of course, you just create interfaces for your data model and implement them with your favorite service, but nobody has time for that.

<comment><USER26> In this specific case you'd already be able to do that, since GCP's Cloud Storage service supports S3's API.

[https://cloud.google.com/storage/docs/interoperability](https://cloud.google.com/storage/docs/interoperability)

</comment></comment></comment></comment><comment><USER27> ironically terraform is already written in golang.

[https://github.com/hashicorp/terraform](https://github.com/hashicorp/terraform) Go 96.1%

<comment><USER28> Terrafirm isn't provider neutral. It is just a declarative wrapper for cloud provider APIs. Code using one provider is not easily translated to another.

I do think it's an excellent configuration management and provisioning tool, but Go Cloud solves a different problem.

<comment><USER2> Yes, we are solving a different problem. Terraform is about provisioning resources, Go Cloud is about interacting with them.

We actually use Terraform for provisioning in our samples, and we see the two working hand in hand.

</comment></comment></comment><comment><USER29> Even though this is nothing but a centralized client-side libraries, it allows Go developers to live in a multi-cloud environment sooner.

I am pretty excited about it.

</comment><comment><USER30> I bet y'all would enjoy reading the article after installing this Chrome Extension [Cloud To Butt Plus]([https://chrome.google.com/webstore/detail/cloud-to-butt- plus...](https://chrome.google.com/webstore/detail/cloud-to-butt- plus/apmlngnhgbnjpajelfkmabhkfapgnoai)).

</comment><comment><USER31> Simple NCSA-style logging webserver. So important! I can't believe this wasn't part of the standard lib.

</comment><comment><USER32> Oh no, it comes with its own dependency injection framework. This is just bad, non-idiomatic Go.

</comment><comment><USER33> Package list with dependency graph @smallrepo.com

[https://smallrepo.com/repos/github.com/google/go- cloud](https://smallrepo.com/repos/github.com/google/go-cloud)

</comment><comment><USER34> Is this a Go-flavored version of something like [https://jclouds.apache.org/](https://jclouds.apache.org/)?

</comment><comment><USER35> Will this compete directly with something like Terraform?

</comment><comment><USER36> How is it different from Pulumi([https://www.pulumi.com/](https://www.pulumi.com/))?

</comment><comment><USER37> Disgustingly ingenuous! Any language can be used to implement the factory design pattern.

</comment><comment><USER38> Is this the equivalent of Terraform +Boto3 in the python world ?

</comment><comment><USER39> Why should I learn go and use go cloud over AWS SDK?

<comment><USER40> They are trying to promote portability.

<comment><USER41> Looks like they're trying to promote ease of moving customers from AWS to GCP to me but sure.

</comment></comment></comment><comment><USER5> It took us a while to get here. But it appears as if we've finally recreated the guestbook. And now it runs on someone else's machine.

</comment><comment><USER42> Why is Google advertising its own product through official golang blog? It looks very amateurish.

<comment><USER7> How so? Go Cloud works with AWS and soon others. That seems pretty mature to me.

<comment><USER43> Because it's not a Go project, it's a Google project[1]. It's like Apple posting new iOS features on the Swift blog, e.g.

[1] [https://github.com/google/go-cloud](https://github.com/google/go-cloud)

</comment></comment></comment><comment><USER44> err, are you not nil ? err, are you not nil ? err, are you not nil ? err, are you not nil ?

err, speak to me...

<comment><USER44> I need one more downvote :)</comment></comment>


Is Sugar Really Toxic? - <AUTHOR> http://blogs.scientificamerican.com/brainwaves/2013/07/15/is-sugar-really-toxic-sifting-through-the-evidence/

<comment><USER2> This article shows how the fructose industry is defending itself. Mostly by confusing the issue.

The thing about fructose is that it is not by itself poisonous. The problem only comes about for refined fructose, such as that found in cane sugar and HFCS. In those cases, fructose overwhelms the liver and gets processed by wrong pathways which result in all kinds of problems. But if you eat fructose in the form of fruits and vegetables, your body has to take a while to break the fructose out of the fruit and vegetable cells. Thus, your liver only gets a steady trickle of fructose instead of a flood of it. As a result, the liver can process the fructose correctly. Furthermore, if you eat fructose with fiber, molecules from the fiber help the liver process more fructose correctly.

Knowing this, it is not difficult to construct an experiment that shows that fructose is not harmful. All you have to do is feed your subjects the correct form of fructose (i.e., fruits and vegetables). The experiment where subjects ate large numbers of apples and were perfectly ok was quite telling.

The other defense of the sugar industry is that it is not the sugar, it is the overeating. However, refined sugar causes the overeating. One of the results of processing fructose the wrong way is that the liver does not produce the hormones that are supposed to inform the brain that you are full. Thus, refined fructose causes overeating of sugar and anything else you happen to be eating with your sugar. Personally I know I eat much more fries if I eat them with ketchup and I will eat much more steak if I eat it with steak sauce.

The fat people and diabetics are being blamed for eating too much and lacking willpower. They may be partially to blame, but it is very hard to make the correct decision when your brain's own sensory mechanisms are being hijacked and tricked. It is very hard to stop eating when you are constantly hungry. But if you cut down on the sugar you will not be constantly hungry, and then you may find that you do not even need that much will power to cut down on your calories.

<comment><USER3> [http://www.alanaragonblog.com/2010/01/29/the-bitter-truth- ab...](http://www.alanaragonblog.com/2010/01/29/the-bitter-truth-about- fructose-alarmism/)

<comment><USER4> No, you don't understand. It's a _conspiracy_. Big Sugar. Cooked up in a lab, they probably cut it with cocaine and old vinyl records played backwards.

It can't possibly be something simple and emergent like "HFCS is cheap" and "people like sweet things".

</comment></comment></comment><comment><USER5> Everytime a nutrition-related article gets posted, people always submit stories regarding their own personal unscientific weight-loss successes. Most of the time I don't even think they've read the article.

That being said, I found the article interesting, but, as a biochem major, fairly unsurprising. Fructose and glucose are fundamental elements of our body's metabolism, and metabolism is a fundamental element to life. It's what gives your cells energy to do every single thing they do. That sucrose, a compound made up of a single fructose molecule bonded to a glucose molecule, is not detrimental to your health given reasonable consumption reaches "duh" levels of obviousness. Same is true of high fructose corn syrup, which actually just contains 55% fructose and 42% glucose, a negligible difference. So it seems the only detriment to your health posed by HFCS over sucrose is the anxiety you'll get by worrying about it.

Like someone else said "TL;DR: stop eating so much, fatty." In more practical terms, eat reasonably and lift weights and you'll be fine.

Edit:

Here's some science for you:

Energy in = Energy out + Change in Body Stores (fat or muscle)

Where "energy" is measured in calories. Laws of thermodynamics ain't nothin' to f with! [1]

[1] [http://www.bodyrecomposition.com/fat-loss/the-energy- balance...](http://www.bodyrecomposition.com/fat-loss/the-energy-balance- equation.html)

</comment><comment><USER6> Sola dosis facit venenum.

I didn't pay attention to my weight for a couple years, ate a lot of sweets and drank a lot of beer. Before I knew it I'd gained 30 pounds, and had a minor freakout. I decided to do three things--weigh myself every morning, stop eating sugar except for from fruit, and stop drinking. I ended up shedding 30 pounds in 90 days, and have kept it off for a full year. I didn't exercise or count calories in any way, in fact I probably upped my overall calorie consumption but I replaced the sugars with more complex energy sources like nuts. I'm not sure if it was cutting the alcohol, cutting the sugar, or both that did the trick. However, I've been letting myself have some alcohol for the past few months (wine, not beer) and haven't gained a pound since doing so, so my gut tells me it was the sugar. I definitely feel a whole lot healthier.

<comment><USER5> >I ended up shedding 30 pounds in 90 days, and have kept it off for a full year

>I probably upped my overall calorie consumption but I replaced the sugars with more complex energy sources like nuts

Unless you started exercising, these two statements are incompatible with one another (violates the first law of thermodynamics). What's more likely is you felt "fuller" from eating healthy foods and therefore consumed less calories.

<comment><USER7> The laws of thermodynamics do not preclude your body from ingesting something that has calories and shitting it out without actually doing anything with the calories. Your shit would just have more calories left in it, kind of like how a poorly made car might leak gasoline everywhere.

<comment><USER5> Your statement is only marginally correct, but mostly misleading to the point of being practically wrong. Depending on what you eat, your body absorbs 80%-97% of calories according to the following (simplified) equation:

Energy in = Energy out + Change in Body Stores [1]

Where "change in body stores" is, for all intents and purposes, either muscle or fat. So while going from eating 3000 calories of pure butter to eating 3000 calories of straight fibrous vegetables will show a modest difference in caloric retention, I guarantee you that's not the case here.

[1] [http://www.bodyrecomposition.com/fat-loss/the-energy- balance...](http://www.bodyrecomposition.com/fat-loss/the-energy-balance- equation.html)

<comment><USER7> The point is, don't gloss over things by making dumb statements like "it's impossible because of the laws of thermodynamics". The laws of thermodynamics don't preclude engines that either leak fuel or are fantastically inefficient in converting them to any particular form whether it be locomotion, electricity, or adipose tissue. If your point is that the human body is fantastically efficient at producing fat in ways that don't really vary, then prove _that_ point.

<comment><USER5> Please don't insult me like that without at least reading the article I posted, which directly supports the statement "it's impossible because of the laws of thermodynamics"

<comment><USER7> I'm not insulting you. The law of conservation of energy is insufficient to support your claim because your claim relies more on the particulars of human physiology than on the basic physics. If it were all down to physics, then my car would get fat when I put fuel in the gas tank and didn't drive it. But even though my car and my body are both governed by the same laws of physics, the details are different.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> The article takes the long winded approach to point out the rational argument about how to combat obesity that's been obvious all along: moderation. Laying the blame on sugar in general is a panacea; the problem more has to do with how efficiently sugar delivery has been engineered. Processed foods have made it so that you can eat a relatively small quantity of matter and get a huge amount of sugar (and fat).

Want to get healthy and lose weight? Cut the processed foods. If it comes in a box, don't buy it. If there are ingredients you have trouble pronouncing, don't buy it. Your body has evolved to know when you've had enough food (slowing down your eating will help too). But those foods that are designed in a lab have sugar and other "bad" stuff in disproportionately high amounts, so by the time you've eaten enough to feel full, you've eaten _way_ too much.

TL;DR: stop eating so much, fatty

<comment><USER9> _Cut the processed foods. If it comes in a box, don 't buy it. If there are ingredients you have trouble pronouncing, don't buy it._

I've reduced my diet to the following: apples, canned pineapple, pork steaks, canned corn, and tap water.

The advantage is that none of those contain anything artificial (except the tap water). The disadvantage is that probably no one else would be content eating only those things. But I've been forcing myself, because the alternative is empirically worse.

It's likely I'm just fooling myself. But even still, it's a huge stress relief to not feel bad about we eat.

<comment><USER10> Corn is very starchy and low-nutrient. I'd suggest swapping them with something green, like canned peas.

Still, I applaud your approach. I've been on paleo for about a year, lost a bunch of weight, and for a while I was basically eating the same 12 foods on a loop (eggs, bacon, coffee, lamb, shrimp, fish, broccoli, spinach, carrots, raspberries, dark chocolate, almonds).

<comment><USER9> It's almost impossible to find canned peas without added sugar, sadly.

Thanks for the list of paleo-safe foods!

</comment></comment></comment></comment><comment><USER11> This line...

> Considering that our cells depend on sugar for energy,

Is dishonest. In general parlance "sugar" refers to sucrose. Sucrose is a glucose bonded to a fructose.

Our bodies need glucose to live.

However they do not need fructose.

<comment><USER12> I've even heard a university nutritionist make the claim that sugar is just glucose. Some days I feel stupid; others, I feel other people are more stupid.

</comment></comment><comment><USER13> A great read on this same topic: [http://eatingacademy.com/nutrition/is-sugar- toxic](http://eatingacademy.com/nutrition/is-sugar-toxic)

"What I find frustrating about this debate is that most people yelling and screaming don't fully define the terms, perhaps because they don't appreciate them (forgivable) or because they are trying to mislead others (unforgiveable). The wrong question is being asked. "Is sugar toxic?" is a silly question. Why? Because it lacks context. Is water toxic? Is oxygen toxic? These are equally silly questions, I hope you'll appreciate. Both oxygen and water are essential for life (sugar, by the way, is not). But both oxygen and water are toxic – yes, lethal – at high enough doses."

</comment><comment><USER14> "Enzymes in the intestine split sucrose into fructose and glucose within seconds, so as far as the human body is concerned sucrose and high-fructose corn syrup are equivalent."

I'm not an expert by any means, but from what I recall that point is still widely contested.

</comment><comment><USER12> Yes sugar is toxic because of the metabolic by-products of fructose, which is similar to the by-products of alcohol. Both are known to make freshmen put on weight.

[http://www.youtube.com/watch?v=dBnniua6-oM](http://www.youtube.com/watch?v=dBnniua6-oM)

</comment><comment><USER15> "—a nutrition scientist at Archer Daniels Midland, a major food processing corporation—"

 _Facepalm_

<comment><USER16> And you have nothing to say about the content, then?

<comment><USER17> His comment says more about the content of the article than most of the other comments. An article about sugar funded by ADM is not an objective source of information, due to the very large conflict of interest.

<comment><USER16> Whether it's right or wrong is independent of where it comes from.

</comment></comment></comment></comment><comment><USER18> I am amazed by the number of people here claiming sugar is bad. I've been eating fruits, fruit juices, milk and sodas as the main part of my diet for a few months now. I've lost weight and I feel really really good (I was in a low carb diet before and always craving carbs and feeling awful).

I've been like you in the past. But instead believing in Lustig and others, I've kept reading scientific studies and the work of Ray Peat is much more consistent.

</comment><comment><USER19> I have found that reduced-carb and reduced-sugar diets are the best way to lose weight. I have been on "6 small servings with lots of lean protein and yogurt" and on keto-style diets (lots of animal fats, butter, and, almost 0 carbs). Both have resulted in significant loss of weight. I find that the keto-style diet gives me a very even energy throughout the day (probably because the body is slowly burning fat and there are no insulin spikes).

</comment><comment><USER4> Net caloric balance is still the best long term predictor of average body mass, regardless of dietary macronutrient composition.

[http://examine.com/faq/what-should-i-eat-for-weight- loss.htm...](http://examine.com/faq/what-should-i-eat-for-weight-loss.html)

In turn, obesity is a strong predictor of many diseases, regardless of other factors.

In individual cases unobservable "noise" can affect the rate of gain or loss vs the estimated rate given by subtracting an estimate (calories gleaned from an activities database) from another estimate (calories written on the side of the food packet).

But when you look at population BMI vs population calorie intake, it looks suspiciously like a perfect correlation:

[http://wholehealthsource.blogspot.com.au/2012/06/calories- st...](http://wholehealthsource.blogspot.com.au/2012/06/calories-still- matter.html)

Which is what we would expect from a basic acceptance of freshman physics. Energy and matter are conserved. No exceptions.

Singling out fructose as some kind of super-baddy doesn't work, for the simple reason that the population BMI-calories correlation appears in countries outside the USA. Only the USA has corn politics and only the USA has HFCS in the food supply in any abundance. Yet the rest of the developed world is getting fat on the same trajectory as the USA has.

<comment><USER2> The problem with refined fructose is that it contributes to you eating more because the liver cannot process it properly and does not send the "i am full" signals to the brain. Thus, it is in fact the reason why people have higher net caloric intake.

US style food is being exported all over the world. Sodas are sold all over the world. Obesity around the world is generally correlated to the level at which US style food culture is adopted.

<comment><USER20> Fortunately, in most of the world sodas use sugar instead of syrup. So it's not as bad as it could be.

<comment><USER21> Except it takes about 5 seconds for sucrase in your small intestine to hydrolyze sugar into exactly the same substances present in HFCS. So it doesn't matter. At all.

<comment><USER22> Most HFCS in use today is a mixture of 45% glucose / 55% fructose. Sucrose is 1 glucose molecule and 1 fructose molecule bonded together. If fructose is really the 'bad' thing here, then HFCS has more of it.

<comment><USER17> It can be even worse than that. Studies have found some HFCS to contain as much as 65% fructose.

</comment></comment></comment></comment></comment></comment><comment><USER23> is sugar toxic? Maybe, maybe not. I dont know.

What I do know is a diet low in sugar reduces cravings by a lot. Its a lot easier to lose weight when you don't feel hungry all the time.

</comment><comment><USER24> Betteridge's Law of Headlines at work.

> any headline which ends in a question mark can be answered by the word "no."

The article directly answers the headline in the negative.

> our cells depend on sugar for energy

The rest of the article is more intelligent but it's undermined by the link- baiting headline.

</comment><comment><USER25> The ironic part about the hour and a half talk "Sugar: The Bitter Truth" is that all the people who it could help the most all have sugar-induced ADD and won't be able to sit through it to understand it...

Anyways I hope this recent bump from HN allows Dr. Lustig to make the talk- show rounds again.

</comment><comment><USER26> Fructose (as in HFCS) goes through the same metabolic pathway as alcohol, so it's important to differentiate between fructose and glucose.

[http://www.youtube.com/watch?v=dBnniua6-oM](http://www.youtube.com/watch?v=dBnniua6-oM)

</comment><comment><USER27> I really hope not. I love sugar. It's also the only stimulant I can mete out in small doses that will keep me going without obliterating my concentration, as caffeine tends to do (disclaimer: I haven't tried cocaine).

<comment><USER28> I read about some research* regarding ego depletion and its relationship to blood glucose levels that was pretty interesting. Basically, they did a study with two groups of people. Both were asked to do some challenging problems requiring concentration, then both were given lemonade. One group's lemonade was sweetened with glucose, and the other with some artificial sweetener. The two groups were then asked to do more challenging problems. I can't recall the actual numbers, but the group that had glucose in their lemonade did significantly better on the second round than the other group, and the two groups were about the same on the first round.

The implication was that the brain uses glucose in its operation, and requires a certain level of glucose to function at full capacity. At least one cause of the brain fog we get after a full day's focused work is that we're low on fuel, which happens to be easy to fix. Unfortunately, it has other effects too that we might not want so much. I've been meaning to experiment on myself a bit with some glucose tabs after a long day of code, but haven't gotten around to it yet.

(*) I think that was in "Thinking, Fast and Slow" but I'm not certain now, too many similar books in between.

<comment><USER29> This test is flawed, as it doesn't have a "neutral group" \- a group that had neither sugar nor artificial sweetener. How can they conclude that the sugar made people do better, rather than the artificial sweetener making people do worse?

<comment><USER28> Agreed, at least from my brief description, which was a summary of a summary out of a book. I'd say it's more likely that it's my own retelling that's flawed, though I haven't read the actual study. They also didn't have a group which was given the same number of calories from a different source (as far as I know) so it's possible that eating a chunk of meat would have the same effect. What I thought was interesting actually was that they were able to demonstrate beneficial effects from intake of calories directly on brain function.

As I wrote that, I did remember a bit of evidence that the glucose was actually beneficial - namely that they measured performance on the problems over time. At the end of the first set, both groups were showing approximately equal degraded performance. Upon resuming on the second set, the group given glucose was back up to nearly the starting level of proficiency, while the group given no glucose was at the same level they stopped at on the first group.

</comment></comment></comment></comment><comment><USER30> Man. Sugar is the worst. Take it from me. I moved to the city the moment I turned 18, I didn't know much about cooking. Back in the 'burbs you'd be lucky to live within 10km of a grocery store. Downtown however, totally different story. I went NUTS with sweets and pizza.

I gained over 100 lbs in just under half a year. I was eating around 10k calories a day.

I then stuck to only these foods and have only been eating this the past couple years:

chicken

lean beef

kale + other greens

various fruit

cheese

That's it. No seasoning, nothing. I'm so much happier now. Better sleeps, better mood, better everything. My mood and days fluctuated like crazy when I didn't keep track of my diet.

I'd love to hear some opinions on the following talk from fellow HNers:

[http://www.youtube.com/watch?v=dBnniua6-oM](http://www.youtube.com/watch?v=dBnniua6-oM)

<comment><USER31> The link mentioned above is Robert Lustig MD's talk entitled "Sugar: The Bitter Truth". I found it very interesting and quite convincing, but beware that it's long (1.5 hrs) and you have to be willing to sit through a lot of biochemistry, since he goes through a bunch of cellular metabolic pathways in gory detail. If you don't care about the biochemistry, the parts about how everything we "know" about nutrition is based on shaky ground (e.g., the FDA's food pyramid, "fat in the diet is bad", etc.) is well worth watching, as is the history of how the amount of sugar in the U.S. diet has been dramatically increasing (e.g., the steady increase in the serving size of Coca Cola since 1915).

<comment><USER32> This is a great video. I watch it once in a while when I need to cut down on my ice cream.</comment></comment></comment>


DoubleDirect – Full-Duplex ICMP Redirect Attacks in the Wild - <AUTHOR> http://blog.zimperium.com/doubledirect-zimperium-discovers-full-duplex-icmp-redirect-attacks-in-the-wild/

<comment><USER2> I am waiting to play with zAnti's next version :-)</comment>


Thoughts on Competition for Early Stage Startups - <AUTHOR> http://www.jasonshen.com/2012/thoughts-on-competition-for-early-stage-startups/

<comment><USER2> Too many first-time entrepreneurs spend all of their time on ideation without realizing that ideation is a qualifier. It's execution that breeds real winners.</comment>


Ask HN: If you could do one thing for this site to get buzz, what would you do? - <AUTHOR> I am currently looking at ways I can generate more buzz/backlinks to my site in order to gain extra exposure.
There are some clever brains here on HN and plenty of people who have grown their sites this way... So, what advice would you give me for generating buzz to my site: http://betalyst.com
Look forward to seeing your replies! <comment><AUTHOR> Link to my site: [http://betalyst.com](http://betalyst.com) \- It if a football (soccer) betting tips/advice/stats website.</comment>


Rorschach Tests at the Nuremberg Trials - <AUTHOR> http://blogs.discovermagazine.com/neuroskeptic/2015/04/25/rorschach-tests-at-the-nuremberg-trials/ <comment><USER2> It's rather ironic that American psychiatrists should consider genocide to be the product of unusual minds (rather than, say, unusual circumstances). The Westwards expansion of their own country was based on the same principles as _lebensraum_ , and also involved genocide.

<comment><USER3> Both this and the fact the transcripts can't be used by experts to predict war criminals reinforce the obvious point that anyone can do horrible things, it doesn't require sick minds, it just takes faith in doing "the right thing".

<comment><USER4> Exactly. It's the same reason why so many religious nuts are willing to kill so many people. "They" have God on their side so how could they be wrong, they're doing the right thing.

</comment></comment></comment><comment><USER5> Why has the U.S. been killing hundreds of thousands of civilians in the Middle East for the past 15 years?

The sociopathic leaders of large organizations will do what is expedient, and the rank and file will do what they are told, or willfully ignore what is happening.

It takes an invading force to come in and establish that something was evil and clearly the work of madmen. My guess is that the nazis had perfectly normal brains, much like our own.

This exercise mostly just shows how foolish Rorschach tests are. I saw 2 dwarves high-fiving.

<comment><USER6> > I saw 2 dwarves high-fiving.

The fact that you saw two dwarves is indicative of a psychopathic mind obsessed with belittling others in an attempt to convince itself of its own adequacy. The high-fiving is a sign of childhood trauma caused by a lack of meaningful friendships.

This kind of "psychology" really is a pile of crap : (

<comment><USER7> I saw two elephants. I'm afraid I may be a misanthropist. :(

</comment></comment></comment><comment><USER8> Huh, the smear campaign continues even today? USA and Israel are as always saints which is why everything regarding WW2 I no longer trust.

</comment><comment><USER9> As a psychologist, I can tell you that with only one card out of ten for the whole test, Goering shows signs of being a plain psychopath (knowing what he did of course) while Hesse does have very serious psychological issues (even if I didn't know what he did). The Rorschach is able to tell you at least that. A standard criminal can come out normal on the Rorschach and pretty much every other test you throw at him, but a guy who shoots up an elementary school will not come out normal on the Rorschach. In reference to crime vs. normalcy, with nazi's Germany as backdrop, there is the very good Jonathan Littell, "The Kindly Ones."</comment>


How Apple Is Forcing Microsoft, Amazon, Google, and AT&T to Raise Their Game - <AUTHOR> http://www.xconomy.com/seattle/2010/01/21/friend-or-foe-how-apple-is-forcing-microsoft-amazon-google-and-att-to-raise-their-game/ <comment><USER2> AT&T raised/raising their game? As one of their customers, I don't see it. What I do see is a company that's milking a golden goose (US iPhone exclusivity) for all its worth, doing nothing to advance its customer's network experience as network performance degrades.

<comment><USER3> When I got my iPhone 3G in 2008 it was a rarity to see 3G. Now I get it everywhere with good signal. I realize AT&T has problems in some areas but it's not universal. They've definitely put some money into this market.

<comment><USER4> The skeptic inside of me says that this could have happened anyway. It seems reasonable to expect that telcos would heavily invest in their 3G infrastructure right now, iPhone or not. I have no actual data, but I would guess it's a 2:1 split. Two parts normal infrastructure investments, one part Apple (that one part seems a bit high to me, though, don't know).

</comment></comment></comment><comment><USER5> I love this:

> One anonymous source with knowledge of Apple was quoted in BusinessWeek as > saying, "Apple and Google know the other is their primary enemy. Microsoft > is now a pawn in that battle."

An "anonymous source with knowledge of Apple"? That could be me! Or you!</comment>


Most epic-failed startups ever - <AUTHOR> https://medium.com/standuply/my-darwin-award-for-epic-failed-startups-e5492f0e6eb7 <comment><USER2> While [https://en.wikipedia.org/wiki/Knight_Capital_Group's](https://en.wikipedia.org/wiki/Knight_Capital_Group's) failure was epic, I wouldn't call them a startup.

[https://en.wikipedia.org/wiki/Boo.com](https://en.wikipedia.org/wiki/Boo.com) spent £135 million in 6 months, scaled to 400 employees and went bankrupt in less than 2 years.</comment>


3-D Printing, robotics swing manufacturing might from China back to the U.S.  - <AUTHOR> http://www.forbes.com/sites/singularity/2012/07/23/the-end-of-chinese-manufacturing-and-rebirth-of-u-s-industry/

<comment><USER3> [ Disclaimer, I bought a 'Replicator' [1] from Makerbot so its the only one I've got 'first hand' knowledge ]

The 'hobby' ones are still very rough. Think Altair/IMSAI level of personal computer. The lack of a reasonable filler/support material (so that you can print 'voids' and later dissolve out the filler) means that a lot of obviously useful shapes are unprintable at the moment (horizontal tubes for example). But the writing is, as they say, on the wall. My instinct is that plastic printing will overtake injection molding for small run products in as few as 10 years.

The biggest challenge to robotics in the US market has been organized resistance. Ford had the most productive auto plant in the world, in Brazil, because it was mostly robotic. They tried, and failed, to get it built in the US. But the depth and length of this recession has changed the politics on that to the point where 'any' jobs trumps 'no' jobs, even if the 'any' comes with the uncomfortable reality that nobody in the new plant will be able to work without at least a solid high school diploma and 2 years of apprenticing. The 'high paying' jobs will require a four year degree in manufacturing technology.

[1] <http://www.makerbot.com/docs/replicator/>

<comment><USER4> I don't think 3D printing is going to replace injection molding any time soon, even for relatively small runs. The cycle time is just so much longer - <USER2> injection molding machine can make most parts, even quite large ones (think big plastic trashcans) in on the order of less than a minute, sometimes much less depending on the machine. That's also ignoring that the plastics you can injection mold have better mechanical properties and surface finishes, too.

Of course, true small run stuff isn't usually injection molded anyway, due to the amount of time and effort and high grade tool steel it takes to make the mold.

Where 3D printing really IS changing things is prototyping and the occasional one-off part, but we're quite far off production usage.

<comment><USER3> Ok I gave it 10 years as a minimum, is that soon? That number came from the transition in DIY computers to computers for business which I put between 1978 (all hobby) to 1988 where we've got the Mac, the PC, and some lesser known brands (Amiga and Atari) replacing the 'big iron' in companies for some tasks.

As with computers, if a 3D printer is cheap enough you can run 200 in parallel to get production rates into the 'few thousand widgets per day' Today the surface finish and the materials are not up there (but a 2K byte Altair 8800 wasn't really a contender to do desktop publishing either :-)

The thing you have to be careful of is this: _"That's also ignoring that the plastics you can injection mold have better mechanical properties and surface finishes, too."_ because that thinking will bite you back. It just has to be 'good enough' and cheaper and it puts those characteristics into the 'nice to have' category. I agree that there will probably always be a market for some injection molding but I can see that it will be the 'specialized' stuff and not the 'general' stuff. Just a matter of time.

<comment><USER4> Commercial injection modeling is going to be at the rate of perhaps a thousand per hour, not per shift. Many parts will be set up so that a single "hit" of the mold can produce dozens of parts.

In manufacturing, processes are used that have a minimum number of steps. Cycle time is critical. Even CNC doesn't have that much penetration outside of a very few select industries, namely aerospace and some automotive. Very little, if anything, on a consumer product will be CNC made, for much the same reasons 3D printing will have a very hard time catching on for production.

One real niche for CNC is actually making molds for injection molding - that's one case where taking dozens of hours to cut a single part isn't a problem, as that one mold can stamp hundreds of thousands of parts.

Source: I'm actually a manufacturing engineer by training.

EDIT: And yes, I think 10 years is much too soon. Industry has a huge amount of money invested in existing factories. Much of that equipment is useable for decades to come. You would have to get quite a bit better than the existing standard for them to even think about replacing the existing lines.

<comment><USER3> Awesome, I disagree of course but its a great discussion. My experience is with the integration of low cost compute into the flows rather than manufacturing. However I find it striking how similar your argument sounds to the ones that IBM made early on about how PCs would 'never' threaten mainframes because they didn't have the IO capabilities or the printing capability. And while certain markets still use them (credit card processing for example), a lot of things they were used for succumbed to a new way of doing things because it was cheap.

I suspect that much of the challenge with CNC penetration is with the costs involved. But could easily be wrong.

Current injection molding _does_ make thousands per hour and that's certainly achievable with thousands of 3D printers running in parallel, but the place where I think you will first see disruption will be in the 'short run' segments, where people would make 100,000 parts (minimum run) and only sell 10,000 units. Their price per unit was effectively 10x in that case. But they have no other way to get to 10,000 at the moment. In the compute space that is how the market disrupted, lower performance of the unit offset by the savings of not having to over provision for the compute capacity. Will be interesting to watch.

</comment></comment></comment></comment></comment><comment><USER5> >Google recently announced that its Nexus Q streaming media player would be made in the U.S., and this put pressure on Apple to start following suit.

So Tim Cook announces Apple's intention to do this at the end of May, and this is somehow "following suit" when Google hadn't even announced the Nexus Q yet (June 27)?

>We can only guess. Autodesk CEO Carl Bass says that just as we have created new, higher-paying jobs in every other industrial transition, we will create a new set of industries and professions in this one.

What are _average_ humans capable of that robots aren't?

<comment><USER6> Average humans are capable of fine manipulation and fast visual recognition at low prices.

<comment><USER7> Robots are capable of ridiculously fast visual recognition for considerably longer stretches of time than humans.

<comment><USER8> True, but I think Qworg was instead suggesting that humans are good where the confidence/accuracy of robots drops off. Machine learning tasks usually get to 70% good enough pretty quickly, but after that each percent gain costs more and more. There's a point where humans can complement robots when the robots are not yet good enough to solve the problem.

</comment></comment></comment></comment><comment><USER9> I've been saying this for a while. I think all manufacturing will turn local at some point, though it may take decades still. If I ran FedEx/Kinkos, I'd be researching all the best 3D printers and trying to pick winners and losers.

<comment><USER10> A while back (seems like it's been about a year) Radio Shack solicited ideas to make their stores more relevant. I suggested they install 3d printers in every store to bring hobbyists back in.

Crickets.

</comment></comment><comment><USER11> The US already has plenty of manufacturing, we make more stuff in the US right now than we ever have in the past. The thing is that we just use robots instead of people to do most of it - and 3D printing will only tend to continue this trend.

</comment><comment><USER12> Surely if the robots are replacing people then they're not really creating jobs, just taking jobs away from the Chinese. Sure there will be some people manning the robots, but isn't the whole point of using robots to cut down on the human workforce?

Even the robots aren't created in USA - some are Kuka robots from Germany.

<comment><USER13> Many simple products are made completely by machine yet have been coming for a long time from places like China. Sometimes it is due to the Chinese owning better machines (e.g. mills in China are generally more advance than their counterparts in America).

3D printers are probably going to be a boost for Mexico and low cost countries in Europe. That is if they get their act together.

</comment></comment><comment><USER14> I've seen a lot from the DIY companies and academic demos - what companies are designing this kind of production-quality cutting edge robotics and AI solutions though? I'd like to be a part of this future, but it seems like those jobs are in much shorter supply and harder to find.

<comment><USER3> I would say the jobs in 'cutting edge' robotics (no pun intended) are in surgical robots. Intuitive Surgical is growing very quickly. Proto-typing is at companies like Zmachines.

You need to realize that the personal computer market was all DIY and academic demos until Lotus 123 on the Apple came out. That filled a niche in business. When the PC came out it was supported by a 'real' company (Apple was not considered much of a company then). I would expect a similar trend in 3D printing. Some niche will open up and cause a lot of 'enterprise' money to be spent there and then one of the printer companies will jump in with the kind of product these things will evolve into. (And you'll get to complain to your grandkids about all the beige 3D printers are so boring, you remember when they were innovative and quirky)

Much of the AI stuff has been in pick and place robots (see the Japanese competition on this) and the military's use.

<comment><USER15> The DIY aspect is a very good point. I just finished watching a few videos on YouTube on early machine tools and one of the narrators mentioned that a lot of early milling machines didn't even have manufacturer's names because they were built in-house by the same people who needed them.

There is a very large DIY contingent building CNC machines of all flavors, not just the basic lathes and mills, but routers, benders, presses, wireforming tools, etc. Take a look around cnczone.com; you can waste hours on that site.

The DIY part of the industry needs software. The dominant tools are still very basic and there doesn't seem to be much support for 4 and 5-axis machining because most DIYers are only building 3-axis machines at most. So there may not be a huge number of jobs, but there is room to make your mark writing software for the home-built project machines.

I'm awaiting the day someone posts their design for a 5-axis homebuilt mill fully integrated with their own CAM software. I think that person will become very rich.

</comment></comment></comment><comment><USER16> I seem to remember hearing some argument about why it is hard to bring manufacturing back to the US, and it had to do with the supply chain in China being vastly shorter. I'm not sure how robotics would address that. Thoughts?

</comment><comment><USER10> For those who aren't well read (grin) a very good read looking at a dystopian future where 3d printers have displaced manufacturing is Cory Doctorow's "Makers". The Creative Commons licensed book can be downloaded from his website, craphound.com, or purchased elsewhere.

I suspect it may be one of those near-prophetic works of science fiction that will amaze future generations - "How'd he see that coming?"

</comment><comment><USER17> the kind of jobs that would be created would be to install and maintain these robots and machines, until someone figures a way to automate that as well

<comment> DanI-S But with any luck, the products of fully automated local manufacturing will be so much cheaper that humans won't need to work long hours in monotonous jobs in order to buy them.

<comment><USER18> I love the sentiment, but I doubt it will come to pass. That's exactly what people have said at every stage of industrialization. But the gains always end up being consolidated and the long work weeks and boring jobs march on.

<comment><USER19> >the long work weeks and boring jobs march on.

The long work weeks continue because apparently we are willing to trade less time at work for more stuff. If you want to live a 1960s lifestyle with a 60s size house, 60s level health care, 1 car per family, only 60s era gadgets, and cooking the vast majority of your meals--you could easily do it on 20 hours a week for most jobs.

As an experiment to illustrate my point, look around the room you're in and count the things that you own that didn't exist in 1960.

</comment></comment></comment></comment><comment><USER20> Does anyone know of any US based consumer electronics factories set up to take small-medium sized orders from small companies...say for kickstart campaign funded products like the Ouya?

<comment><USER21> One problem for consumer goods production in europe / US is component sourcing. You will need a PCB-Fab, ICs, injection molding, ... . While you can get most (some things just arent built statesside anymore) of those things in the states, they will be more expensive and maybe not built to capacity (since they specialized on really small batches for example). In china you will have all of the suppliers down the road and pretty cheap.

From someone who worked for a large automotive supplier, which does a lot of manufacturing here in germany, that wanted to release a consumer device I heard that you can get the whole product finished in china for the price of sourcing the components in europe.

</comment></comment><comment><USER22> This article is great opportunity for the title editor.</comment>


People are not resources and they don't perform, they do - c-rack https://medium.com/@diabulos/people-are-not-resources-and-they-don-t-perform-they-do-bd2118d70baf <comment><AUTHOR> You are pissed off at basic human nature (Create groups, status for self, promote others with ceremony, create structure, address by role).

Moreover, you generally become an individual in a company when you prove your worth.

</comment><comment><USER2> You aren't Albert Einstein. He could set his own rules, because he earned it.

You are a resorurce. The sooner you realize this, the easier it becomes to negotiate your worth.

<comment><USER3> I was initially going to type something along the lines of not speaking for others, but then realized that it comes down to projecting your own sense of self-worth. (Yes, projecting without having anything to back it up with is asinine.) In my career there had been a staggering amount of unique hard to replace individuals that simply did not know how to project themselves as valuable - no one realized their importance until they had been managed out, and honestly there was no one else to blame but the folks themselves.</comment></comment>


Linode Newark datacenter offline since 1.5 hours ago - <AUTHOR> http://status.linode.com/

<comment><USER2> linode's datacenter offline for 2 hours... and no official explanation. i know everybody's supposed to expect downtime, but it would be nice to know what happened too so i don't just assume it was linode's fault.

<comment><USER3> <http://status.linode.com/> had updates all throughout the issue.</comment></comment>