Titan Aerial Daughtercraft - <AUTHOR> http://www.nasa.gov/content/titan-aerial-daughtercraft/#.U6BZDpRX-ub <comment><USER2> As I understand it, they want to perform a feasibility study to determine if a mothership (balloon or lander) and daughtership (rotorcraft, maybe a quadcopter) combination would be an effective way to study Titan.

The mothership would act as a base of operations; a recharging station at the least, probably containing communication devices and its own sensors as well.

The daughtership, potentially multiple daughterships, would sortie out from the mothership and investigate the surface up close.

They outline 4 outcomes from the initial study:

(1) develop mission concepts of operations for deployment from a lander or balloon to acquire context imaging and mapping data, to sample from solid surfaces and/or lakes, and to return to the mothership to deposit samples and/or recharge;

(2) develop a parametric sizing model of the daughtercraft to characterize propulsion, power, range, endurance, and payload capability for total daughtercraft mass ranging from approximately 1 to 10 kg;

(3) develop a conceptual design and identify representative components for the entire daughtercraft hardware and software system for autonomous mobility, including estimates of approximate mass, power, and energy budgets and producing a representative CAD model; and

(4) develop a conceptual design and preliminary CAD model for a science payload on the daughtercraft, including specifying a nominal instrument suite on the balloon or lander, designing a compatible sampling mechanism to acquire solid and/or liquid samples on the daughtercraft, and studying mechanisms and daughtercraft behaviors necessary to transfer the samples to the instruments.

The study will be carried out by JPL.

\----

I wonder how much the rotorcraft community (hobbyist or otherwise) could contribute to a study like this. I can imagine this would be extremely interesting, and not so different from the many applications already being investigated.

<comment><USER3> I'm part-way through building a plane at the moment, which will play host to a small quadcopter with its own video feed, so this story feels a lot like whats going on in my workshop. The intention is to build an automated system that will send the plane to a location, drop the quad, do a video survey, pick the quad back up, and fly back. This is purely for hobby purposes, as I am very interested in automatic flight systems, and while its too late for me to pursue a career in aerospace proper, its at least a means to fulfill my dreams of having such devices under my control.

I think that the next 5 or 10 years of innovation in aerospace _is_ going to come from the RC/UAV hobbyists who are pushing the boundaries of drone technology. Already we are seeing in the RC world massive leaps in drone automation, which have immediate uses in the real world, and it doesn't look like its going to stop. There's not a day that goes by where someone hasn't released an innovative new aspect of drone technology - whether its flight, construction, recovery, or application.

<comment><USER4> That sounds really amazing. Have you thought through the details of the rendezvous & docking? Is that as hard as it sounds? I imagine the mothership would need to be travelling what 25 mph? 20? Or is the absolute horizontal speed not that big of an issue because it's the relative movement between the two that matters?

<comment><USER5> Rendezvous and docking _are_ hard problems, and at the moment I don't have a solution, but am actively thinking about it. ;) It may be that I'll use a magnetic docking system to avoid mechanical complications during a very tricky flight maneuver which will require the quad to hold a fixed position while the plane lines up, but this is not as simple as it sounds. Actually, its the hardest part, and I'm leaving it for last.

</comment></comment></comment></comment><comment><USER6> I would like to see more of my tax dollars going to an endeavor like this.

<comment><USER7> Inform your Congressman: [http://www.contactingthecongress.org/](http://www.contactingthecongress.org/)

</comment></comment><comment><USER8> > Titan is the richest laboratory in the solar system for studying prebiotic > chemistry

Does that mean prebiotic environment + time != biotic environment?

Is this NASA being conservative and managing expectations?

I'm probably incorrect in assuming this but given our current theories about abiogenesis you would think either the environment isn't viably pre-biotic or it would be full on biotic by now.

If it is, say, quasi-prebiotic wouldn't that make it much less valuable for study if the goal is to understand the origin of life?

I think this suggests they're either downplaying the mission as a search for life or overstating the value of studying the moon as a "prebiotic" environment.

<comment><USER9> That is one of the questions this mission is intended to contribute to. Yes, the current theories would expect that, but they would also expect the observable universe to be swarming with intelligent life, which it doesn't (see [http://en.wikipedia.org/wiki/Fermi_paradox](http://en.wikipedia.org/wiki/Fermi_paradox)). We are still looking for the Great Filter, and if Titan is still viably pre- biotic but lifeless, it would point to the optimisitc outlook that life is less common than thought and that the filter may actually be in our past. If, on the other hand, there is independent complex life on titan, things look less good for us, as that points to a Great Filter later in the development of life.

<comment><USER10> "... swarming with intelligent life, which it doesn't ..."

And you know this, how? The universe is a pretty big place.

</comment></comment></comment><comment><USER11> I love NASA's conceptual art, but I think they used MSpaint for this one:

[http://www.nasa.gov/sites/default/files/matthies.jpg](http://www.nasa.gov/sites/default/files/matthies.jpg)

<comment><USER7> I have a feeling that image was created in MS paint solely for a proof of concept slide deck. Then the engineer/team behind it got swamped in the new amounts of paperwork to do with their proposal and didn't get a chance to do a better rendering. Or the image was associated with the project in their slides and a PR rep just lifted the image for the webpage without consulting the team.

</comment></comment><comment><USER12> > mission concepts to date have had either no mobility (landers), no surface > access (balloons and airplanes), or low maturity, high risk, and/or high > development costs for this environment (e,g. large, self-sufficient, long- > duration helicopters).

How come helicopters have surface access but balloons don't? Why does NASA think you can't land a balloon?

Landing balloons were proposed for Mars:

[http://www2.jpl.nasa.gov/adv_tech/balloons/mars_overview.htm](http://www2.jpl.nasa.gov/adv_tech/balloons/mars_overview.htm)

And we operate rather a number of them here on Earth. What's the problem? Has the idea of autonomous landing balloons been written off altogether? Or is there something about Titan which makes them impractical? If the latter, it would apparently have to be something that leaves a 10kg battery-powered helicopter plausible.

<comment><USER3> >How come helicopters have surface access but balloons don't? Why does NASA think you can't land a balloon?

Atmospheric pressure differential being what it is, there are only certain regions that the balloon can operate. The point is, there are only certain regions the copters can operate too, but by combining both the entire spectrum can be covered.

</comment></comment><comment><USER13> I just plain love NASA.</comment>


Real-time News Recommendation - <AUTHOR> http://cotaste.com/ <comment><USER2> What is this?

Anyone here made it?

(Tried to figure out by looking at the page but couldn't find and about page or anything.)

The one comment so far looks really spammy.

<comment><AUTHOR> Thank you, [http://cotaste.com/](http://cotaste.com/) is a tool to help you consume new information in real-time based on your interests.</comment></comment>


Windows Phone 8 live event (10 AM PT) - <AUTHOR> http://www.microsoft.com/en-us/news/presskits/windowsphone/liveevent.aspx

<comment><USER2> "Please Install Silverlight to view this content"

They'll never learn.

<comment><USER3> > They'll never learn.

I'm with Microsoft. There must be something wrong with the implants: I've been here for years and still don't understand the culture. I don't understand why people use "ask" as a noun instead of "request"; I don't understand why almost every here uses "Microsoft Tag" instead of universal, ubiquitous-in-the- outside-world QR codes; and I don't understand why we still create websites using Silverlight instead of moving to Flash or HTML5.

Don't people realize how transparently sycophantic they look when they use a technology that's dead to the outside world? Depending on the day, I feel like either 1) some people are so insulated from the outside world that they believe Silverlight yet lives, 2) they know Silverlight is dead and are terrified of the wrath of LCA coming down upon from for installing non- Microsoft software on their work computers, or 3) they're savvy, but trying to use as much jargon and proprietary stuff as possible in order to project a false image of group cohesion and loyalty come review time.

<comment><USER4> Silverlight is dead?

Funny, I believe that is what Netflix uses to stream to the desktop. Also, given the install base of Windows, I am pretty sure most everyday users have it installed.

I'm a Mac person myself and only fire up Chrome when I need Flash. I've got silverlight installed across all browsers -- mainly due to netflix. That said, I see "web designers" doing more annoying sites with Flash (mmm...embedded video that auto plays with volume) than I do with Silverlight.

Just a thought.

<comment><USER5> The install base of silverlight is pretty low, but way higher than I expected. Its hard to get hard reliable numbers but I've seen from 50% all the way up to 70% or so. Its much higher than I expected, but not high enough to count on. I don't get the draw when flash has an install base in the higher end of 90%. Once again its hard to get reliable numbers, but there is no doubt it trounces silverlight.

Even java plug-in install base beats silverlight's which is pretty bad. I know netflix and mlb.com use it, but I don't know a lot of others. I'm sure they are there, but it doesn't scream lively tech to me.

<comment><USER6> I realize that Silverlight is not pre-installed with Windows but it I read that some OEMs (Dell for example) do bundle it for their customers. Anyone can verify this?

</comment></comment></comment></comment></comment><comment><USER7> I wish Google would add time zone conversions to their search. I had to resort to WA[1] to find out what time is the event in Europe.

[1]<https://www.wolframalpha.com/input/?i=10+am+PT+to+GMT>

<comment><USER8> I use <http://www.thetimezoneconverter.com/> \- ridiculously convenient.

<comment><USER9> World Time Buddy is another good one: <http://www.worldtimebuddy.com>

</comment></comment></comment><comment><USER10> Syncing music from iTunes to Windows Phone now. That's a nice way to help break the iPhone lock in.

<comment><USER11> Palm used to allow syncing through iTunes as well. Every time Apple updated iTunes, it would lock out the Palm Pre; Palm, then, would issue a software update that re-enabled the functionality:

> _Since the Palm Pre first became available this summer, Palm has issued > several updates to its mobile operating system, causing iTunes software to > recognize the phone as an Apple music player, allowing it to synchronize and > transfer files between the phone and a personal computer. Apple has > repeatedly disabled the syncing feature in subsequent software updates to > iTunes._ [1]

Eventually, "Palm filed a complaint with the USB Implementers Forum", but the forum "rebuffed" Palm's claims. From then on, the Palm Pre could no longer sync with iTunes.

I see that Microsoft isn't masquerading their phone as an iPod (or iPhone?) like Palm did, and is instead releasing a separate app on their own (MacSync, according to Wired [2]), so it's harder for Apple to stop them. I would guess that they're directly importing the iTunes files on the disk, but if the idea is so simple, why didn't Palm do the same thing? Why would they risk going through iTunes?

The harder it was for Microsoft to implement, the easier it will be for Apple to disable. I wonder what Apple will do now.

1\. [http://bits.blogs.nytimes.com/2009/11/19/palm-drops- itunes-w...](http://bits.blogs.nytimes.com/2009/11/19/palm-drops-itunes- workaround-for-now/)

2\. [http://www.wired.com/gadgetlab/2012/10/liveblog-microsoft- ro...](http://www.wired.com/gadgetlab/2012/10/liveblog-microsoft-rolls-out- windows-phone-8/)

<comment><USER12> Palm got rebuffed because they masqueraded as an Apple product. The USB-IF understandably didn't like that.

It won't be "harder for Apple to stop" Microsoft because Apple is unlikely to even try to do so. Apple has a documented method for accessing the iTunes library (RIM and others used it). Even if there were not an approved way to do it, the database is in XML so it should be relatively easy to work with it. Why Palm took the route they did mystifies me.

So what will Apple do now, you ask? Nothing, more than likely.

</comment></comment></comment><comment><USER13> You'd think a launch would be geared to play to the widest audience. Disappointing that the presentation requires Silverlight to view. Wasn't Silverlight EOLed?

<comment><USER14> There's a Flash (another why) stream as well at the bottom of the page: [http://www.microsoft.com/en- us/news/presskits/windowsphone/l...](http://www.microsoft.com/en- us/news/presskits/windowsphone/liveevent2.aspx)

</comment></comment><comment><USER10> I'm surprised they didn't cancel to keep from competing with the hurricane.

On the other hand, there's not much other news than the hurricane, so it might be a smart move.

<comment><USER15> Be on the lookout for more stealth Zynga layoffs.

</comment></comment><comment><USER16> Am I really watching a Silverlight video in Google Chrome? How the hell is this working?!

<comment><USER17> NPAPI. You could do the same in Firefox. Or Safari. Even on a Mac.

</comment></comment><comment><USER18> Barely visible choice of white letters on yellow background (at least for me, it could be that live is better)

</comment><comment><USER19> They are demoing the phone operating system on an HTC device.

Yay for Nokia locking themselves into this OS and not even getting that small token of appreciation.

<comment><USER10> I thought they were switching back and forth between the HTC and the Nokia...

I wasn't really paying attention, but I'm sure I saw a big yellow phone at some point.

<comment><USER14> Yeah, Ballmer is presenting all of the brands at the moment. I noticed that he even pocketed the Nokia, I wonder if that was part of the deal ;)

<comment><USER20> Quite symbolic. "Hey Nokia - with Elop, you're in our pocket". How's it fell in there?

<comment><USER21> I think you're reading a bit much into the symbolism there. I mean, if he didn't put it in his pocket, one could have just as well said "Hey Nokia, how does it feel being left out in the cold?"</comment></comment></comment></comment></comment>


Hask is not a category - <AUTHOR> http://math.andrej.com/2016/08/06/hask-is-not-a-category/ <comment><USER2> The article is spot on. Even the proposed construction of a category by taking the quotient of closed terms under observational equivalence probably wouldn't really work. You may be able to get a category this way, but it just wouldn't have nice properties. Reasoning in the presence of selective strictness is hard...

On the other hand I don't think it's actually very relevant. Category theory in the context of haskell is a source of ideas, not a tool for formal proofs. Stream fusion and related constructions such as free monads are wrong if you take seq and undefined into account (and don't even start with actual impure features such as unsafePerformIO). So the "real" category Hask would tell you that these constructions don't exist.

The category that people seem to think of as Hask seems to consist of the total functions modulo the obvious observational equivalence. This is very well behaved and I'd argue that it's a great source of ideas for practical programming patterns.

<comment><USER3> > Category theory in the context of haskell is a source of ideas, not a tool > for formal proofs.

My thought as well.

It seems Haskell gets criticism from both ends of the spectrum: it's either too academic to be practical or too practical to be academic.

<comment><USER4> > It seems Haskell gets criticism from both ends of the spectrum: it's either > too academic to be practical or too practical to be academic.

How about "its abstractions leak in ways the community doesn't want to address"?

And "too practical to be academic" is bullshit. There's nothing more practical than an elegant language whose actual semantics matches the way you think.

<comment><USER5> Can you give some examples of abstractions that leak which the community doesn't want (or hasn't wanted) to address?

<comment><USER4> Let's take a basic one: Haskellers would tell you with a straight face that `Either a b` is really the coproduct of `a` and `b`. It's not.

If you bring up bottom, they'll tell you "oh, let's just ignore it". Well, the only way you can ignore it and not be wrong, is to arrange things so that a variable never stands for bottom - that is, to use a strict language.

Don't get me wrong, Haskell's abstractions are nice - or they would be, if the premises they are built upon were true.

<comment><USER6> There is one more way to make sure that variables do not stand of bottom -- make sure that you only write terminating functions. Then the equational theory for strict and lazy evaluation becomes the same.

I think this is the main reason that people don't worry too much about bottom: in practice all functions should terminate anyway. If your program gets stuck in an infinite loop, you probably have bug.

<comment><USER4> > in practice all functions should terminate anyway

Sometimes they terminate with an exception.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> God, I'm so tired of this boring platitude. Every criticism of Haskell not satisfying category laws (of which there are many) are of the form "undefined breaks things". Obviously! How would a runtime-error-inducing concession to practicality _not_ break things? Haskell also fails to satisfy the category laws if I make unsafe FFI calls or use unsafePerformIO to crash the program randomly. Thus is the nature of programming languages.

<comment><USER8> But as Haskellers we _are_ concerned about unsafePerformIO et al. -- this is why we have the SAFE pragma.

<comment><USER9> Agreed. But it doesn't need Andrej Bauer to point it out to us.

</comment></comment></comment><comment><USER6> Dan Piponi wrote an article about this: "What Category do Haskell Types and Functions Live In?" ([http://blog.sigfpe.com/2009/10/what-category-do-haskell- type...](http://blog.sigfpe.com/2009/10/what-category-do-haskell-types- and.html))

He says that the more fruitful connection between Haskell and category theory goes in the reverse direction. Rather than trying to define a category Hask, which would contain all Haskell programs including exceptions, "undefined", out of memory, and so on, and then see if there are any general theorems in category theory which would help us understand Haskell, we should do it the other way around. Look at a particular small Haskell program, consider all the different categories it could be interpreted in, and see if this gives us a better understanding of category theory!

</comment><comment><USER10> I would like to see an analysis of Hask when restricted in one of the following ways:

1\. Only strict functions (f ⊥ = ⊥)

2\. Only total functions (x ≠ ⊥ -> f x ≠ ⊥)

But otherwise, the notion that Hask is not a category is nothing new.

<comment><USER4> The problem is that the entire library ecosystem is built under false premises. It's annoying, because you occasionally stumble upon an abstraction leak, and then you need to take a really deep breath, climb down the abstraction ladder (which is pretty tall in Haskell's case!), and look for the exact place where something went wrong.

<comment><USER10> I'm not convinced. All abstractions are leaky, you just have to decide whether a particular abstraction is useful or not in spite of its leaks. I think the problem you are talking about is the fact that Haskell code tends to have lots of abstractions built on top of other abstractions.

While this is definitely a problem in some Haskell code bases, you will also see your fair share of Haskell code which is closer to purely functional code or closer to straightforward imperative code.

<comment><USER4> > All abstractions are leaky,

I can tolerate abstraction leaks when the cost of using the non-leaky version is prohibitive. For example, I wouldn't want a language that constantly reminds me that memory allocation can fail. "Memory is infinite" is just too nice an abstraction, and I'm not going to let the fact it isn't true get in the way.

But I can't live with a mismatch between the language's intended and actual semantics. If the Haskell language, libraries and community promise me that Hask is morally the category of sets, then it better be morally the category of sets! Of course, this promise is impossible to fulfill in a language without a typefully delimited terminating subset, so Haskellers better scale down their ambitions to something actually realizable.

> I think the problem you are talking about is the fact that Haskell code > tends to have lots of abstractions built on top of other abstractions.

No, I don't mind high abstraction towers - I actually like them, in fact! What I hate is climbing them down because some abstraction leaked somewhere.

> you will also see your fair share of Haskell code which is closer to purely > functional code or closer to straightforward imperative code.

Since when is imperative code straightforward? Reasoning about purely functional programs: high school algebra, plus induction over datatypes. Reasoning about imperative programs: Hoare logic. The facts speak for themselves.

In any case, this has nothing to do with functional vs. imperative. It's just "please don't impose cognitive dissonance on me!"

<comment><USER10> That's a really disingenuous interpretation of "straightforward". If you don't want to have a real conversation then just don't bother replying next time.

<comment><USER4> > If you don't want to have a real conversation

I wanted to have a real conversation, but, given the hostility in your response, I'll stop.

<comment><USER10> Hostility was exactly what I read in your comment about Hoare logic.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Is this true? Probably, I don't know the math.

Do we, as Haskell programmers, need to care? No. If you want to learn Haskell, forget Category theory, until you want to learn the theoretical underpinnings of it. Focus on learning how Haskell ACTUALLY works, not how mathematicians want it to work.

In short, learning category theory will likely help you learn Haskell about as much as learning lambda calculus will help you learn Lisp. Maybe a bit less.

<comment><USER12> > If you want to learn Haskell, forget Category theory, until you want to > learn the theoretical underpinnings of it.

Category Theory isn't very useful for learning the theoretical underpinnings of the language itself.

<comment><USER11> Oh. Wow. It's worse than I thought.

<comment><USER12> I'm not sure what you mean by that. Haskell, the language, is theoretically built more on the lambda calculus and logic. Category Theory has served a fruitful source of inspiration in the design of some languages (and in some places provides a common vocabulary).

</comment></comment></comment></comment><comment><USER13> I wonder what the author thinks of "Fast and loose reasoning is morally correct" (Danielsson, Hughes, Jansson, Gibbons. 2006. [https://www.cs.ox.ac.uk/jeremy.gibbons/publications/fast+loo...](https://www.cs.ox.ac.uk/jeremy.gibbons/publications/fast+loose.pdf)).

<comment><USER14> That paper is just a bit of bureaucracy which demonstrates that total programs behave the same in a total language as when they are embedded into a partial language (which is an intuitive result, and it's nice that they worked out the details!). It's also a nice demonstration of the logical relations proof technique.

But sadly this paper is pulled out all the time by people who I suspect don't understand what is going on, to justify sleight of hand & dodgy reasoning which has little to do with the result in the paper. (Not claiming that's what's happening in the above comment! But I bristle a bit when I see this paper come up in amateur/Haskell circles.)

</comment></comment><comment><USER15> Do we not get a category if we take morphisms from A to B to be expressions of type B with a free variable of type A (thus, morphisms are non-closed terms), and composition of f with g to be substitution of g into the free variable in f? This is automatically associative with proper identities, anyway, even with a purely syntactic notion of morphism equivalence. Of course, one will probably want to impose a coarser notion of equivalence to reason categorically about Haskell in near-usual ways, and perhaps subtleties plague all attempts to do so usefully.

</comment><comment><USER16> Is there a good introduction to category theory online that references applications in functional programming? I never took a category class in college and am looking to read up on it

<comment><USER17> "Category Theory for Programmers" is generally excellent and quite easy to read: [https://bartoszmilewski.com/2014/10/28/category-theory- for-p...](https://bartoszmilewski.com/2014/10/28/category-theory-for- programmers-the-preface/)

</comment></comment><comment><USER18> It's well known that `seq` wreaks havoc on lazy semantics. Without `seq` it's much easier to make it a category.

</comment><comment><USER19> This is an awesome article about a novel, practical problem solved by Haskell. Or rather I wish it was so my time wasn't utterly wasted.

<comment><USER18> what did you expect from the title?

</comment></comment><comment><USER4> It's been known for quite a while that Haskellers live in a make-believe world where totality is taken for granted, and Hask is morally the category of sets.

One possible fix is to read the call-by-push-value papers: [http://www.cs.bham.ac.uk/~pbl/cbpv.html](http://www.cs.bham.ac.uk/~pbl/cbpv.html). The danger is that they might want to switch to a strict language.

<comment><USER18> Haskell* is essentially an extension of System F. System F has no set models.

* Need to enable a few extensions.

<comment><USER4> Oh, that's another thing that makes me really angry too: GHC's lack of distinction between first-class polymorphism (functions from types to values, à la System F(ω)) and second-class polymorphism (values, not necessarily functions, that admit more than one type, à la Damas-Milner). But that's a topic for another day.

EDIT: Also, I forgot, I haven't actually seen Haskellers use ImpredicativeTypes much. Are you really sure that the predicative subset of System F (just RankN types) has no set models?</comment></comment></comment>


Announcing Intel Clear Containers V2.1.1 - ah- https://clearlinux.org/blogs/announcing-intel%C2%AE-clear-containers-v211 <comment><AUTHOR> Here's a cool technical and short article about the Clear Containers by someone worked on the project to bring you up to speed with what is going on: [https://lwn.net/Articles/644675/](https://lwn.net/Articles/644675/)

</comment><comment><USER2> If you want to try out Clear Containers with rkt you can easily do it on a linux physical machine. First, install rkt via deb/rpm[1] or tarball[2]

Then do:

        sudo rkt run --debug --insecure-options=image --stage1-name=coreos.com/rkt/stage1-kvm:1.25.0 docker://redis

If you run into problem you can email rkt-dev[3].

[1] [https://coreos.com/rkt/docs/latest/distributions.html#rpm- ba...](https://coreos.com/rkt/docs/latest/distributions.html#rpm-based) [2] [https://github.com/coreos/rkt/releases/tag/v1.25.0](https://github.com/coreos/rkt/releases/tag/v1.25.0) [3] [https://groups.google.com/forum/#!forum/rkt- dev](https://groups.google.com/forum/#!forum/rkt-dev)

</comment><comment><USER3> I hadn't seen this project before. It looks really cool. I especially like the support for pushing network configuration at startup (via the "hyperstart" concept in v1 and systemd in v2). This is sorely lacking in Docker. You can accomplish it with pipework (which is just a wrapper around `ip exec` in the container netns), but then you need to write code in the container like "wait for interface XX to be up before running entry_point.sh"

My use case is creating containers with multiple interfaces and custom routing rules for each interface. Currently I am using pipework.sh to setup the interfaces and routes, but it's a dirty hack and increases container boot time due to the need to poll for interfaces to be up before starting the application. It looks like this "hyperstart"/systemd approach to namespace isolation avoids that latency, which is nice.

Unfortunately, according to these docs, each container interface requires a tap bridge in addition to the usual veth pair, due to qemu networking limitations. That's unfortunate, especially for containers with multiple interfaces, which is specifically my use-case.

Does anyone have an idea of the overhead of creating many tap interfaces within a container?

<comment><USER4> FWIW I just use Joyent Triton with SmartOS and docker containers, my VLANs exist on start and I can't imagine dealing with those issues. What SDN solution are you using that requires this kind of init process?

Solaris solved the service dependency graph problem with SMF, which is nice.

<comment><USER3> I'm using out of the box docker container networking. I setup a bridge network (docker network create) for every external IP on the host. Each container needs multiple external IPs, so it joins multiple bridge networks and then sets up routing rules for the outbound traffic on each interface. When creating a container, you can only join it to one network. But once it's created you can run 'docker network attach' to join other networks (and get an interface for each). However the application is already running at that point.

What I really want is to create and configure a network namespace using my own tools, and then launch a docker container into the existing namespace. I haven't figured out how to do this yet.

<comment><USER5> (Clear Containers dev here)

I believe a "correct" way to do it would be to create a network plugin (or extend an existing one that does 80% of what you want) for docker doing what you want. Those are the ones responsible for setting up the network namespace at startup. A new CNM plugin, only if the current one isn't enough of course, a number of things can be done before container startup, eg. [https://docs.docker.com/engine/userguide/networking/default_...](https://docs.docker.com/engine/userguide/networking/default_network/build- bridges/).

The Clear containers OCI runtime doesn't add a feature to push network configuration in addition to what Docker already does today. It relies on a CNM plugin to setup the network namespace, as usual, then reads back the netns configuration to decide how to best interface between the container netns and the network stack within the VM. It's not exactly easy to get right and we have to juggle with all thid because we're trying to shoehorn a VM where netns are the de-facto interface. Work is going on to make all this simpler and integrated, but it will take some time.

A current limitation is that only the netns configuration at startup time is taken into account and `docker network connect` on a running container doesn't work (we'd have to listen to changes in the netns and propagate the configuration to the VM).

A bit more info there: [https://github.com/01org/cc-oci- runtime/blob/master/document...](https://github.com/01org/cc-oci- runtime/blob/master/documentation/architecture.md#networking)

<comment><USER3> Thank you very much for the reply.

I've already seen those links, but the information in your comment provides valuable context. Thanks!

One problem I've noticed is that you cannot add a routing table to a network namespace with the `ip exec netns <nsid>` command, because there is no `ip` command for creating a routing table. You need to edit the /etc/rt_tables file. Because of this, if your network configuration depends on creating routing tables, you need to wait for the filesystem to mount so you can edit /etc/rt_tables.

I've tried doing things like `ip exec netns <nsid> echo "tblnm 42" >> /etc/rt_tables` but I couldn't get it to work (how to redirect echo output in exec subshell into /etc/rt_tables in network namespace?).

I'm trying to create a really fast, multi-tenant routing fabric. I am relying on namespaces to separate rules, routes, and subnets from each other. This way all routing logic for tenants is separate but still done with native linux routing features at kernel speed.

I would love to be able to create the network namespace without any application running in it (so I can take advantage of kernel routing speed), and only launch an application when necessary (hmm... perhaps a one-time application to configure /etc/rt_tables)

</comment></comment></comment></comment></comment><comment><USER6> Anyone using this in production and betting on the long term viability of this project?

</comment><comment><USER7> Sounds similar to what [http://hypercontainer.io](http://hypercontainer.io) is doing.

</comment><comment><USER8> Pretty neat how nicely this integrates into an existing docker host setup. Definitely going to give it a try and see about integrating into containership.

edit: typo

</comment><comment><USER9> Containers done right

I wish the documentation was better for integrating with docker seamlessly</comment>


New #decisionsupport startup in Kirkland – rising competition to #Tableau? - <AUTHOR> http://www.salientworks.com/blog/2016/5/31/healthcare-and-data-analysis <comment><AUTHOR> What do you guys think? Looks like some interesting new advancements in the space of automated data analysis.</comment>


Results of Russia's Covid-19 vaccine produced antibody response: The Lancet - <AUTHOR> https://www.reuters.com/article/us-health-coronavirus-russia-vaccine/results-of-russias-covid-19-vaccine-produced-antibody-response-the-lancet-idUSKBN25V1I2 <comment><USER2> This is something i despise on HN. By normal standards, 10 points within 1 hour would've put this post on the front page.

See for example [https://news.ycombinator.com/item?id=24378758](https://news.ycombinator.com/item?id=24378758), with 8 points on the 9th place at the first page, at the time of writing 59 minutes ago (this post having 10 points, 1 hour ago, on the 3rd page).

Here we have a peer-reviewed, credible, scientific report of a probably uncomfortable truth, and it has to hide on page 3.

In the spirit of HN I admit I probably have a biased opinion, but I don't want to incite a flamewar. I am sincerely interested in the reasons - @dang, would be nice to help here.

And sure, vote me down to oblivion. But at least provide a reason.

<comment><USER3> The algorithm is public knowledge. This post shows 2 hours ago now and 10 points while the one you linked still shows 1 hour (meaning it's a little younger) and is already at 37 points. If you look at the algorithm small differences early on have a much bigger impact on rank.

But this thread isn't the place to discuss this kind of thing so I'll leave the off topic at that unless you want to make a separate post to continue the conversation.

</comment></comment><comment><AUTHOR> Link to the study:

[https://www.thelancet.com/journals/lancet/article/PIIS0140-6...](https://www.thelancet.com/journals/lancet/article/PIIS0140-6736\(20\)31866-3/fulltext)

</comment><comment><USER4> They should've named it _Laika_ instead.

</comment><comment><USER3> Are there methods of peeking at the long term safety of a vaccine without waiting for a long term?</comment>


The JavaFX Phone: The HTC Diamond - <AUTHOR> http://www.thebitsource.com/2009/06/05/the-javafx-phone-the-htc-diamond/

<comment><USER2> Went studying further on JavaFX after seeing this, to <http://javafx.com/launch/>

Looks pretty neat, actually, hooking into Photoshop etc. Wonder if this will take off...

Anyone have any experience about JavaFX?

[The page has a Java-based video player on it. Killed my browser for about 2 minutes, and needed a few prompts to start. Not that Java is slow or anything, but still. :) ]

<comment><USER3> JavaFX fails.. big time! and I say this after spending a few weeks playing with it.

Its still tied up to a lot of old Swing components for its underlying functionality. The browser plugin takes FOREVER to load and literally crashes safari on my mac.

Custom component development is difficult.

They introduced a new language called JavaFX script which alienates Java developers and offers not much in terms of new features.

Their "declaritive UI building" technique with the JFX script is ugly looking and unintuitive compared to flex MXML or silverlight XAML.

They still don't have a good WYSIWYG UI building tool.

It lags behind Flash in terms of installed base of the runtime.

Both Microsoft ( through expression studio ) and Adobe (flash catalyst) offers integration with photoshop and in the case of Flex, its an even closer level of integration through FXG.

Sun had the chance to change everything back then with applets, it failed and now JavaFX is too little and too late.

EDIT* and Flex is opensource too and IMO the code base is a lot more well written.

</comment></comment><comment><USER4> Well I am no expert in programming but on RIA frameworks and I would say that compared to Adobe and MS two frameworks it doesn't stand a chance.

Perhaps on the cellphone it's different but then again what I saw in the video was no impressive by any metrics I would normally use.

The problem for Sun is that they are brilliant people producing rather brilliant products and concepts but they are simply amateurs when it comes to spreading them and getting people to adopt them.

</comment><comment><USER5> I don't understand why you'd do JavaFX and not native Windows Mobile. It's not like there isn't a rich toolset for the latter.

</comment><comment><USER6> They're a little late to the party...</comment>


Read My Lips: Apple Is a Netbook Maker - <AUTHOR> http://bits.blogs.nytimes.com/2008/10/21/read-my-lips/

<comment><USER2> Rubbish - that's classic Jobsian misdirection. I'd put a tenner on Apple coming out with a netbook-esque device in the next 9 months.

<comment><USER3> I'd love to think it'll happen that fast. I do think it's a possibility - especially considering Asus reports having helped Apple develop a netbook.

</comment></comment><comment><USER4> If someone finally makes a worthwhile netbook, which I'm assuming Apple's would be, I would think the days of the Kindle and all the other high-priced, two toned, walled, "reading only" devices are very limited.

</comment><comment><USER5> I'm calling it right here and right now.

Within 5 years Apple is going to release a netbook that will be less than $300, they are going to be able to do this because the netbook is going to be powered off the iPhone.

<comment><USER6> Reminds me of the Palm Folio (<http://www.engadget.com/2007/05/30/palm-foleo- announced/>), though Apple's will probably be more capable.</comment></comment>


Don't let jQuery's $(document).ready() slow you down - <AUTHOR> http://encosia.com/2010/08/18/dont-let-jquerys-document-ready-slow-you-down/

<comment><USER3> I'm not sure he knows how .live works. .live doesn't wait for items to be ready and it only binds one event on to the top level document. .live waits for bubbled events and if the item bubbling the event matches this .live selector it calls back. Pretty smart if you think about it.

But either way he makes a great point on the document.ready if your page depends on ajax or some sort of ui styling its probably best in the header script.

<comment><USER4> Right, that's the crux of my overall point about .live(). Since it's using event delegation, the DOM elements don't need to be present at the time you declare it. If you have the opportunity to set up your .live() handlers early, you should.

</comment></comment><comment><USER5> Important takeaway: Use Firebug's network monitoring to find out what actually happens when your page loads.

<comment><USER6> Don't just base your conclusions on one page load, though, as this article seems to do. I wish there was a tool for Web Inspector/Firebug to select various elements over a series of page loads and give me statistics after e.g. 100 refreshes. Page load is highly variable and dependent on things like caching server-side, client-side, within the database, etc. as well as network conditions so repeating the tests is important.

<comment><USER4> None of those conclusions are based on the two screenshots shown in the article. I just set those up and included them for illustrative purposes. The article's points themselves are based on my experience routinely using those optimizations in production.

Sorry if that wasn't very clear in the article.

</comment></comment></comment><comment><USER7> Seems to me that AJAX before document-ready could get complicated once you want to actually do something with the response. Normally one would do something like this:

      $(document).ready(function(){
        $.getJSON(my_url, function(data) {
          $('<p>').text(data.some_text).appendTo('#some_container);
        });
      });

But if we call getJSON before document-ready, the node $('#some_container') may not yet exist! Now we need some way to wait until _both_ the AJAX request is complete _and_ the document is ready…recommendations?

EDIT: Thanks for the responses, glad to know it's safer than I thought!

<comment><USER8> swap the first two lines:

      $.getJSON(my_url, function(data) {
        $(document).ready(function(){
          $('<p>').text(data.some_text).appendTo('#some_container);
        });
      });

<comment><USER9> Very clever. This works because $(document).ready will execute immediately if the page is already loaded.

</comment></comment></comment><comment><USER10> I know this is off topic, but there's another reason it slows you down - <USER2> many keystrokes.

I prefer

$(function(){});

to

$(document).ready(function(){});

<comment><USER4> I'm torn when it comes to that. The readability of $(document).ready() is better. Especially for later devs who may not be familiar with jQuery.

<comment><USER11> For devs not familiar with jQuery (and on the off-chance that you'll need no- conflicts mode at some point), you might even avoid the dollar sign.

jQuery(document).ready(function(){});

<comment><USER12> On the other hand, if a dev is _that_ unfamiliar with jQuery code, they shouldn't maintaining jQuery code.

Using _$(function(){});_ serves as a nice warning to this effect.

<comment><USER13> That is an awful argument. Can you imagine what software would look like if people took that approach with everything? Development would have ground to a halt decades ago.

<comment><USER14> I think the point is that they should learn enough jQuery before maintaining jQuery code.

</comment></comment></comment></comment></comment></comment><comment><USER15> .live() needs more promotion.

<comment><USER16> If you like live(), you'll enjoy delegate() more.

But, regardless, event delegation needs more love, yup.</comment></comment>


Ask HN: How do you create a Silicon Valley? - <AUTHOR>

I realize this isn't a new question, and has even been addressed by Paul Graham before ( http://www.paulgraham.com/siliconvalley.html ), but I was wondering if I could glean some more from HN's collective wisdom.
What does it take to create a vibrant tech hub filled with entrepreneuring hackers?
I ask with a specific place in mind. I live in Moncton, a mid-sized Canadian city that is in Atlantic Canada. The region has high unemployment and is marginalized, geographically and politically. Moncton fares better than most of the region and has about half the unemployment rate than the rest. It's geographically central and has become a "hub", drawing in a steady stream of migrants from the surroundings. We also have a lot of people in the region that are trained in tech-related field; the bulk of them work in call centres which are a significant part of the economy here. While bringing in money, the call centres unfortunately dull their I.T. skillsets.
In my mind, it seems like Moncton would be a good candidate to become a regional tech hub, but it hasn't really developed as such. So I wonder, what would it take to create a regional tech hub? Institutions? Investors? Culture? More Starbucks per capita? More personally, as someone from the tech/startup world, what would your ideal city be like? <comment><USER2> Steve "Four Steps to the Epiphany" Blank's series of blog posts on "The Secret History of Silicon Valley" is a good read on this subject. A short summary is that a lot of the early firms were either got mentors from or directly spun out of Stanford labs --- and that in the early years, most of what they were doing was related to defense projects of one kind or another. (Fred Terman, a Stanford professor whose name comes up all over the place, ran an electronic warfare lab during World War II, and was heavily involved in cold war follow- ons.) So, government money had more to do with it than purely doctrinaire libertarians might be comfortable with.

The whole series is here (earlier posts at the bottom):

[http://steveblank.com/category/secret-history-of-silicon- val...](http://steveblank.com/category/secret-history-of-silicon-valley/)

The first post is here, with a video of an hour-long talk given at a CIA sponsored conference:

[http://steveblank.com/2009/03/23/if-i-told- you-i%E2%80%99d-h...](http://steveblank.com/2009/03/23/if-i-told- you-i%E2%80%99d-have-to-kill-you-the-story-behind-the-secret-history-of- silicon-valley/)

<comment><AUTHOR> Thanks, I will definitely read/listen to Steve Blank's Secret History of Silicon Valley!

</comment></comment><comment><USER3> I don't living in SV but I like reading about it. All I can really say is to follow the money.

In order to be Silicon Valley, the first thing a place like Moncton needs is money. Lots and lots of money. Silicon Valley got it's money because the US Government wanted lots of Cold War gadgets.

The second thing is someone in charge that is smart enough to spend that money correctly. Silicon Valley had Frederick Terman, who was very good at this.

The third thing you need is someone stupid. Well, not stupid in your area but somewhere else. Someone who is willing to give you everything you want on a silver platter for free because they think it's worthless. For example, in Silicon Valley, these "things" are smart geeks. Other cities didn't care enough to keep them so Silicon Valley took them one by one.

</comment><comment><USER4> I think the answer may actually be far easier to quantify:

Ambitious people.

Many of the areas outside of the bay are composed solely of people who either want a job that pays their bills, or don't want to work at all.

The bay sort-of self-selects for ambitious people; salarymen and slobs get priced (or even bred) out, and the best and brightest are drawn in, either by educational opportunities, high-growth job opportunities, or the community itself.

New York, Boston, Boulder, Austin.. these places also have ambitious people. This is in part because ambitious people like living near other ambitious people.

</comment><comment><USER5> Silicon Valley is a brand. The critical component is building the reputation and mythology of being a "vibrant tech hub."

</comment><comment><USER6> Clickable: <http://www.paulgraham.com/siliconvalley.html>

Stanford had some role in fostering Silicon Valley. I don't recall the details, but if I were trying to "recreate Silicon Valley" I would research that and then see if there was a way to get a local college involved doing something similar. Then I would look at various incubators, their success rates and details of their programs and see what low cost things could be implemented. Even just fostering meetups locally might get the ball rolling. You do not necessarily need much resources to get things started.</comment>


He sold potato peelers for $5 each and became a millionaire - <AUTHOR> https://www.youtube.com/watch?v=Krusn0Mo3Po

<comment><USER2> I heard about this gentleman on HN a few years ago. You have to watch him work: it's a performance, in every sense of the word: [https://www.youtube.com/watch?v=HCUct4NlxE0&hl=en- GB&gl=GB](https://www.youtube.com/watch?v=HCUct4NlxE0&hl=en-GB&gl=GB)

<comment><USER3> So, like David Rees, then? [http://www.artisanalpencilsharpening.com/](http://www.artisanalpencilsharpening.com/)

<comment><USER4> The peeler guy makes a 100% irony-free pitch, based on value, which we can all learn from.

<comment><AUTHOR> Exactly. At every stage he also reminds his audience that they too can do these wonderful things - he relates his pitch to things they do, or at least have seen done, and demonstrates how his solution lets them do it. That's true selling.

</comment></comment></comment></comment><comment><USER5> There is even Wikipedia entry:

[http://en.wikipedia.org/wiki/Joe_Ades](http://en.wikipedia.org/wiki/Joe_Ades)

"Ades died on February 1, 2009, only a day after being informed that he had been granted American citizenship."

</comment><comment><USER6> I lived in that neighborhood where he sold them (sadly he passed away a few years ago). Union Square in New York. I had no idea he was so successful. Thanks for digging this up! (2008)</comment>


Congress, It's Time to Pay Musicians - <AUTHOR> https://www.nytimes.com/2018/01/28/opinion/congress-musicians-music-bus.html <comment><USER2> This is OK, if the fees the streamers charge do not increase, thus they operate with lower margins - if they can. If they can not operate with lower margins, then they must pass the costs on in monthly fees, which will reduce subscribers and increase piracy. . They often call this the law of unintended consequences...QPP...[https://en.wikipedia.org/wiki/Unintended_consequences](https://en.wikipedia.org/wiki/Unintended_consequences)

<comment><USER2> There is a complex relationship between the true artists and the 'labels'. Often the bulk of the cash gravitated to the labels, as many artists have complained. We have also seen the excess that some artists have fallen into, in terms of drugs, bad asset management etc. It makes sense that artists be properly funded AND protected by their own indulgence with the imposition of an annual income process as well as a pension fund - fully funded, not controlled by the labels, but also not controlled by the artists, and with an independant pension authority that can not be stolen from in some manner. This would protect them and ensure they would not end up prey to take tax evasion schemes that are disallowed and they end up in tax debts for life. This will require complex and well designed legislation (agreed by all players) and not prey to government, label or fund administrators. No label stock is allowed. The Teacher's Pension fund comes to mind. It is fully funded, run by the members in their tens of thousands who select how it is run, with legal advice and free of label conflict. The labels would hate this - they can fill the fund with paper shares and then bankrupt the shell and leave. Here are a few such self serving scandals by governments as well as company admins. [https://www.google.ca/search?q=pension+scandal&oq=pension+sc...](https://www.google.ca/search?q=pension+scandal&oq=pension+scandal&aqs=chrome..69i57.4333j0j7&sourceid=chrome&ie=UTF-8)</comment></comment>


ECMAScript 2017: the final feature set - <AUTHOR> http://www.2ality.com/2016/02/ecmascript-2017.html <comment><USER3> The biggest problem with js right now is the fragmented and inconsistent collections apis.

Collections in js are modelled with Arrays, (Weak)Maps, (Weak)Sets, Iterators, iterables/iterators, strings, promises, Nodelists, typed arrays, objects (where structs would be used in other languages), generators, collections provided by third party libraries (e.g. immutable structures)

There is no convenient set of methods that work on all of these, and no protocol that you could use in your thirdparty library to behave in a consistent and expected way.

The closest we have is iterables, but you can do very little with an iterable beyond iterating it. No map, no filter, no flatmap, no reduce. You can create a new array out of it and then use the array methods (which don't exist on any other collection), but that's pretty dumb too.

"We'll let libraries decide" is the usual cry, but it's impossible to write functions that will appear only on iterables or iterators, since they have no common prototype other than Object.

Ideally the language itself would provide a small, coherent protocol that all collection and collection-like things could implement, and then all the good stuff could be built on top.

Languages like clojure do a good job of this.

<comment><USER4> >no map, no filter, no flatmap, no reduce

ES6 generators pretty much solve this, especially once you learn "yield*"

<comment><USER5> ES6 generators are a low level construct. The concern is that you still need to add a dependency to a library such as wu.js [1] for the higher order functions around generators/iterables.

(Compare with C# where a laundry list of higher order LINQ operators are provided out of the box as extensions to IEnumerable. Or Python's 2.x itertools modules, many of which have filtered into the top level of the standard library in Python 3.)

[1] [http://fitzgen.github.io/wu.js/](http://fitzgen.github.io/wu.js/)

</comment></comment></comment><comment><USER6> Is it just me that think "JS" and "parallelism" is a bad idea? I was "stuck" in Java-land for over 10 years, along came NodeJS and saved me. In no small part was the absence of threads part of the success.

During my Java days, I saw countless broken attempts at writing parallel code (typically only saved by the Java VM not exploiting all possibilities the spec allows for, such as only updating shared global state at the end of a synchronized block).

Along came NodeJS and proved to us lost java souls, that with non-blocking I/O, you don't need hundreds of threads to make performant code. In fact, one thread is enough, also for driving complex UI.

Now we're given wonderful new Atomics and SharedBuffer, I bet there will be an underlying expectation that to "keep up" you better start driving complex UI in multiple web workers, because, performance.

But the complexity of coding parallel stuff hasn't gone away. Atomics and Run To Completion functions isn't simple.

I would not be surprised if I'm two years from now am debugging broken attempts at writing parallel code in something like react-parallel.

<comment><USER7> Look up communicating sequential processes and never have a problem with multi-threading again.

<comment><USER8> > Look up communicating sequential processes and never have a problem with > multi-threading again.

Go does that yet still need mutexes, has race conditions and memory corruption.

<comment><USER7> "never have a problem with multi-threading again" was not meant literally. Rather that grasping the concept of "sharing data by communicating" helps you structure your programs.

</comment></comment></comment></comment><comment><USER9> > Minor new features[...] String padding

well, that's certainly one way to avoid another `leftPad` mess :)

<comment><USER10> … does it work at a level higher than code units? From what I recall, leftpad's implementation worked at the level of code units, i.e., it padded to a particular number of code _units_ , which is bugged for just about any use case one might apply it to.

That is, if you had the strings "a" and "é" (where the latter is "e\u0301") padded "equally" to length 3, leftpad would pad them approximately thusly:

       __a
       _é

        > leftpad('e\u0301', 3, '_');
       <- "_é"

<comment><USER11> I very much doubt it. If it did, they would have to use grapheme clusters as measurement which nearly no one does. The easier way out is to just say »we have a trivial implementation that can only be used on strings where the developer already knows what's in it«.

</comment></comment></comment><comment><USER12> OK, some stuff is nice (async), but seems like the standard keeps adding syntactic sugar while not addressing more pressing daily challenges, i.e. deep cloning (Object.assign does not go deep).

<comment><USER5> It's a hack, but `JSON.parse(JSON.stringify(obj))` is a relatively performant deep clone.

Very few languages that I know have deep cloning outside of some sort of serialization hack anyway (C#'s deep cloning is a reuse of/leftover from binary marshalling), so this is roughly par for the course, so far as I'm aware.

<comment><USER13> > is a relatively performant deep clone

Relatively short, but IMO not relatively performant. All the JSON encoding/decoding takes its toll.

<comment><USER5> Relative to most purpose built deep clone libraries I've tried and most manual deep clones I've seen tried that use some combination of DFS and Object.assign.

Obviously YMMV, and your performance needs likely differ from my own.

(Personally, at this point I try to use immutability [with ImmutableJS or friends] over deep cloning, but sometimes a deep clone is still handy.)

</comment></comment></comment></comment><comment><USER14> I wish there was a way to avoid dealing with JS on both backend and frontend. There are many transpilers yes but the common language to write everything in many many companies is either ES5 or ES6, rarely TypeScript or CoffeeScript.

</comment><comment><USER15> The last 2 ECMA releases (2017 and 2016) have felt pretty dull honestly. I wonder if their approval process for features is too slow. In 2016 we got almost nothing, power operator and array.includes(). 2017 We finally got async functions, which have been in consideration for years now, a few helper functions, and shared memory. Object Rest/Spread would have probably made up for it, but now we'll have to wait at least another year even though it's been stage 3 for quite some time.

With the language moving this slow compared to faster releasing languages like Python, Elixir, and Go, I wonder if Node.js will start to see a decline in hype since the language hasn't improved much in the last 2 years. What do you guys think?

<comment><USER16> > The last 2 ECMA releases (2017 and 2016) have felt pretty dull honestly.

It's not exactly surprising. ES6 came out almost 6 years after ES5, so there was quite a few changes then. The yearly release cycle was always going to mean fewer features being standardised each release.

While I do follow from a distance some of the work TC39 does, I can only assume that most people involved have realised that having an orderly process for feature proposals - and not trying to rush heaps of features into a single release - is a much better way to do things.

> With the language moving this slow compared to faster releasing languages > like Python, Elixir, and Go

Python, Elixir and Go have the advantage that they have one main/reference implementation and can break backwards compatibility whenever they want (although that hasn't gone brilliantly for Python) by just incrementing a version number. ECMAScript runtimes have to be able to run programs that were written almost two decades ago - backwards compatibility can't be broken - <USER2> you have several major implementations (V8, Spidermonkey, etc.) to deal with.

The tail call feature from ES6 is already being revisited because it caused problems [0].

> I wonder if Node.js will start to see a decline in hype since the language > hasn't improved much in the last 2 years.

Tools like Babel mean that people who really want to use new or experimental language features can do so. There are dozens of language features in the proposals pipeline [1] and many (if not a majority) can be used via a compiler like Babel or via a polyfill.

Node.js also has the advantages of having it's own 'standard library' and an enormous package ecosystem to use. I think it will be fine.

[0] [https://github.com/tc39/proposal-ptc- syntax](https://github.com/tc39/proposal-ptc-syntax) [1] [https://github.com/tc39/proposals](https://github.com/tc39/proposals)

<comment><USER17> > The tail call feature from ES6 is already being revisited because it caused > problems

Proper tail calls being in the spec don't cause problems. Safari shipped with them a while ago. Chrome/node has them behind a flag. Google wants them to be explicit and everyone's bikeshedding about which bloated syntax is the correct one (or if it should even have its own syntax).

The actual debugging issues they talk about are non-issues in my book. Catering to new devs who don't understand tail calls is stupid (by that metric, we should get rid of a lot of other things too). We don't need stack traces for tail calls that loop (just like we don't need them in a for loop). A shadow stack works just fine for CPS (continuous passing systems) and is still better than the debugging tools we have for stuff executing across the event loop (aka nothing worth mentioning).</comment></comment></comment>


Ask HN: What are less known hard Sci-Fi books to read? - <AUTHOR> From the popular ones I've read quite a few from Ian Bank's Culture series, but en summe they feel a bit like spy stories with a bit of cyberpunk sprinkled around.
The Three-Body problem was good, but still very pale in comparison to Permutation City, which I just discovered recently.
Anything along the lines of Permutation City, Asimov's works, Lem, or something like Martian Chronicles (e.g. about facing a totally different culture). <comment><USER2> Check out the nominations to sci-fi awards (e.g. Hugo or Nebula). The winners get most of the publicity but there are many great works that don't win but are still quite good. The nominations are sometimes hard to find, the Verge e.g. has articles with the complete (?) lists for recent years and Wikipedia has a list of nominees and winners over the years as well.

<comment><USER3> Agreed. I highly recommend:

* Eon - Greg Bear

* A Deepness In The Sky - Vernor Vinge

</comment></comment><comment><USER4> "Blindsight" by Peter Watts is just amazingly good, as are his other works. He does have a bleak view of humanity though.

Also check out his friend and fellow Canadian Karl Schroeder's "Candesce" series of books set in an enormous globe of air floating in space. Feels like fantasy, but isn't.

Vernor Vinge has already been mentioned. "A Fire Upon The Deep" is one of my favourite novels. He was a professor of Computer Science and he also popularised the concept of the coming Technological Singularity.

</comment><comment><USER5> Rainbows End by Vernor Vinge. It's definitely where I feel our modern tech world is heading... We're halfway there with ubiquitous mobility, personalized medicine and every year, I see AR heading there.

While the plot is somewhat meh - the description of the techno society and how it changes out life is uniquely prescient I think - much more so than cyberpunk heros like Gibson or Stephenson etc. I re-read it about once a year.

</comment><comment><USER6> Hope you read the entire Three body problem trilogy as I'm not quite sure how well it stands by reading only the first book as it's been a while since I've read them, but it's a brilliant trilogy. Totally agree with you on Permutation City, really awesome. And as somebody else already suggested, you should really read Diaspora for some more Greg Egan goodness.

I have some generic sci-fi recommendations, although some are probably not considered "hard" sci-fi and most are pretty well known but here they are anyway.

\- Children of Time/Children of Ruin by Adrian Tchaikovsky

\- Hyperion by Dan Simmons

\- Accelerando by Charles Stross

\- House of Suns/Revelation Space series by Alastair Reynolds

\- Pandora's Star/Judas Unchained by Peter Hamilton

\- The Bobiverse series by Dennis E. Taylor

Cheers

EDIT: also, here's a good website to track the winners for most sci-fi awards:

[https://www.worldswithoutend.com/books_index.asp](https://www.worldswithoutend.com/books_index.asp)

</comment><comment><USER7> _Permutation City_ is one of Greg Egan's better-known works, and I strongly suggest you look into the rest of his ouevre which (aside from his _Orthogonal_ trilogy) tends to be of a consistently high standard.

[https://www.gregegan.net](https://www.gregegan.net)

<comment><USER8> Why did you single out Orthogonal as lesser? I found those better than some of his other books (Quarantine, Teranesia and Distress). I would say Diaspora is his best by miles, with Schild's Ladder.

In general, I like the physics discovery books more than the books focusing on subjective quantum mechanics (especially Quarantine), although they are still well done.

<comment><USER7> I didn't single out _Othogonal_ for being (necessarily) _lesser_ , I singled it out for being mainfestly _different_ from most of his other stuff, in the sense that it occurs in a Universe with physical laws evidently different from that of our own (though his most recent book _Dichronauts_ , which I have not yet read, also follows in this trend of "what-if" counterfactual speculation).

To be honest I also found the concluding book of _Orthogonal_ to be rather disappointing, but that's personal preference.

I would have most certainly _not_ drawn attention to the different nature of _Orthogonal_ if I hadn't had the feeling that the original poster is seeking for "hard sci-fi" that presents avenues for what our futures in this universe may be, as opposed to what other universes may be like.

<comment><USER8> I understand, there is indeed a large difference between Orthogonal and the rest in the sense that it might be technically a fantasy series instead of hard science fiction. However, the exploration of the alternate physical laws gave me the same thrill that other hard science fiction evokes. In some sense, the changed mechanics gave me more insight into physics as a whole (especially with Egan's fantastic online appendices, which might be my favorite aspect of his style).

I forgot it above, but I think Incandescence is the "our universe" counterpart to Orthogonal and it is quite good.

</comment></comment></comment></comment><comment><USER9> I'm an Egan fan and really liked Blindsight by Peter Watts.

</comment><comment><USER10> You already know Greg Egan, so I would very much recommend Diaspora. Really amazing book. I wrote about it here: [http://uzpg.me/literature/2019/04/29/diaspora.html](http://uzpg.me/literature/2019/04/29/diaspora.html)

> (e.g. about facing a totally different culture).

I would also recommend The Player games by Iain Banks. Not hardsf per-say but really nice and complex story.

</comment><comment><USER11> If you're prepared to call Lem hard sci-fi you might also accept Jack Vance. I also suggest the Strugatsky Brothers' Roadside Picnic.

</comment><comment><USER12> The paratwa trilogy by Christopher Hinze? Genetically bred assasins

reddit.com/r/printsf is a gold mine for book recommendations

</comment><comment><USER13> Probably not so lesser known but the mars trilogy by Kim Stanley Robinson is very good

</comment><comment><USER14> Becky Chambers books are a good read -

The Long Way to a Small, Angry Planet

A Closed and Common Orbit

</comment><comment><USER8> The Quantum Thief trilogy by Hannu Rajaniemi.

</comment><comment><USER15> Inverted World by Christopher Priest.

An oldie, but a weirdie.

</comment><comment><USER16> The Door into Summer by Robert A. Heinlein</comment>


Why the other line is likely to move faster - <AUTHOR> http://www.youtube.com/watch?v=F5Ri_HhziI0&feature=related <comment><USER2> It's because I'm cursed, and I always get the slowest line during checkout. It's okay, though. I make up for it by always switching to the faster lane while I'm driving.

Kidding aside, I like his way of presenting. I have an appreciation for good presentation skills, especially coming from techies/engineer types.

</comment><comment><USER3> The video doesn't explicitly mention this, but if you want to minimise your (perceived) relative waiting time you should choose one of the two end aisles to queue in.</comment>


Google blocks movie service on rooted Android devices - <AUTHOR> http://www.google.com/support/androidmarket/bin/answer.py?hl=en&answer=1306490&topic=1100171

<comment><USER2> Here's what I believe is going on:

Honeycomb adds a framework to support DRM plugins. Android 3.1 adds an actual implementation of a DRM plugin called Widevine (acquired by Google in Dec. 2010). Android 3.1 also supports HDCP. The DRM plugin is technically not built into Android; it's a modular add-on. The interface to the DRM plugins is part of Android.

In order for DRM and HDCP to actually work the DRM system has to validate that the system can be trusted. (That's all that DRM does.) If the system is rooted, apparently the DRM system can not validly claim that the system can be trusted.

Google's YouTube Movie Rental service that's part of the Android Market on Android 3.1 apparently relies on the DRM system to validate that the system can be trusted. (This condition may have been part of the deal to get the movie studios to allow their content to be distributed and rented through the Android Market.) If the DRM framework reports that the system can not be trusted because the system has been rooted then the jig's up -- no movies.

Bottom line: you can't have a movie rental service that requires that the system be trustworthy and a possibly untrustworthy system that would result from the system being rooted. You can have one or the other -- not both.

<comment><USER3> What I'd like to understand is how pluggable these DRM plugins are. For most things on Android you can just replace the default thingy with your own (dialer, home screen are prominent examples).

How long until someone comes up with a custom DRM plugin that returns true for all validation requests?

<comment><USER2> An app that is using android.drm will probably be looking for specific DRM plugins.

<comment><USER4> Plugins that would be signed. It'd also make sense if the whole communication with content owners (or Google) was encrypted.

</comment></comment></comment></comment><comment><USER5> Ha that is really going to help reduce piracy. Sorry you can't see our movies (even if you are willing to pay for them) because you _might_ share them with your friends.

On the other hand, if you get them for free of some torrent or from rapidshare (and finding the links are much, much easier than rooting your phone) there are no such restrictions and the studio doesn't make a dime.

When did these people stop thinking?

<comment><USER6> A case of <http://en.wikipedia.org/wiki/Malicious_compliance> perhaps, guessing some expernal entity demanded such steps from Google?

<comment><USER5> Nah to make it malicious, they would have redirected to a search on google for the movie in question with "avi download" appended.

That would have been malicious.

</comment></comment></comment><comment><USER7> The most interesting thing here, to me, is not that this happened — with the MPAA as it is — but this is the first time we've really seen something like this.

For example, the MPAA does not require Apple to block movie purchases or playback on jailbroken iPhones or Apple TVs. Maybe that something overlooked in the Apple contacts that they've gotten a chance to correct in their deals with Google?

<comment><USER8> The difference is of course: with Apple, rooting a device is not an officially sanctioned thing to do. With Google, it is.

<comment><USER9> There is probably a huge amount of truth to this. Apple puts enough effort into stopping jail breaking that they can easily claim their movie blocking is done through those efforts.

</comment></comment></comment><comment><USER10> How are they performing the check?

Surely it's subvertable. If you have root - you can provide any information you like to the movie playing application?

Or is there a crypto chain of trust in android devices, analagous to the "trusted computing" on the PC platform?

<comment><USER11> _Or is there a crypto chain of trust in android devices, analagous to the "trusted computing" on the PC platform?_

There is. Everything on an Android device, including stuff in the OS image, is signed. I would assume that the movie player would converse with the movie service and it would easily be determined that the player is not running on a system image provided by a trusted signer.

Subverting it would, I assume, require cracking the signing algorithm.

<comment><USER12> There are probably much easier ways; extracting keys from a local device (but this may only be a break of a single device, not a class break of all devices, hopefully), or exploiting bugs in any of the trusted binaries to load other code.

The trusted/measured boot process on PCs (which is not actually used by anything widely deployed, as of 2011) is similar, but I think the Android device will have an easier time.

<comment><USER13> The likes of HTC and Motorola are already shipping Android devices with signed bootloaders. It is increasingly likely that with tablet content deals for movies and tv shows in the works that there will be more use of signed bootloaders in combination with Android 3.1+ DRM frameworks.

</comment></comment></comment></comment><comment><USER14> This is completely unsurprising. The licensing agreements with the studios mandate these kinds of measures. If Google didn't do it, they wouldn't be able to play the game.

</comment><comment><USER15> Android is open, so we can just go in and remove that check... oh right.

<comment><USER16> The openness of Android, the OS, has nothing to do with it.

Google Movies service is just another application running on Android.

If you had "Dsl Movies" application for Android (or iOS or Windows) you would have a right to protect your service from people trying to watch the movies for free or extract them from your service and post them on the internet.

Why do you think that Google has no such right to protect their movie service?

As to general snarkiness about openness of Android: please come back when you can download source code to iOS or WP7 or BlackBerry, compile it and then install on your device.

<comment><USER17> Still waiting on Honeycomb. And point to me barebone OSS android without Google's proprietary magic dust's market share.

<comment><USER18> > Still waiting on Honeycomb.

How is that remotely related to the article?

<comment><USER17> It's very relevant to the comment I was replying to.

</comment></comment></comment></comment></comment><comment><USER19> Correct me if I'm wrong, but if you have root access to your phone, can't you work around this block?

</comment><comment><USER20> I wonder if they can keep this up? If they can successfully keep those devices blocked, there are other services that could be built on top of such technology, even if it's just Google throwing manpower and dollars at the problem to keep those cracking the system busy.

</comment><comment><USER21> Correct me if I'm wrong, but won't this hurt Google's business rather than protect it? With no legitimate means of buying/renting movies on their Android devices people will likely resort to piracy.

<comment><USER22> These are the wishes of the studios, Google can do little about it.

</comment></comment><comment><USER23> You'd expect better from Google really, even if they are at the behest of the film companies here..

<comment><USER24> For the users, it is either this or no movie player for them. No movie player means a big product disadvantage compared to competitors, which is very bad for Google as a company.

The problem is not Google, it is DRM and DMCA.

<comment><USER25> I'd rather have no movies and no music than to have our technology become increasingly hobbled by the entertainment industry.

<comment><USER26> > I'd rather have no movies and no music than to have our technology become > increasingly hobbled by the entertainment industry.

Unfortunately, whilst you're not alone in your sentiment, the majority of users to whom Android devices are sold don't care either way, and those are the same users that make Google the most money.

<comment><USER25> Not sure if that's the case. The company makes the most money from online ads, so is it better to foster long-term technology growth or to convince more people to use Android?

<comment><USER26> > Not sure if that's the case. The company makes the most money from online > ads, so is it better to foster long-term technology growth or to convince > more people to use Android?

Getting more Android devices into the hands of users _now_ is important to Google: it increases developer appeal (growing the platform), which draws even more users (increasing advertising revenue). Having competitive, consumer- orientated features like this—that stack up against Apple (and Amazon)—are far more important to these goals than things like whether a device is rootable, themeable and/or side-loadable.

<comment><USER27> Consumers will become very discouraged quickly when they try to add a skin, or theme, or any customization, and all of a sudden certain applications will no longer work.

I feel this is akin to having a Windows PC that would disable Netflix streaming if you wanted to dual-boot your PC.

Android devices are the current generation of the previous Windows-era ecosystem. A bunch of clone hardware running slightly tweaked OEM versions of an OS.

The biggest difference, which consumers will really start to have issues with, is tying a software OS update to a hardware revision (If Dell prevented you from upgrading a Windows 98 machine to a Windows 2000 machine, not because of hardware limitations, but simply to generate more device sales).

<comment><USER28> > I feel this is akin to having a Windows PC that would disable Netflix > streaming if you wanted to dual-boot your PC.

It's more akin to having a Windows PC that would disable Windows Media DRM files if you had unsigned drivers loaded into the kernel. Which it does. This isn't without precedent, by any means.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> So what movies are we talking about?

titles says "Movie service" which one? netflix? some gMovie i've never heard about? youtube?!?!

The linked page also does not help.

<comment><USER29> ok, navigating a little on the linked page it seems it's option "some gMovie i've never heard about"

Quote some 2 clicks away from the linked "article": Q: Where is my Videos app? A: At this time, the Videos application is only available to Verizon Motorola Xoom users.[...]

</comment></comment><comment><USER30> This affects rooted devices only. Perhaps a little less than 1% of users will even notice.

</comment><comment><USER31> Ah, piracy, the sweet smell of not being judged by anyone other that those who are cunts anyway.</comment>


Life After OOP: C++ is not just an object-oriented language - <AUTHOR> http://cplusplus-soup.com/2010/11/22/life-after-oop/ <comment><AUTHOR> > Think about the way Python or Ruby deals with lists and you don't know what > the elements of the list are — and it's too late to find a bug when you > accidentally append a string to a list that was only meant to contain > integers — and then you'd wonder why these are "modern" programming > languages.

He seems like a C++ expert, but this quote suggests that he doesn't really get dynamic languages. Sure, this is a classic argument against dynamic typing, but the practice shows the sky doesn't fall because of that, and it makes programmers much more productive. Also dynamic languages put more focus on unit testing, which is necessary for C++ code as well. The fact that a program passes through the compiler doesn't necessarily mean that it is correct.

<comment><USER2> I think dynamic languages, Python in particular, are great for small scale and/or throw-away code like data analysis projects or algorithm prototyping.

However I'd personally be very wary of using them for large scale software systems that need to be maintained over long periods of time, because of this lack of compile time type safety.

<comment><AUTHOR> This is a long-standing debate and I don't thing that it makes sense to dive too deep into that in this thread. I'll just say that I don't agree with that and point you to Bruce Eckel's essay Strong Typing vs. Strong Testing[1]. Not to mention that there are numerous large (not huge) systems written in dynamic languages that prove otherwise.

<https://docs.google.com/View?id=dcsvntt2_25wpjvbbhk>

</comment></comment></comment><comment><USER3> OK, so generic, policy-based programming is a possible alternative to classic OO. Can you recommend a few free thematic resources?

<comment><USER4> Modern C++ Design by Andrei Alexandrescu, for one.

<comment><USER5> How is this free?</comment></comment></comment>


Show HN: Feedback on app/website http://zapaang.com - <AUTHOR>

I am looking for feedback from the community to see if this is something you would use. Zapaang arose out of a personal need where we had items lying around that we dont necessarily want to sell but would give it to friends or neighbors if we knew they were looking for something similar. We werent keen on posting about it on Facebook and spam our friends with things that we have for sale as our work friends might not be so interested in my used diaper genie for sale. Neither did we want to post on craigslist and having to deal with people we dont trust. Zapaang explores the idea of what if you had a way to list, share and invite people to view things that you know will be relevant to them. Zapaang banks on the trust factor by building on top of a user's existing social circle on Facebook. Facebook groups is a logical extension to that group where a group of people with similar interests post messages relevant to that its members. We started off with a version of Zapaang where you can list, discover and interact with items posted by your facebook friends or shared with facebook groups you belong to. The app is available on the iPhone store and the Windows Phone marketplace. For more information you can visit http://zapaang.com <comment><USER2> Why did you choose to support Windows Phone instead of Android? With limited resources it seems like a waste of time for such a small percentage of market share.

That being said, I don't think the concept is as bad as others are making it out to be. As a college student, I know TONS of people who sell everything from textbooks to notes (might be a good pivot). Problem is, with the introduction of groups for universities, we have preset groups for stuff like this.

One thing I am worried about is a potential spam to groups that I'm in, which would only make me resent your project.

Good luck!

<comment><AUTHOR> Students and moms are the exact focus group for this app. We decided to support Windows Phone for couple of reasons. \- Prevalence of Windows Phones. Dont laugh but I am in Seattle and with tons of Microsoft employees most of our beta user base had them. \- Android dev cost. Between screen resolutions, ramp up on environment etc I decided on punting this for now. We are planning on outsourcing this app to a vendor (the API's and UX would be very comparable to iPhone so that part is covered)

Since you are a student, would you mind if I contacted you for testing this among your friends? When you say a group exists, does that mean a groups outside of facebook?

<comment><USER2> Sorry for the late response! I don't really sell anything among my friends, but I may be able to find some beta testers!

And the student groups link: [http://www.digitaltrends.com/social- media/facebook-refocuses...](http://www.digitaltrends.com/social- media/facebook-refocuses-on-student-organization-with-groups-for-schools/)

Sorry for the crappy article, it's what Google brought up!

<comment><AUTHOR> Can you shoot me your email address to support at zapaang dot com?

</comment></comment></comment></comment><comment><USER3> Its a difficult market to crack I guess. Selling stuff which you don't use is a task which requires lots of discipline (its like keeping your backyard clean). You're trying to build a business on top of people's habit of avoiding to do such things. Kind of dangerous.

Though I m curious about few things. You have a webapp, an iphone and a windows app. Thats a lot of development (correct me if I am wrong). How much effort did it take (team size and timeframe) to get this done. If you are fine sharing.

<comment><AUTHOR> we are a team of 2 with me doing most of the tech work in addition to use case. Working on this on weekends and evenings its been almost 8 months worth of effort.

</comment></comment><comment><USER4> What about the YCS11 company Yardsale <https://www.getyardsale.com/> ? What are your main differences compared to what they offer?

<comment><AUTHOR> YardSale came up while we were in progress and I take it as a validation of the problem space we are trying to address. YardSale makes craigslist posting easier by virtue of an app and adds viral component by sharing with facebook friends and twitter. But thats a wall post to all your friends and like one comment mentioned not all my friends are interested in all my items.

</comment></comment><comment><AUTHOR> Clickable. <http://zapaang.com>

</comment><comment><USER5> If somebody wants to sell something used, why do you think they would choose facebook? Craigslist or Ebay are infinitely more likely.

<comment><AUTHOR> Fair question and the answer to that is trust/convenience. There are people who dont want the hassle of dealing with strangers by posting to Craigslist. The trust factor is just not there. I have personal things that I will not put on ebay at all because its not that high price of an item to sell. I am part of a sport club where we routinely give off old equipment or sell things if we bought extra or bought the wrong size. We think what if you had a convenient place to list and share such items. next time someone joins a club looking for used gear or new family moves in to the neighbor hood, one can point them to Zapaang app where items shared with the community fb group or club fb group is visible.

<comment><USER5> I'm not buying your answer. I've never heard of any of my friends selling or buying anything on Facebook. Craigslist is their #1 choice. I buy a shit ton of random stuff on Ebay. I bought pretty much all of my sports equipment on Craigslist.

I don't even understand the idea of selling to friends - what are the chances of them wanting to buy it? It's such a small demographic compared to what you get on CL or Ebay.

I think you're solving a problem that doesn't exist, and you've convinced yourself that you are solving a problem.

<comment><AUTHOR> Facebook friends is a small part of the social graph. There is a graph of people who are not your direct friends but share similar interests by virtue of belonging to a group. This aims to tap in to that graph. Thanks for providing your opinion and to be fair we have considered those points. We will never compete with Ebay and Craigslist and for the target market that are successful in selling/buying items there this definitely will not be appealing. Is there a pool of people who would rather put stuff on a virtual garage sale as opposed to a craigslist post? if such a pool exists then this idea would sound appealing. We might be targeting a super niche market and valuable feedback like yours helps us understand how niche that is.</comment></comment></comment></comment>