Docker interactive tutorial - <AUTHOR> http://blog.docker.io/2013/08/introducing-an-interactive-docker-tutorial/ <comment><USER2> I never understood what docker is or who is supposed to use it. Can somebody enlighten me?

<comment><USER3> Regarding who is supposed to use it... If you like deploying your apps to a Platform-as-a-Service (PaaS) like Heroku, Google AppEngine, or DotCloud, but wanted to run it on your own infrastructure, then Docker could be for you!

It's designed to be a key building block for anyone who wants to create their own PaaS-like service or environment. Why would you need your own PaaS? You might have unique security requirements forcing you to run an app in-house, or you might not want to pay the high prices of a commercial PaaS if your app gets popular.

<comment><USER4> So I'm used to configuring stuff by hand, and now I see a lot of buzz around docker, vagrant, chef, puppet, salt and they seem like glorified shell scripts. Am I missing something?

<comment><USER5> It's basically what you get when you start your deployment toolchain as simple shell scripts, then make them evolve, add features, and at some point, rewrite from scratch with a "real" programming language. I don't know if that matches your definition of "glorified" though :-)

<comment><USER4> I'm reading this python example ([http://docs.docker.io/en/latest/examples/python_web_app/](http://docs.docker.io/en/latest/examples/python_web_app/)) and it's a wrapper for running bash scripts with arcane syntax layered on top.

</comment></comment></comment></comment></comment><comment><AUTHOR> The creator here. Please let me know if you have any questions or comments!

<comment><USER6> Hi dhrp, I assume you work for Dotcloud?

Nice job so far. Where do you see this heading to? What's your view of what will happen in the virtualization world?

Best,

<comment><AUTHOR> Hi. Thanks! My personal take on where Docker is heading to? There are so many things people can do with this, it's hard to summarize.

What I personally care most about? As a designer ex-entrepreneur and front-end developer, the thing that gets me going most is the idea that I'm able to "just run" an application. No more difficult than from the Mac store. For example Trac (a wiki system), Wordpress, Django apps, Mailservers, torrent- servers. Basic stuff which just makes it easier for me to deploy my creations, and those of others.

<comment><USER7> Absolutely love docker, hope to see it mature even more :)

I am currently playing around with it and building a messaging platform playground. One "pain" so far is that docker's IPAddress assignment is not very flexible. Will it be possible to assign IP addresses to containers (e.g. from "docker run")? Or have a better control what IPAddresses are used (like giving a network range on docker -d)?

If i am not mistaken docker saves changes in containers through aufs and keeps those changes as separate images on disk, right? I'm currently working with containers which keep their state on the host OS (by mount bindings) and thus, i don't want to keep old images of not-running containers. Will there be some switch to disable that or clean up old ones? Maybe i am misinterpreting something, but i'm new to docker ;)

Anyway, keep up the great work, i am very impressed with docker, kudos!!

<comment><USER8> Currently using the unionize.sh script works very well for me.

[http://blog.docker.io/2013/04/unionize-network- superpowers-f...](http://blog.docker.io/2013/04/unionize-network-superpowers- for-your-docker-containers/)

You have to run ./unionize <bridge> <container sha1> <ip address> after starting the container, but that brings up a new interface inside the container with that IP and connects it to the bridge.

This is useful for having private IPs between containers of an application, for accessing databases or similar.

<comment><USER7> I was starting with unionize as well, but the fact is that docker looks up for available IP adresses on its own. So you can give docker -d the -b parameter and pass an existing bridge and it will go through that bridges IP space and assign IP adresses already. Also that way the IP address shows in "docker inspect" which it doesn't with unionize.sh (i think).

The problem here is that the built-in IP Address allocator is rather stupid and doesn't even try to ping an address before assigning it. I got it to interfere with my network heavily when it assigned my gateways IP Address to a container ;)

It'd be nice if the whole IP Address allocation was more pluggable or configurable. Right now it's some code deeply tied into the whole system (i think) and i fear i don't have the Go skills to change that myself :(

(for example, i think i would have been able to write a little bit of Go to assign IP Addresses the way i want to, if the system would be more pluggable)

</comment></comment></comment></comment></comment></comment><comment><USER9> Haha, I had a good laugh upon hearing that Docker cannot run inside of itself. Is this an LXC limitation? Clearly the solution was to run Docker inside of KVM inside of Docker.

But seriously, nice job. I haven't used docker yet because I want to play around with the standard lxc utilities first. But this is pretty awesome.

<comment><USER5> Actually, I've ran Docker within QEMU within Docker (using v9fs so that QEMU could use the container's FS as root FS). Works, but painfully slow and not very resource-efficient :-)

<comment><USER10> I will add that Docker is getting an architecture upgrade, and in the future will support nesting :)

</comment></comment></comment><comment><USER11> 8 steps, 15-20 minutes, and you'll get an initial understanding of a much better way to do devops/deployment, including scalability. Thanks Docker!

</comment><comment><USER12> I've been playing a bit with Docker and found I couldn't get the kernel option to work (the linux-aufs_friendly kernel just wouldn't work on my Arch setup). However, that forced me to the option of using vagrant to set up a vm with docker configured and I found that great - I recommend this option over playing with your kernel.

I'm a long time virtualbox user but had never played with headless vms and never realized how easy that is with vagrant. Additionally, using vagrant to get a coreos vm running, with docker all set up, was pretty cool. So far I'm finding the payload of the vms rather heavy (with the os overhead), but I haven't really got down to setting up individual docker app containers. I'm looking forward to that, and even more to what could lie ahead for this space: vagrant, coreos, docker, chef/puppet all look to making a very promising convergence.

<comment><USER13> Probably it won't help you, but Docker is working on my Arch with linux- aufs_friendly kernel.

<comment><USER12> I suspect it must have something to do with my set up. My first suspicion was my nvidia drivers (304xx) but I recall not even being able to boot in console mode. I'll give it another shot later but for the moment vagrant's doing a fine job putting it all together.

</comment></comment></comment><comment><USER14> Enjoyed it, more would be welcome, only if you have more time to give of course.

ps: especially on committing and layering.

<comment><AUTHOR> Yeah. The committing and layering stuff is not the easiest to grasp. There is actually a section on the docs that does a decent job explaining these concepts but it is a bit hidden: [http://docs.docker.io/en/latest/terms/](http://docs.docker.io/en/latest/terms/)

</comment></comment><comment><USER15> Well thanks I plan on using docker to deploy a jvm app soon, this should help.

<comment><USER8> This should help a bit more with your specific case:

[http://blogs.atlassian.com/2013/06/deploy-java-apps-with- doc...](http://blogs.atlassian.com/2013/06/deploy-java-apps-with-docker- awesome/)

</comment></comment><comment><USER16> Why is the docker hype machine cranked up to 11?

<comment><USER10> Hi seiji, I'm the author of Docker.

There is hype around docker, for sure. The optimist in me likes to think that it's because people find the project useful and are excited about the possibilities of containers in general - which I believe are huge.

Me and the dotCloud team have been working on container technology since 2008. For a long time it felt like preaching in the desert - mostly because it required exotic patches to the kernel which made widespread adoption difficult. So it's very rewarding to see more people adopt containers, and of course it's great to be on the right side of the hype for a change. But if we hadn't been at the right place at the right time, someone else would have done it instead. Containers are just too important and useful to _not_ blow up.

<comment><USER17> Could you share some thoughts (or links) on the differences between LXC and linux-vserver? I played a little bit with that, and it seemed to promise "true jails" for Linux -- and LXC seems to be a natural successor -- any comment of what we've gained/lost from the "transition"?

I'd also love to hear what people think about the relationship between freebsd+jails, solaris+zones and Linux+LXC/docker and/or if it would make sense to modularize the back-end so that "docker" (as in the daemon/management tools) would work for maintaining jails and/or zones as well?

It'd be fun to be able to run docker+LXC under GNU Debian/Linux, and docker+jails under GNU Debian/kFreebsd (and ditto for the Debian-like/Ubunut- based solaris distros)... Maybe not _useful_ , but interesting...

<comment><USER10> > _Could you share some thoughts (or links) on the differences between LXC and > linux-vserver?_

vserver, lxc and openvz were 3 competing projects to add process-level isolation to the linux kernel. We used all 3 of them extensively (the ancestor of docker was based on vserver, then ported to openvz, then finally to lxc). They all had pros and cons, but in the end the only meaningful difference is that lxc got merged upstream, and the others didn't.

> _would make sense to modularize the back-end so that "docker" (as in the > daemon/management tools) would work for maintaining jails and/or zones as > well?_

Absolutely. That is the goal, and starting with 0.8 Docker's architecture will be modular enough to support it.

See this blog post for details: [http://blog.docker.io/2013/08/getting-to- docker-1-0/](http://blog.docker.io/2013/08/getting-to-docker-1-0/)</comment></comment></comment></comment>


Canada Introduces New Drone Rules and Regulations - <AUTHOR> http://www.droningon.co/2017/03/17/canada-introduces-new-drone-rules-regulations/ <comment><USER2> 90 meters seems to be the new low, from 120 meters in UK.

Does not matter, because already there are drones smaller than a matchbox.

In 2005 I had three kites in a string of 1.5 kilometer. The ceiling was 300 meters outside airplane corridors. But I only learned this later. The fact is however there was nothing interesting to see and take photos of at 1000 meters.</comment>


Guido van Rossum Quits as Python Benevolent Dictator for Life - <AUTHOR> https://www.i-programmer.info/news/216-python/11967-guido-van-rossum-quits-as-python-bdfl.html <comment><AUTHOR> Whomever marked this as dupe, I don't see this link submitted in the past, and this is big news that really belong on Hacker News...

<comment><USER2> [https://news.ycombinator.com/item?id=17515492](https://news.ycombinator.com/item?id=17515492)

<comment><AUTHOR> Ah, cool. Did not see this. Searched for Guido</comment></comment></comment>


Real-Time collaboration in TinyMCE with Slate.js - <AUTHOR> https://www.tiny.cloud/blog/real-time-collaborative-editing-slate-js/ <comment><AUTHOR> This is the second post in a series, discussion from the first post: [https://news.ycombinator.com/item?id=22039950](https://news.ycombinator.com/item?id=22039950)</comment>


An Object is not a Hash - <AUTHOR> http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/ <comment><USER3> The fact is, it's 2012. We all appreciate V8 making the web fast. It's stuff like this, however, that makes me question the sanity of those _still_ promoting node.js

The fact of the matter is that JS is bad at all the things a programming language is supposed to be good at. JS can't even perform integer math. It's also fairly alone in being async by default (and no, comparisons to erlang do not count).

Does JS work? Sure, but believing JS is good is a special kind of delusion. We have decades of language research to work with, and once again we see the pull of the lowest common denominator.

<comment><USER4> The people waiting for the programming community to suddenly wake up and realize how wrong they were about Javascript all these years remind me of all the people still waiting for Castro to die.

By the time it happens, it won't actually mean anything because something else, something equally despised and impure will have taken its place.

Perhaps a better question might be _why_ are such languages more popular than their more ideologically pure cousins? What need are they filling that "better" languages cannot? Be careful if your answer is "they're beginner's tools for mediocre programmers" -- the JS community is home to some extremely talented programmers who are all there by choice alone.

<comment><USER5> Trying to make one's tools better is always worth it. Typescript is to me the most exciting thing to have happened to JS, better than all the so called libraries that have to be declared inside a function (!!) so that the scope doesn't get completely screwed up.

The JS community is not an argument for JS I feel, because it does not have a track record of providing reliable software. Most libraries are new and a lot of devs are very lax with security or code robustness. If you use a library/tool you're not sure what you're getting - see the semicolon situation or the npm directory deletion.

<comment><USER6> > _the so called libraries that have to be declared inside a function (!!)_

This scope trick (and really, the whole JS language situation) always reminded me of the "closures vs. objects" koan:

[http://people.csail.mit.edu/gregs/ll1-discuss-archive- html/m...](http://people.csail.mit.edu/gregs/ll1-discuss-archive- html/msg03277.html)

<comment><USER7> as a note this works in JS too.

      var mariner= {};

      mariner.new = function(){
          var self = {};
          var maxhp = 200;
          var hp = maxhp;

          self.heal = function(deltahp) {
              if (hp + deltahp < maxhp){
                  hp = hp + deltahp;
              } else {
                  hp = maxhp;
              }
          }
          self.sethp = function(newhp) {
              if (newhp < maxhp){
                  hp = newhp;
              } else {
                  hp = maxhp;
              }
          }
          self.gethp = function(){
              return hp;
          }

          return self;
      }

      var m1 = mariner.new();
      m1.sethp(100);
      m1.heal(13);
      alert(m1.gethp());

(shamelessly stolen from <http://lua- users.org/wiki/ObjectOrientationClosureApproach>)

</comment></comment></comment></comment></comment><comment><AUTHOR> As a shortcut, in underscore.js you can:

      _.has(object, key)

or

      _(object).has(key)

<http://underscorejs.org/#has>

<comment><USER8> I love that the underscore doc for `has` links to the submitted article.

</comment></comment><comment><USER9> It's a pretty good illustration of why associative arrays in Javascript are a design failure, by conflating different notions in the same implementations:

\- objects are not hashes

\- hashes are not arrays

It sounds like somebody reading the classic quote by Saint Exupéry, "A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.", and concluding: "Well, if I mash all the elements to a paste, there won't be anything to take away."

</comment><comment><USER10> Is there some type of injection vulnerability here?

Is it possible to attack a node.js server that creates objects via some API and give it a name that overwrites an internal javascript property? Your content would be the javascript injected code that might get run when the property is used internally?

<comment><USER11> That's what the original poster is saying, yes. JS does not support a formal separation between the 'attributes' and 'keys' of a hash, so it's a security risk waiting to happen.

In some cases the JS approach is very nice and useful: in Python you see gobs and gobs of classes used to hold data structures, mostly because people don't seem to like dicts in general. I remember a talk, but not the speaker or title of it, where it was pointed out that your Python class is probably a dict plus a function if it has exactly two methods, one of which is called __init__. Python being what it is, you may also extend Python to do what JS does, but slightly more intelligently:

        class obj(dict):
            def __init__(self, vals={}):
                for key in vals:
                    self[key] = vals[key]
            def __setattr__(self, name, value):
                self[name] = value
            def __getattribute__(self, name):
                try:
                    return dict.__getattribute__(self, name)
                except AttributeError:
                    if name in self:
                        return self[name]
                    else:
                        raise AttributeError("'obj' has no key '%s'" % name)

This lets you use dotted setters/getters with Python without accidentally having x['keys'] = 1 override the obj.keys() method (which it inherits from dict). It's a serious problem in real Python code I've read and written; you create 'classes' which are only instantiated once (and are therefore semantically dicts). So the JS model really has some advantages for easy, clear namespacing (and packaging and enumeration) of identifiers, but yes, there is a potential security question if you allow people to set or get arbitrary JS attributes.

<comment><USER12> I think you're thinking of Jack Diederich's talk "Stop Writing Classes". You can (and should!) watch it online here: <http://www.youtube.com/watch?v=o9pEzgHorH0>

<comment><USER11> Thank you, it's much appreciated.

</comment></comment></comment></comment><comment><USER13> Aw gee, you want a real hash in JavaScript, how hard can it be? Here's a quick and dirty one I whipped up in five minutes. It worked the first time with only one bug - I forgot to remove the prefix in the forEach method at first.

      function Hash() {
          this.hash = {};
      }

      Hash.prefix = '#hash#prefix#_';

      Hash.prototype.get = function( key ) {
          return this.hash[ Hash.prefix + key ];
      };

      Hash.prototype.set = function( key, value ) {
          return this.hash[ Hash.prefix + key ] = value;
      };

      Hash.prototype.del = function( key ) {
          delete this.hash[ Hash.prefix + key ];
      };

      Hash.prototype.forEach = function( callback ) {
          for( var key in this.hash ) {
              if( key.indexOf(Hash.prefix) == 0 ) {
                  callback.call( this, this.hash[key], key.slice(Hash.prefix.length) );
              }
          }
      };

      // Q&D test

      // Let's try to break things by extending Object.prototype!
      Object.prototype.spindizzy = true;

      var hash = new Hash;
      console.log( hash.get( 'a' ), hash.get( 'b' ) );
      hash.set( 'a', 'AA' );
      console.log( hash.get( 'a' ), hash.get( 'b' ) );
      hash.set( 'b', 'BB' );
      hash.forEach( function( value, key ) {
          console.log( key, value );
      });
      hash.del( 'a' );
      console.log( hash.get( 'a' ), hash.get( 'b' ) );
      hash.del( 'b' );
      console.log( hash.get( 'a' ), hash.get( 'b' ) );

I'm sure I missed something, but this doesn't seem like rocket science.

Of course, you do lose the syntactic sugar of [] dereferencing so it looks like part of the language, but life is full of tradeoffs! :-)

And I suppose there is still a way to break it, if you extend Object.prototype with something that happens to match Hash.prefix. I guess you could use hasOwnPrototype to prevent this. Ah well, maybe I do have a bug after all, but at least it's a good start.

<comment><USER14> Here, let me make this easier for you

      > var hash = []
      undefined
      > hash
      []
      > hash['a']
      undefined
      > hash['a'] = 33
      33
      > hash
      [ a: 33 ]
      > hash[3] = 3
      3
      > hash
      [ , , , 3, a: 33 ]
      > hash[2]
      undefined
      > hash[hash]
      undefined
      > hash[hash] = hash
      [ ,
        ,
        ,
        3,
        a: 33,
        ',,,3': [Circular] ]
      > hash[0] = 'zero'
      'zero'
      > hash['0']
      'zero'

JavaScript already has a perfectly well functioning associative array that can store whatever keys you like with the only gotcha being that strings containing only numbers act like numbers, when used as keys.

<comment><USER13> That has a couple of problems. Try this:

      > var hash = [];
      undefined
      > hash
      []
      > hash['length']
      0
      > // Hey! That should have been undefined, not 0!
      > hash['length'] = 'test'
      RangeError: Invalid array length
      > // And I can't set it either!

Also, the part where you're doing hash[hash] doesn't do at all what you think. When you write this code:

      hash[hash] = whatever;

What you're really doing is:

      hash[ hash.toString() ] = whatever;

And with hash being an array, hash.toString() is highly browser dependent. In Chrome, if you don't have any numeric array keys, then hash.toString() is "" regardless of your non-numeric keys (at least in the version I'm testing). So you may well be really doing this in Chrome:

      hash[""] = whatever;  // Oops

If you do want to use a native JavaScript type as a hash, the one to use is Object, not Array. Simply change the first line of your test to:

      var hash = {};

and go from there.

This still doesn't solve the name collisions, but is plenty useful anyway.

If you do want a more fool-proof hash that lets you use any string as a key without fear, I'm pretty sure you need to write some code like the Hash class I posted. You still couldn't do the hash[hash] - or hash.get(hash) - <USER2> of the dependence on .toString(), but any string key would work. You could even get fancy and give the Hash class some kind of useful .toString() method so you could use hash[hash] - having your own code here opens up those kinds of possibilities.

<comment><USER14> You're right, I was too quick to reply. I'm not really a javascript programmer, I figured the Array type would have different semantics on the [] operator than a plain Object.

<comment><USER15> It doesn't. Which is why you can use it in the completely broken manner you did.

</comment></comment></comment></comment></comment><comment><USER16> It sounds like this will all be fixed when js gets proper map types in ES6.

<comment><USER17> When I first saw this post, it didn't include the following snippet:

        Object.create(null);

I disagreed adamantly that a hash with pre-defined names is not a hash. The language already provides a means to get a hash without the pre-defined names, and any clever person can hack around naming collisions regardless. He now notes these things at the end of the article, but then the entire argument doesn't imply that a hash is not a hash. He does a good job pointing out a mistake ALMOST EVERYONE makes, and I applaud that, but the title is horribly misleading, even when given the proper context.

Also, @mcot2, I didn't intend to post as a reply to you, but since I have, to answer your question, collections (Maps, Sets, and WeakMaps) are available in V8 and consequently Node already (via --harmony flags). Because the implementations of these with get/set is not tied to the object's properties, these don't have the same problem.

<comment><USER18> Isn't the whole point of Maps that their get/set methods are completely independent from object properties?

<comment><USER18> (for the record: parent edited his post to address this.)

<comment><USER17> I'm sorry about that. I went back later to edit in a comment to make it clear that I had incorporated your point into my response but the edit had expired.

</comment></comment></comment></comment></comment><comment><USER19>
        if (!posts.hasOwnProperty(req.body.slug)) {
          posts[req.body.slug] = new Post(req.body);
          res.send(200);
        }

Maybe I'm missing something, but doesn't that code also happily assign to properties like "constructor", not just "hasOwnProperty"?

</comment><comment><USER20> I think this problem can be easily solved by encapsulating access/creation methods of posts objects in a object say postStore where posts variable is private property and the object have savePost(slug) and getPost(slug) methods where access/creation methods are defined by yourself. If posts object is that much mission critical than it should not be exposed to outer world.

<comment><USER21> Instead of writing code around the problem, its better to just use a safe reference (ie, use Underscore's has method which will call Object.prototype.hasOwnProperty). This way code stays both simple and safe.

</comment></comment><comment><USER22> > Our program, however, is still susceptible to potential misbehaving. Let's > say our user decides to call his blog post "hasOwnProperty".

This will virtually never happen. If you're worried about it, put an early return (if (name === 'hasOwnProperty') return). End of story.

<comment><USER23> Downvoted because "this will virtually never happen" is, uhm, for want of a better term, _incredibly stupid_.

Allow what you want to allow and disallow everything else.

<comment><USER22> Sorry, this will happen 00.0001% of the time. Orders of magnitude less than dozens of other more pressing problems.

<comment><USER24> downvoted for assuming that "chance of happening in random usage" has any correlation to what a determinated user will actually try to do.

This is like saying "oh, but nobody will ever insert SQL in our forms!"

<comment><USER22> good point.

</comment></comment></comment></comment></comment><comment><USER25> Contrary to this Stack thread: [http://stackoverflow.com/questions/1143498/difference- betwee...](http://stackoverflow.com/questions/1143498/difference-between-an- object-and-a-hash)

<comment><USER26> I feel like you missed the point of the article.

<comment><USER25> I feel like you misjudged the tone of my comment.

</comment></comment></comment><comment><USER27> Other than lists which can be represented by JSON arrays, hashes do fine jobs at describing most data and most "objects".

This post goes off the rails almost immediately with "Normally this would work fine, but let's consider that the user could pick any of the keys that are present in any JavaScript object as a name." WTF? The author almost immediately is confusing his/her current situation with the request body and what's in it.

Then we find ourselves quizzically with "We therefore change our code to leverage hasOwnProperty". Umm, I don't think most developers would find themselves "therefore" doing this.

<comment><USER8> I think you are missing something.

If I understood the article's example, he's suggesting the (perfectly plausible) use case of a new blog post named, e.g., `hasOwnProperty`. Then they would want to set a key named `hasOwnProperty` in the `posts` object, but `hasOwnProperty` is already defined (via inheritance, since all objects have it) as a function (well, native code)… so now you have either (a) prevented your blog from allowing a reasonable blog post title, or (b) seriously mucked up your blog by accepting a blog post title that has the side effect of _redefining a basic object method._

The author is not confused.</comment></comment>


Make a simple HTML5 game using Box2d in JavaScript - <AUTHOR> http://www.binarytides.com/make-html5-game-box2d-javascript-tutorial/

<comment><USER2> This example is using box2d for something that can be implemented with very simple code dropping this important dependency IMHO. Box2d is a great fit when real 2D physics simulation is needed, but for apples falling at constant speed and jumps, it's not worth it.

<comment><USER3> This example also has bugs. 1. Rapidly pressing up executes multiple jumps. 2. You can climb up the side of a block/group or just get stuck on it.

Also the jump feels off.

<comment><AUTHOR> the climbing on the side of the block is actually default box2d behaviour with bodies having friction. to make it slide off the side needed a bit of complex construction which i avoided to keep the tutorial simple.

</comment></comment></comment><comment><USER4> I've been watching for a good Box2d javascript port for the last couple years, and so far there's nothing out there that's anywhere close to useable. It's a shame really, since the Flash version is so good.

Every port is either a bunch of Regular expressions run against the ActionScript source, or a wacky hand port of a version several years out of date. In either case, as soon as you plug it into anything more complicated than the Hello World demos it starts demonstrating in myriad wacky ways that nobody must have ever tried using it on a real project. I keep checking back, doing the rounds of GitHub and the web in general every couple months hoping in vain that somebody will have put something good out, but thus far no luck.

And of course, I'm part of the problem, complaining about the situation but not actually downloading the ActionScript source myself and putting together a decent port.

<comment><USER5> How about box2d via Emscripten? <https://github.com/kripken/box2d.js/>

In general I agree with your assessment though.

<comment><USER4> Wow. Actual documentation and working examples. That jumps this one to the top of the pile for sure. Thanks for the link!

</comment></comment></comment><comment><USER6> Anyone have other recommendations for HTML5 game tutorials? There's a simple card game I'd like to make so I've been itching to learn.

</comment><comment><AUTHOR> its for learning box2d, from the basics.

<comment><USER7> hi, I did a manual box2d flash to js port sometime back, I used it to build this Sim:

<http://bit.ly/UOWq7D>

if you have an interest in building sims for education, explore APPynotebook:)</comment></comment>


Gary Connery successfuly lands wingsuit without a parachute - <AUTHOR> http://www.itv.com/news/story/2012-05-23/stuntman-gary-connery-plans-to-make-aviation-history-by-first-skydiver-to-land-without-a-parachute/

<comment><AUTHOR> Video: <http://www.youtube.com/watch?v=9IRC_b4g7Sg></comment>


Ask HN: Does this exist? "Click to support my cause" - <AUTHOR>

I'm looking for a simple web app that allows anybody to create a cause. Once you've created the cause, you can send out a link that allows people to automatically contact their congressman via email and/or through an auto-VOIP-call -- all to support the cause. So it's a platform to allows leaders to more easily lead and followers to easily follow.<p>Does this exist? I've searched through LifeHacker, Hacker News archives, Sunlight Labs, and google -- no luck. Anybody know of something like this? I want to use it to stir up action against the anti-angel Dodd bill. <comment><USER2> What you're describing is a lot like www.change.org

There, individuals take it upon themselves to contact their local representatives. A user can volunteer personal information as well, and it will go towards building a collective petition or pledges.

I'm not sure if the venture is non-profit or for-profit..</comment>


PicoBrew – Counter-top home brewing machine - <AUTHOR> http://picobrew.com/ <comment><USER2> I just started home brewing and I'm not sure I understand this product. "Hit brew and walk away" says USA Today. Why, that's almost as easy as simply buying beer! This kind of defeats the point of home brewing as a hobby :) It's not like there's a shortage of excellent commercial beer and we need a special machine to fill a gap in the market.

<comment><USER3> I dunno. I have a bread machine and I love it. Even though there are plenty of great bakeries in my city.

<comment><USER4> As someone who does both, there is a world of difference between the two processes.

The argument being made against the picobrew is that it takes away exactly the thing a significant portion of the home brewing community enjoys:

1)The skill required to differentiate between a good and great, reproducible, beer

2)Sharing said beer and knowing it was something you created, as opposed you just 'made'.

There's a depth and risk of failure to brewing that is simply not there with baking bread.

<comment><USER5> I think perhaps you're viewing this from the wrong direction. This device isn't aimed at people who love the home-brew process. They aren't going to buy a device which reduces their enjoyment. Likewise there's many people who love baking, and wouldn't dream of using a bread maker. The device is aimed at people who maybe enjoy the idea of brewing beer, but not the practical (and complicated) steps required. Something like this device isn't so much aimed at the existing homebrew market, but designed to create a new market.

I think the bread maker analogy is a really good one. I'd consider buying a bread maker precisely because I don't particularly enjoy the drawn out process of baking bread, but I do enjoy both having freshly baked bread and being able to make bread with the stuff I like in it.

</comment></comment></comment></comment><comment><USER6> Went in on one of these with some friends and we've done 3 brews so far with it (nothing is drinkable yet). Prior to getting the machine, we did a few brews the traditional way to better understand the process.

In terms of the amount of time to brew, the biggest difference with the PicoBrew and traditional methods is that during the process we don't have to constantly monitor and adjust, the machine does that for us.

Some of the cleaning is simpler since most of the PicoBrew parts are dishwasher safe, but the kegs still need to be cleaned, bottles prepped, etc...

The thing we're most excited about is that the high-degree of control and repeatability means that we can tweak small things and know that the rest of the process remains consistent.

</comment><comment><USER7> I've pre-ordered a Brewbot ([http://www.brewbot.io/](http://www.brewbot.io/)) and can't wait for it to arrive. This one looks cool too, but a bit less customization potential.

</comment><comment><USER8> Meh... As someone who worked on a counter-top beer brewing appliance for my senior design project, I can tell you this thing doesn't produce good beer.

The picobrew is spargeless and is also a single-vessel system which does not stay true to the traditional beer brewing process, meaning the quality of the beer is significantly lowered.

Not to mention half the fun of brewing beer is being involved in the process itself. Adding hops and other ingredients when necessary and being creative by introducing your own ingredients into the process.

When we worked on our senior design project, our market research told us exactly that. People want to be involved in the beer brewing process. Another issue we had was the volume of the yield. With a counter top appliance, you can only get so much power out of a single wall outlet/socket, so your heating element is limited as to the amount of volume of water it can actually heat.

Brewing beer generally takes about 3 hours, so people tend to brew more than 2-3 gallons. The picobrew's yield is 9.4 liters (2.5 gallons), and it is also spargeless and single-vessel so its target market isn't really people who like brewing beer. It's people who've never brewed beer, and are just going to buy a flashy toy which will rarely get used.

We build an interactive android application that communicated with a netduino microncontroller through a web server. This allowed us to query the microcontroller, which controlled the heating element, water pump, and temperature + float sensors.

All I'm saying is, if a few Georgia Tech undergrads can build a counter-top brewing appliance, someone who does this as a hobby and has some programming experience, could just as easily build a larger scale brewing device with a netduino/arduino microcontroller, a few relays and some sensors.

You can see an automated run of our prototype here

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

and a small splash page that gives a general overview of the components used here

[http://brewmasters.herokuapp.com/brewery](http://brewmasters.herokuapp.com/brewery)

<comment><USER9> Everyone's taste is different, of course, but I've had non-sparge beers that I thought were great. My understanding was that a sparge increased efficiency; are you saying that the sparge results in a different chemical composition?

Of course, if you sparge with different temp water that would make a difference, but how is that different from a step mash with no sparge?

<comment><USER10> I always thought that the key was to mash with an appropriate volume of liquor (or 'water' for those that don't enjoy the brewing jargon): if you chuck all the liquor in (full-volume mashing I think it's called), the thin mash means that there's less contact between the enzymes and the starches which I would expect to result in a different chemical composition.

Batch sparging on the other hand (following a mash with a regular ratio of liquor/grain - but rather than slowly rinsing the grains with sparge- temperature liquor, you fill your mash tun with your full volume of liquor at sparge temperature) may affect efficiency (positively or negatively), but shouldn't change the quality.

I've enjoyed some fine batch-sparged beers!

Oh and as for the OP's point about a beer taking three hours... I wish! For me it's more like 8 with all the cleaning and fiddling around in my tiny brewing space!

</comment></comment></comment><comment><AUTHOR> My first (and only) home brew experience was with a "bag o beer". You put everything in a bag and let it sit for a few weeks.

Well, the bag had a plastic cap on the end. I had it set on the floor of the garage, kinda out of the way.

About a week in, I discovered that it was not REALLY out of the way because I clipped that cap with my shoe as I waked by.

The cap broke off and beer proceeded to spray ALL OVER MY GARAGE. Ceiling, walls, everywhere. We never got the smell of beer out of the garage...I wonder if the people living there can still smell it.

</comment><comment><USER11> You could have an extremely nice, _real_ brewing setup for less than $1800, including separate refrigeration for fermenting and serving. Not sure what demographic this serves.

<comment><USER12> People who have more money to trade than time.

<comment><USER13> BaaS Brew as a Service?

My local homebrewer store offers classes at $10/hr so figure for $50/hr you could trivially make an arrangement. Something "uber"-ish where you rent a non-store employee's time would be interesting. May as well have the rented brewer provide his own worm (do they still call them that? The giant copper cooling coil to bring the wort from steep to room temp in an instant using a garden hose?) and other bulky expensive one time only stuff.

I was "drafted" to help some friends on their first beer brew because they knew I was a wine maker, everything went well other than beer is more complicated than I like. Also some winemaker weirdness/hangups about oxidation falls on deaf ears when you drink the stuff mere weeks later, so that was a little weird. Someone who actually knows how to brew could probably make some money if there was only a way to organize the process of match making wanna be beer brewers with real experienced beer brewers.

It would be nice and difficult to background check the contractors and verify their skills (both brewing skills and some minimal level of customer service), and scheduling and billing and customer sat tracking... Sounds like a perfect startup opportunity! Of course, long term growth might be a bit limited compared to "disrupt taxis" or whatever.

<comment><USER14> That's a pretty good idea. The actual mechanics of brewing beer are exacting and tedious, but have little room for creativity. The most creative part of the endeavor is the recipe.

In fact, many commercial microbrews are partly or wholly made by contract brewers, so this already exists at a larger scale.

The downside is the legal red tape for anything involving alcohol, particularly anything interstate.

Edit: thank you darkstar999, that was a typo

<comment><USER11> You probably mean interstate.

</comment></comment></comment></comment></comment><comment><USER15> For any home brewers who might be interested I maintain braubuddy, a temperature control framework written in Python:

[http://braubuddy.org/](http://braubuddy.org/)

It was written to scratch my own itch - I use it to maintain fermentation temperature within a certain range. Especially useful for lagers or brewing ales in the fridge in the Summertime.

It'll also publish metrics to a variety of outputs, with the next release to support Twitter, Librato, and Hosted Graphite.

</comment><comment><USER16> Hmmm, $1800? I know not of all the apparatuses needed for homebrewing. I'm guessing it's substantially less than this? One would obviously be paying for the convenience of this machine and its ability to brew extremely small batches.

Regardless, I just can't see this "catching on" to any degree with that price. Do they have plans to scale or something?

<comment><USER17> As a homebrewer $1800 can get you an amazing setup.

It looks to me that the picobrew is for those who don't want to do the 'heavy lifting' of homebrewing and want to say that they homebrew. The automatic bread machine of this generation?

For that price tag you aren't going to get people who want to test out homebrewing. My first homebrew setup was ~$150. This included two buckets (fermentor and bottling), kettle for boiling the wort and hops, bottles, basic bottling accessories, and my first extract kit (fat tire clone).

On the other side they claim this is a professional tool. However, I would highly doubt any real brewery would use this. They have their own pilot systems where they typically make 20-50 gallon test batches. The output of 2.5 gallons is no where near ideal for a test batch. A gallon of beer gets you roughly 10 (12 oz) bottles.

I'm not quite sure who their market actually is. Maybe it's rich people who want to make their own beer? Seems like a small market.

Their machine (from what I gather in the video) comprises the following features: Brewpi ~$60 ([http://www.brewpi.com](http://www.brewpi.com)) 5 Gallon Keg $60 used $110 new ([http://www.homebrewing.org/5-Gallon-Cornelius- Keg-Ball-Lock-...](http://www.homebrewing.org/5-Gallon-Cornelius-Keg-Ball- Lock-Used_p_70.html)) PicoBrew has a small mash tun (~3 gallon?) 10 gallon mash tun - [http://www.homebrewing.org/10-Gallon-Converted-Igloo- Cooler-...](http://www.homebrewing.org/10-Gallon-Converted-Igloo-Cooler-Mash- Tun-With-False-Bottom_p_1006.html)

I don't understand where it boils the wort and how it actually mixes these ingredients.

Realistically, anyone who is serious about homebrewing most likely won't be using this. You can get the same amount of control that they advertise with fermentation chambers, your own brewpi, and with detailed logging. Also part of the fun is the actual brew process of boiling the wort and throwing in hops with friends and never having to drink the same beer again.

It'll be interesting to see how this thing actually does.

Just my $0.02

<comment><USER18> > It looks to me that the picobrew is for those who don't want to do the > 'heavy lifting' of homebrewing and want to say that they homebrew. The > automatic bread machine of this generation?

I actually quite enjoy my bread machine. My wife and I both work and are active in our community. It's extremely wonderful to spend 5 minutes before bed and have bread in the morning. It's cheaper than buying bread at the store (ok, the 50¢ loaves give it a run for it's money), and we know exactly whats in it.

Once this comes down in price, which it or something like it will, to the point where it's a few hundred I can see it being used in much the same way by many folks: Good beer is expensive. OK beer is cheap. Home-machine-made beer is better than OK and cheaper.

</comment></comment></comment><comment><USER10> I'm surprised there isn't mention of the Spiedels Braumeister [1] - it seems to be a similar product (albeit with less tech, and possibly a bit more manual work).

I've heard lots of good things about them, but the price has always put me off, though it is comparable to the PicoBrew, at least here in the UK.

I think they require a bit more interaction if you want to sparge (from my cursory internet forum research performed just now [2]) but at least you can (batch) sparge, and create recipes that would scale up to your big rig if you desired (and had a big rig and space etc).

[1] [http://www.speidels-braumeister.de/speidels-braumeister- en.h...](http://www.speidels-braumeister.de/speidels-braumeister-en.html)

[2] [http://forums.morebeer.com/viewtopic.php?f=1&t=39249](http://forums.morebeer.com/viewtopic.php?f=1&t=39249)

</comment><comment><USER19> I was disappointed that it wasn't brewing coffee!

</comment><comment><USER20> Brews in an average of 4 hours?

Can that be right?

<comment><USER21> Plus a few weeks to ferment.

<comment><USER22> Plus refrigerated lagering, if you want real beer.

<comment><USER23> Prefer ales myself ;) Especially real ales from England!

</comment></comment></comment></comment><comment><USER24> I might buy one just for fun if it costs less than 500 bucks...

<comment><USER25> Check the store part. $1799</comment></comment>


Apps on SD Card: The Details - <AUTHOR> http://android-developers.blogspot.com/2010/07/apps-on-sd-card-details.html <comment><USER2> This is a problem iPhone developers never have to worry about. Can't Android take care of app storage automatically?</comment>


Did Google spend $106.5m to open source a codec? - <AUTHOR> http://www.theregister.co.uk/2009/08/06/google_vp6_open_source/ <comment><USER2> Is there any company, big or small, that is doing more for the Internet than Google?

In fact, they may have already done more than any other company ever.

This acquisition, plus what's going on with pubsubhubbub over the past few weeks, will really go a long way to putting the network back in our hands.

<comment><USER3> Smart companies commoditize their complements. Google commoditizes software and builds moats around search and advertising. <http://www.joelonsoftware.com/articles/StrategyLetterV.html>

This isn't about altruism. This is smart business. I bet someone at Google figured out they could insert at least $106.5m worth of ads into video.

<comment><USER2> Great points. I bet you're right that the $106.5m number could be easily returned and more.

What I like about Google's approach, compared to Microsoft's or Apple's or Comcast's or [insert Fortune 500 company], is that their goal is to not make ALL the money nor control ALL the components between point A and point me.

Google has a different M.O. than the established technology players, and the others are finding Google difficult emulate/kill/marginalize/contain.

I reminds me of the "which would win in a fight, a Tiger or an Alligator" question, the answer to which depends on where they're fighting, land or water.

Google may not even be on the planet, never mind land or water, and may not even be aware of the rules of the fight.

They would scare me if it weren't for their consistent contributions to Open Source.

</comment></comment></comment><comment><USER4> They paid for the patents, not the codecs, much less the terrible implementations.

Each generation of codec implementations uses a lot of the same techniques, most of which are patented by _somebody_. Google can take On2's patents and license them freely under the condition that licensees must not bring patent infringement suits against anyone else.

They could suck a lot of air out of the debate, on both the freetard and patent-troll sides.

<comment><USER5> From my reading On2 were one of the few people who avoided rather than licenced some very basic concepts from MPEG and they marketed this as one of their unique selling points.

This may partly explain lack of world beating performance compared with what is theoretically possible if you ignore patents, and also means that Google may have been paying for the opposite of patents, patent workarounds (whether On2 patented these in turn I don't know).</comment></comment>


Colorado May Have to Refund as Much as $30M in Pot Taxes - <AUTHOR> http://www.huffingtonpost.com/2015/02/04/colorado-pot-taxes-back-to-residents_n_6612292.html

<comment><AUTHOR> I wonder if this is novel way to tax tho? I.e. taxes come from people who spend their money recreationally only.</comment>


New "Google Chrome Logo" leaked? - <AUTHOR> http://digitizor.com/2011/03/10/google-chrome-new-logo/

<comment><USER2> The new Chromium logo looks good, while the new Chrome logo looks fake. The muddied blending between green and red looks awful, and can't be taken seriously.

You can also see how the subtle highlights are done far better in the new Chromium one. It looks like someone just slapped low-opacity radial gradients on the Chrome version.

</comment><comment><USER3> This alleged new one is more on-brand than the old one. It matches Google's simplicity better. I think it also gets away from the "evil robotic eye" feel, which can be an image problem for a ubiquitous tech company.

That said, I like the old one a lot better.

</comment><comment><USER4> It's Leaked?! I wonder what fate awaits the whistle-blower who exposed this totally secret branding-campaign. Marketing department will hold him in solit- conf, and beat him with a wet towel between simulated drownings.

</comment><comment><USER5> In my humble opinion, this looks like a step backwards. Their current logo looks much slicker and more professionally-designed than the speculated new logo.

</comment><comment><USER6> This article doesn't look very ensuring. Every link in the text is a link in the site itself or one of the in-text ads. The frazpc.pl link looks no more convincing to me. I could be wrong...

</comment><comment><USER7> The concept is ok but the execution is poor. Fake.

</comment><comment><USER8> They need to change it more than that--it's always looked like the Windows Media Player logo to me. [http://www.fipr.state.fl.us/images/windows-media- player-logo...](http://www.fipr.state.fl.us/images/windows-media-player- logo.jpg)

</comment><comment><USER9> <http://yfrog.com/f/h6usmp/>

That's the new logo that I saw posted on another forum by a Chrome engineer.

</comment><comment><USER10> non-3d-logo's look really ugly in OSX's dock.

<comment><USER11> After keeping the close-tab button on the right, I say that they don't really care how Chrome fits into OS X at all.

<comment><USER12> It seems as if they insist on the same out-of-place UI behaviour as Apple apps such as iTunes/Quicktime on a PC.

<comment><USER10> If it makes you feel better, the integration with Ubuntu is crap as well. Chrome is doing _so_ many things really well, weird that they can't be bothered about OS integration.

<comment><USER13> Why would they be when they're turning Chrome into an OS?

</comment></comment></comment></comment></comment><comment><USER14> I thought the original logo was bad. This is even worse. I personally think Google has really bad taste overall.

</comment><comment><USER15> I like the new one better; the 2D version makes it look less like a Simon game.

</comment><comment><USER16> I hope not. It isn't as flashy or eye catching. It is too simple

</comment><comment><USER17> Reminds me of MIT Media Labs's new logo.

</comment><comment><USER18> I hope not!</comment>


In-browser Redis - <AUTHOR> http://narma.github.io/2015/redis-in-browser/ <comment><USER2> For me emscripten is today like the ZX Spectrum emulator for the C64 was when I was a child: I understand how it works, but this is not enough to stop the wow moment.

<comment><USER3> The best use of emscripten I've seen to this day is this compilation of the big complex piece of software that is GNUnet to the browser: [https://github.com/amatus/gnunet-web](https://github.com/amatus/gnunet-web)

(Also, it is useful to bring anonymization to the masses)

</comment></comment><comment><USER4> It's cool. But why do we need to put redis in a browser (client side)? Just for fun?

<comment><USER5> One application would be to embed redis with the online documentation. This would allow to not only show examples but make them executable as well. The user could play with them without having to install anything.

Most of these "try X" features need a user session, allocate a server-side component to that session and then manage recycling. It's much less expensive to stick a JS on a CDN, and also scales much easier horizontally.

<comment><USER6> Redis.io already does this fwiw

</comment></comment></comment><comment><USER7> Simplest possible in-browser "Redis":

var Redis = {};

;)

<comment><USER8> So that implements what subset of [http://redis.io/commands](http://redis.io/commands) ?

s/;)/:trollface:/ ;)

<comment><USER9> Here is my implementation of an in-memory Redis based on JS objects that supports Lists, Strings and Hashes commands. This implementation is mostly used as an in-memory cache in the browser to sync state from the server in the Meteor framework:

[https://github.com/meteor/miniredis](https://github.com/meteor/miniredis)

</comment></comment></comment><comment><USER10> Too bad it does not listen on a port (maybe using WebRTC), it would have been fun to connect it to Redsmin!

</comment><comment><USER11> Does not support `flushdb` or `flushall` - I assume these had to be commented out?

</comment><comment><USER12> Nice!

Using it as slave of a server side redis would be fun. :)</comment>


Authoritarian nations are turning the internet into a weapon - <AUTHOR> https://onezero.medium.com/authoritarian-nations-are-turning-the-internet-into-a-weapon-10119d4e9992 <comment><USER3> >"But the extraordinary case draws attention to how dictatorships are increasingly using technology to crush online dissent."

Yes, authoritarian regimes control communication. That's been the case for over a century of radio and mass circulation dailies. It's nothing new.

What is new is that even democratic countries are controlling free speech via speech laws or often the private companies engaging in evaluating what's permissible speech and not above and beyond what laws require. To wit what comprises "hate speech". It's basically come to mean "point of view in disagreement with my group's current position which may change in the future"

<comment><USER4> "Hate speech" has specific functional meanings when it comes to legal jurisdictions in which it applies. The idea that it's a tool for arbitrary suppression of disagreement is approximately correct as the idea that any other limitation on free speech (libel, slander, fire in a crowded theater, verbal assault, time place manner, etc) can be used arbitrarily -- which is to say, generally incorrect, although interpretation and application of the law matters (libel or time place manner judgments have been used to mute speech).

Additionally, I have yet to encounter any example of reasonable discourse that's being legally suppressed by hate speech laws, but, you know, feel free to make a list of the important ideas that you feel are being SILENCED.

Private companies: not that different in the fundamentals, but there are additional issues that lean towards both the right of ownership to speak and restrict speech that comes through them. _You_ likely wouldn't want anyone to force you to repeat ideas you believe are incorrect, or contrary to key personal interests even where narrowly correct, or even lead to effects you find personally undesirable. If freedom of speech means anything, it has to include some measure of judgment about what your personal faculties are used to express, and to some more moderated extent what/how your property is used. There may be balancing concerns in the latter case, but whether we're at that point is another issue. Again, I can think of very little in the realm of valuable discourse that's been walled off here; if there's anything at all, I suspect the relevant mechanism is essentially social values that are held widely enough that contrary expressions bring social consequences, and while you can create some spaces for robust contrary discussion ("safe spaces", if you like), you can't eliminate the kickback from broad social consequences without treading more heavily on other liberties of equal or greater importance to speech.

Honestly, if there's any issue at all here, it's that there has never been an EASIER time to express ideas -- even very unpopular ones -- quite widely, and it's the way that these ideas carry widely that's leading to a level of tension that people are still figuring out how to manage.

And really, this is the weaponization issues: 50 years ago, authoritarian countries didn't have the capabilities of broadcasting ideas or disinformation into your average household, much less an individual handheld device. A world- of-ends internet means that they do.

<comment><USER5> I too am alarmed by these spooky disinformation campaigns.

I just googled "what party was abraham lincoln in" and a big box popped up at the top saying "National Union Party". I've never even heard of this party. I assume its a euphemism sinister people use like "Democratic People's Republic".

<comment><USER6> Is this sarcasm? Lincoln was in the National Union Party during the civil war since he wanted to keep the Union together. It was a temporary 'rebranding' of the Republican party for the Presidential Election to attract members who wouldn't take the Republican name but were sympathetic to the Union.

[https://en.wikipedia.org/wiki/National_Union_Party_(United_S...](https://en.wikipedia.org/wiki/National_Union_Party_\(United_States\))

<comment><USER7> He was elected initially as a republican and was a republican for much longer than he was in the "National Union Party" \- I think the result from google is clearly deceptive.

<comment><USER6> Are people honestly insinuating that Google's algorithm is hiding the party of Abe Lincoln as some sort of slight against modern Republicans? What in the world... how could anyone believe that?

Is that bizarre conspiracy theory more likely or that their search results scrape Wikipedia and return the most recent party a politician belonged to?

[https://en.wikipedia.org/wiki/Abraham_Lincoln](https://en.wikipedia.org/wiki/Abraham_Lincoln)

Lo and behold, it reports that Strom Thurmond was a Republican ([https://en.wikipedia.org/wiki/Strom_Thurmond](https://en.wikipedia.org/wiki/Strom_Thurmond)) and Jeff Van Drew is too ([https://en.wikipedia.org/wiki/Jeff_Van_Drew](https://en.wikipedia.org/wiki/Jeff_Van_Drew)), even though both were Democrats for substantial periods in the past.

<comment><USER8> Is it a persecution complex when many of these kinds of "technical errors" seem to so often befall people from one political persuasion? Some of them clearly weren't errors and that has happened enough that people stop believing that it's just an error, because these companies have demonstrated in the past that they don't mind doing moves such as that.

<comment><USER9> Yes. The fact that the OP had never heard of the National Union Party and jumped immediately to the conclusion that is was a 'euphemism sinister people use' rather than spend 30 seconds confirming that this was in fact the name of the party he represented as President at the time of his death is ample evidence of a persecution complex. Propensity to assume one's own ignorance of facts is evidence of malfeasance on the part of one's opponents is pretty much the definition of persecution complex.

<comment><USER5> I was being facetious; it appears it is your theory of mind which is lacking. Of course, this is no grave fault of yours. Noticing these subtle tricks takes special acuity. After a few dozen more Google queries and even examination of several different platforms entirely, the picture becomes much clearer.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> The whole industry of advertising as we understand it today was created by those who had done propaganda during the first and second world war, and realised they could apply their skills in the field of business.

To learn the history of propaganda, advertising and how it is embedded deeply in our current political machine, watch _The Century of the Self_ , a 2002 documentary:

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

<comment><USER3> Kinda but advertising was called propaganda in some places before the term was marred by WWII and was afterwards rebranded as advertising.

<comment> mAEStro-paNDa It was rebranded "public relations", as noted in the referenced documentary. A central figure in the film is Edward Bernays, who was referred to as "the father of public relations".

<comment><USER11> A very interesting character he is

</comment></comment></comment></comment><comment><USER12> "Authoritarian Nations are..." makes it sound like the same trends aren't prevalent everywhere.

The cost of monitoring and enforcing compliance with the law is dropping very rapidly. Cameras, automated monitoring systems, etc, have all blossomed since around 2007 when phones suddenly became computers and cameras in one fell swoop.

It is no longer a default expectation that someone can commit a crime without being detected. Or do anything without it being recorded in triplicate on the internet. We'd better all hope we aren't doing anything the government doesn't like!

<comment><USER13> I'm not sure what is your point, authoritarian or democratic does not make a difference? Both kind of nations have same kind of access to citizens' private information? Both use the monitoring for the same purpose? US is throwing people who offended Trump online into jail like China is doing for Xi?

I just can't live with this kind of intentional defense of authoritarian by making nonsensical and shameless equalization.

Plug:

China Sentences Wang Yi, Christian Pastor, to 9 Years in Prison [https://www.nytimes.com/2019/12/30/world/asia/china-wang- yi-...](https://www.nytimes.com/2019/12/30/world/asia/china-wang-yi-christian- sentence.html)

Kaifeng Jewish Community Suffers New Suppression [https://bitterwinter.org/kaifeng-jewish-community-suffers- ne...](https://bitterwinter.org/kaifeng-jewish-community-suffers-new- suppression/)

Inside China's Push to Turn Muslim Minorities Into an Army of Workers [https://www.nytimes.com/2019/12/30/world/asia/china- xinjiang...](https://www.nytimes.com/2019/12/30/world/asia/china-xinjiang- muslims-labor.html)

<comment><USER14> As opposed to what we are doing to Assange? Or carrying out a coup against a democratically elected president in Bolivia ( Yes, I know he legally ran for a 4th time, but then so did angela merkel...). Do you know the largest "worker" population in the US is our prison population?

> I just can't live with this kind of intentional defense of authoritarian by > making nonsensical and shameless equalization.

Okay. How about this. A democracy is responsible for a 100 holocausts in the US with our extermination of the native. A democracy dropped nukes on hundreds of thousands of civilians. A democracy pioneered human experimentation. A democracy instituted racial slavery. A democracy has killed tens of millions of people around the world after ww2. A democracy has stolen the most land and resources around the world.

Democracy or authoritarian, both are capable of all kinds of evil. By any objective measure, the most evil nation to have ever exist was a democracy.

Now flip it. An authoritarian regime lifted 800 million people out of poverty. Easily the greatest humanitarian achievement in human history. The greatest human good in human history was achieved by those "evil" authoritarians.

If we are going to worry about the internet being weaponized, I think we should be worried about it whether "authoritarian" or "democratic".

<comment><USER15> Evo Morales commited fraud.

</comment></comment></comment></comment><comment><USER16> Invasive advertising is a kind of propaganda - information that is intended to manipulate people. Bruce Schneier said that surveillance was the business model of the internet, but perhaps more precisely, propaganda is the business model of the internet. At least the user facing part of it.

Put simply, we have come to accept that it is okay for businesses to manipulate people, so it should not come as much of a surprise that other entities will use that same well-oiled machinery for their own purposes.

<comment><USER17> I think it's easier and more correct to view it the other way round: propaganda is a form of advertising. Specifically it's political advertising which intends to bring you round to some viewpoint.

Viewed this way it's much easier to see the evils that advertising can and does propagate.

<comment><USER18> Isn't it easier to see the evil parts of advertising if one calls it a form of propaganda than the other way around?

In my opinion: using the first sentence of the wikipedia articles for advertising and propaganda, I would argue that advertising is a sub-set of propaganda:

Propaganda is information that is used primarily to influence an audience and further an agenda, which may not be objective and may be presenting facts selectively to encourage a particular synthesis or perception, or using loaded language to produce an emotional rather than a rational response to the information that is presented.

Advertising is a marketing communication that employs an openly sponsored, non-personal message to promote or sell a product, service or idea.

<comment><USER17> Why is it that advertising is (in your opinion) only openly sponsored and non- personal? I receive plenty of targeted, personal messages which I consider advertising, from mail to abandoned cart notifications. And there are definitely adverts online which do not make the sponsored aspect clear.

<comment><USER18> Hm, I'm actually not sure where I draw the line for what is avdertising and what is not.

The part about non-personal is copy-pasted from:

[https://en.wikipedia.org/wiki/Advertising](https://en.wikipedia.org/wiki/Advertising)

And the 3rd sentence on that page is: "It differs from personal selling in that the message is non-personal, i.e., not directed to a particular individual."

I would probably say that it is still advertising if it is using some form of automated targeting, such as: buying a list of people who just got kids and sending them a letter with their name printed on it.

But If someone stopped me on the street and asked if I have heard about the latest pyramid scheme, I would not call advertising but rather "personal selling"

</comment></comment></comment></comment></comment><comment><USER19> It seems like this is a return to the normal. Before the internet, repressive regimes had an easier time censoring mass media, monitoring telecommunications and stop organizing efforts.

The major problem isn't so much the surveillance technology, but the intent and power of those governments. The solution must be political, rather than technological, if only because politics can eventually tackle any technology.

<comment><USER20> > if only because politics can eventually tackle any technology.

This. 100%. I think a lot of technologists struggle with this for various (understandable) reasons.

</comment></comment><comment><USER21> I remember, in the mid-1980s, I was attending an event called MacHack (long since gone the way of the dodo). There was an Australian gentleman there, who was writing database code as a contractor for the Sultan of Oman. It was basically a "people tracker," and he expressed misgivings about its use (not enough to prevent him from taking the money, though).

In the US, people think that keeping guns is some sort of guarantor of freedom.

I posit that the computer database is the single biggest threat to freedom on Earth. It's just a bit more difficult to understand databases, so we ignore them, and keep updating our Facebook status.

<comment><USER22> _Database Nation_ (Simson Garfinkel, 2000) was a nice intro to the topic. I agree that the abstraction into a computer jargon renders the topic more distant, somehow, to people than the Violent Femmes bit: "I hope you know that this will go down on your permanent record."

</comment></comment><comment><USER23> > If an app — let's say Uber — adopts our tech, you would be able to use Uber > [without the internet]," says Jorge Ribs, CEO of Bridgefy

There have been a few of these phone mesh startups (OpenGarden, RightMesh, Bridgefy) over the years, and they all seem to dramatically oversell the abilities of a phone's radio.

Basic physics mean that a network made up of only phones will be extremely slow, even if everyone has the app. Text messages delivered unreliably is probably the best you're going to get in the foreseeable future.

I'm sure it's tempting to embellish the abilities of one's technology to investors and press, but the quote above is obviously false.

<comment><USER24> Today, in consumer space you are correct.

If you look at some of the military and police radios, they can build 10Gb mesh networks.

<comment><USER25> An example would be the mesh network in NYC [https://www.nycmesh.net](https://www.nycmesh.net)

<comment><USER23> They use dedicated radios with good lines of sight (mounted very high up), and aimed reflectors. Not phones with tiny battery-powered radios. NYCMesh is basically just a nonprofit ISP.

</comment></comment></comment></comment><comment><USER26> It's been 150 days that internet has been blocked in Kashmir by the Indian government.

The Indian government routinely blocks internet in various parts of the country. They recently even blocked it in the national capital, Delhi.

</comment><comment><USER27> This story seems to focus on the minor offenses, ignoring the huge one - <USER2> seeing the forest from the trees.

> Twitter employees ... spying on behalf of Saudi Arabia ... passed private > information about more than 6,000 Twitter users

2 employees, 6,000 spied on. How about: All employees, everybody spied on? Hundreds of millions of people?

> For most people, the news sparked concerns that companies like Twitter are > failing to keep user information secure

For the rest of us, no concern was sparked, because we:

1\. Know that some companies were always about selling user information to advertisers and other interested parties, and

2\. Noticed when Ed Snowden revealed that the large companies (Google, Facebook, Yahoo, Microsoft, Apple, maybe others) transmit all user information to the US government.

It seems like a lot of US media has been making an effort - one might say an active effort - to have the knowledge of mass (US) government surveillance fade out of our memories.

> Facebook CEO Mark Zuckerberg described cybersecurity as "an arms race,"

It's more of a quarrel among thieves. Facebook has the "loot" \- users' information, which is not kept safe from the company itself (though in many ways it could!) - and whoever has access to the loot can pass it on to other seedy elements.

> As governments get better at imposing online censorship

Censorship is a crude, blunt instrument. Governments try it and mostly fail. It's much more effective to drown stories out with noise and junk and drivel; or to create strung prejudice which prevents people from being open to regime- undesirable opinions and positions.

</comment><comment><USER28> Unpopular opinion: Its a sign of the world becoming more liberal and free. These kinds of weapons don't directly kill hundreds of thousands of people. It's propaganda wars. Let's hope all future wars are fought only on the internet.

<comment><USER29> Keep in mind that propaganda wars can kill people. Les not forget that Hitler was able to turn his conspiracy theory ideas about what should happen to the Jews into reality. Germany pre-hitler's rise was a vibrant democracy with many political parties.

<comment><USER30> > Keep in mind that propaganda wars can kill people.

Quoting Albert Speer [1]:

> Albert Speer, Hitler's architect and later Minister for Armaments and War > Production, later said the regime "made the complete use of all technical > means for domination of its own country. Through technical devices like the > radio and loudspeaker, 80 million people were deprived of independent > thought."

and to quote Goebbels himself [2], i.e. the Nazis' propaganda minister:

> It would not have been possible for us to take power or to use it in the > ways we have without the radio...It is no exaggeration to say that the > German revolution, at least in the form it took, would have been impossible > without the airplane and the radio…[Radio] reached the entire nation, > regardless of class, standing, or religion. That was primarily the result of > the tight centralization, the strong reporting, and the up-to-date nature of > the German radio.

[1] [https://en.wikipedia.org/wiki/Joseph_Goebbels#Workings_of_th...](https://en.wikipedia.org/wiki/Joseph_Goebbels#Workings_of_the_Ministry)

[2] [https://en.wikipedia.org/wiki/Radio_propaganda#Nazi_Germany](https://en.wikipedia.org/wiki/Radio_propaganda#Nazi_Germany)

</comment></comment></comment><comment><USER31> Surely not a fan of China's internet censorship or India shutting down the internet whenever people protest their insane nationalistic politics, but let's not forget what the NSA from the land of the "free" does.

<comment><USER32> > but let's not forget what the NSA from the land of the "free" does

Collects tons of data and then does nothing with it?

<comment><USER33> hah that reminds me of the demotivator "Government, if you hate our problems just wait until you see our solutions".

</comment></comment></comment><comment><USER34> Fragmentation is relative, and "weoponization" in the sense described in the article is global.

That doesn't mean we're equally affected and government type doesn't matter. If a scary dictatorship gets access to journalist communications, for example, a scary dictatorship will more aggressively action that.

That said, almost any of these "weaponization" trends happen everywhere and affect everyone. Strong democracies have certain defenses, but that doesn't make them immune.

Spying, censorship, propoganda, media manipulation, disruption of activist or political groups... These uses are growing. Democratic norms and institutions are not absolute, or necessarily even even effective at preventing abuses of a totally new communication ecosystem.

It's not as if our high courts, parliaments or whatnot have been breaking new ground recently. The ground however, keeps moving regardless.

</comment><comment><USER35> And I couldn't access the link because medium is blocked here in Egypt. The irony

</comment><comment><USER36> I'm trying to think of an instance where a government (authoritarian or not) hasn't used technology to advance its agenda, or more to the point of the article, for espionage. I can't think of one.

<comment><USER29> There isn't one because all governments focus on continuance of their regime once they've gained a foothold for power.

</comment></comment><comment><USER37> Nations are turning the internet into a weapon. It's terrible when it comes to authoritarian nations, as it's so difficult to imagine an upheaval taking place under internet surveillance, but it's even scarier with democracies.

The law in a democracy is not meant to describe the future. It describes what people do in the past. But democracies rely on people occasionally breaking the law in order to evolve and improve. If we use the internet to monitor and surpass every possible violation, we lose what makes democracies great.

</comment><comment><USER38> This is why decentralized protocols are so important, especially if you live where govt censorship is rampant. Internet was designed with decentralization in mind, first and foremost.

<comment><USER39> We're heading in the opposite direction because decentralization typically flies in the face of business interests. It's essentially the Apple IBM 1984 commercial, all over again.

If a business has something to sell, they want to he the central authority of it, otherwise someone else is making money.

Decentralized technologies/IP can certainly grow inside a given business but they still want to maintain some sort of stranglehold so as not to make that IP public if possible or maintain some sort of legal restrictions on its usage.

</comment></comment><comment><USER40> Companies that collect what could be very sensitive information about people should be subject to criminal negligence charges if someone comes to harm because of their carelessness. This is especially true where they promote highly politicized speech to drive engagement.

Civil suits won't do the trick when the chiefs are super-rich. No court would ever fine Facebook enough that Mark Zuckerberg could be inconvenienced in the slightest.

</comment><comment><USER41> What's the answer? I grew up in the late 2000s and really believed the internet would challenge existing power structures to change. I think in a lot of ways it did. Even as a fairly technically sophisticated user I can't seem to think what to do about the backslide though. Maybe good open source tools? Maybe a career in cybersecurity? It seems like the bad has more resources and incentives than the good now.

</comment><comment><USER42> Being authoritarian should be a property of the governments. I don't think nations become intentionally authoritarian.

<comment><USER43> > _I don't think nations become intentionally authoritarian_

They absolutely do. Most democracies and republics in history have transitioned to authoritarianism at the behest of their own citizens. Centralized power is seen as a route to fast, urgent reform. The most famous example, of course, is Julius Caesar's assumption of power.

This is partially why "populist" can have a negative connotation in political or historical discussions. Putin is (supposedly) very popular, and Stalin is still remembered fondly by a surprising number[1] of Russians. South America has had tons of popular authoritarians, like Juan Perón[3], Alberto Fujimori[4], and Getúlio Vargas.

1\. [https://www.usnews.com/news/best- countries/articles/2019-05-...](https://www.usnews.com/news/best- countries/articles/2019-05-09/stalin-is-more-popular-than-ever-in-russia- survey-shows)

2\. [https://en.wikipedia.org/wiki/Juan_Per%C3%B3n#Fascist_influe...](https://en.wikipedia.org/wiki/Juan_Per%C3%B3n#Fascist_influence)

3\. [https://en.wikipedia.org/wiki/Juan_Per%C3%B3n#Fascist_influe...](https://en.wikipedia.org/wiki/Juan_Per%C3%B3n#Fascist_influence)

4\. [https://en.wikipedia.org/wiki/Alberto_Fujimori](https://en.wikipedia.org/wiki/Alberto_Fujimori)

</comment></comment><comment><USER44> Six top level comments, and four of them are of the form "whatabout democratic nations doing the same thing, huh?"

<comment><USER45> it wouldn't be news if everyone did it no?

</comment></comment><comment><USER46> Oh those nasty authoritarians! IMHO, that's a pretty narrow point of view, reminiscent of cold-war rhetoric. There's a 2016 documentary called Black Code [1] on the weaponization of the internet. While the documentary also focuses on "authoritarian" nations, their commentary was more insightful:

> it feels, I think to many, exotic and different and it couldn't happen here. > And I think, in fact, what you're seeing in Syria is this is what happens > when the risks get higher but the technology is the same.

[1] [https://www.imdb.com/title/tt5937964/](https://www.imdb.com/title/tt5937964/)

</comment><comment><USER47> Surprised to see India not mentioned in the article.

[https://internetshutdowns.in/](https://internetshutdowns.in/)

</comment><comment><USER48> The US had thousands of bots defending the Evo Morales Bolivia coup. Barely anyone in Bolivia speaks English.

<comment><USER49> Not sure what your point is, but Evo is the authoritarian that would do what the article is describing. He wanted to be dictator and wanted all kinds of controls on the people there including media. Also if you ever been there you will realize the majority of people understand English, if not actually speak it pretty well.

</comment></comment><comment><USER50> Innovations can't win over evil.

</comment><comment><USER51> The Western Firewall is forming.

</comment><comment><USER52> As Stallman said, this technology would have been Stalin's dream.

We must control the amount of data that we put in the hands of others, and we must do that avoiding the use of services that tracks us, avoid Google, Microsoft, Apple, Amazon, and we must use only encrypted communication. Who says that in our democratic country in a couple of years will not arrive a dictator that will use this data that was collected to repress us? To me is not only possible, but probable, seeing the cult of the strong man in power that is appreciated nowadays.

</comment><comment><USER53> Yea, must fight back!

</comment><comment><USER54> Authoritarian? As if America has NOT been turning the internet into a weapon?

<comment><USER55> C'mon man, the Internet started out as a weapon.

</comment></comment><comment><USER56> I agree, US has always used the internet as a weapon. This being actually in line with the article's title.

</comment><comment><USER57> When talking about censorship, I want to discuss about zeronet.

It appear to be censorship free. Yes, the zite owner can apply censorship, but anyone can clone the zite and become the new admin (similar to fork in the GUI of github).

And there is hub mechanism so people can see aggregated content from multiple zites.

Zeronet may be not as good as the FANG but it's already usable.

<comment><USER58> Zeronet feels too monolithic to be an effective web replacement to me, given it's almost all delivered through that its frontend. I'm more interested in systmes like ipfs

</comment></comment><comment><USER59> Western business practices is the first thing that came to my mind when I saw the title. The internet has been a weapon for a while now. The authoritarians are late to the party and they are putting their specific spin on it, but we've been doing it for some time now. NSA, Cambridge Analytica, mass surveillance by big-business, general manipulation through media (e.g. news outlets, advertisement). The authoritarian regimes function differently, so they do it differently. I've no sympathy for them, but pointing fingers saying "they've weaponized the internet" is severe hyperopia.</comment>


Show HN: Windows 10 window switching (macOS style) - <AUTHOR> https://neosmart.net/blog/2017/easy-window-switcher/ <comment><AUTHOR> Just saw the macOS window switcher mimicking Windows 10 on the homepage and was reminded of this utility I wrote a whole back to bring macOS-like same-app Window switching to Windows 10!</comment>