Resources on creating programming languages - <AUTHOR> https://tomassetti.me/resources-create-programming-languages/ <comment><USER2> I was cynically expecting only a bunch of resources about parsing and compilation, but was pleasantly surprised that the first section was about language design!

Here's a shameless plug for Brown's PL course last year. The videos and assignments are all online. The assignments involve exploring mystery languages, and aim to teach a bit about the consequences of language design. Next year we might do a MOOC.

[http://cs.brown.edu/courses/cs173/2016/index.html](http://cs.brown.edu/courses/cs173/2016/index.html)

<comment><USER3> I liked the fact that it started with language design too. One of the links points to a Paul Graham essay which touches on the idea that "You Need an Application to Drive the Design of a Language"; that writing a language for the sake of writing a language without an application in mind isn't (edit*) as effective[0]. Things like that, thinking about the reason for creating the language in the first place, is a fundamental starting point imo.

[0] [http://www.paulgraham.com/langdes.html](http://www.paulgraham.com/langdes.html) (Number 3)

<comment> aaron-lebo So I checked out that link and:

 _This may not be an absolute rule, but it seems like the best languages all evolved together with some application they were being used to write. C was written by people who needed it for systems programming. Lisp was developed partly to do symbolic differentiation, and McCarthy was so eager to get started that he was writing differentiation programs even in the first paper on Lisp, in 1960._

...but can that claim really be supported? Are c and lisp "the best" languages and if that "rule" is true, why does the claim have to be tempered for the two examples (C was written by people who needed to do programming at the time - was PHP not written for needs, too? lisp was only kind of developed for symbolic differentiation, and was lisp 1.6 one of the best languages or do we prefer scheme, common lisp...arc)?

He could have at least tried to make us believe it! :)

<comment><USER4> The truth seems to be that we don't know what makes a good language. In academic research we have criteria for what makes a language expressive, and tools for analyzing existing languages and check if they allow for modular development or are fundamentally incapable of building sound abstractions.

What we _don 't have_ are answers to the "soft" questions. What makes a language pleasant to use (ignoring familiarity)? Which abstractions are easy to communicate and why or why not? What's the best way to communicate intent to a computer? It seems very unlikely that the answer should be "a text editor", but so far all alternatives have turned out to be terrible...

What's especially vexing about this is that it looks like a solvable problem. People in the social sciences have been measuring far more ephemeral phenomena, the only problem is one of funding and finding the right people to run such big and extensive experiments.

<comment> loup-vaillant > _The truth seems to be that we don 't know what makes a good language._

On the other hand, we do know what makes a _bad_ language. We can spot flaws in a language, and fixing them automatically makes them better —at least in the aspects one is interested in. C for instance has a number of flaws and questionable tradeoffs that are widely known by now:

Contextual grammar. While not too bad (the context is easy to maintain in the parser), unknown identifiers can lead to syntax errors, and slightly worse error messages.

Complicated syntax for types. Matching declaration and use may have sounded neat at the time, but doing so kills the separation between an entity's name and its type. The result is not very readable. An ML-like syntax would be much better.

Switch that falls through by default. The switch statement were clearly designed from an implementer's point of view —it maps nicely to a jump table. In practice however over 95% of switch statements do not fall through. Switch should break by default (Having multiple cases branch to the same code is more common, but is not incompatible with breaking by default, see how ML style pattern matching does it).

No direct support for sum types (tagged unions). We have structs , unions, and with them we can emulate algebraic data types. It's a pain in the butt however. Automating this somewhat would be nice, since sum types are so widely useful. Even if they were used _just_ for error handling that would be a nice bonus.

No generics. Makes it much harder to abstract away common code. Want to write a generic hash table? Good luck with pre-processor magic.

Textual macros. We can do, and have done, better than that.

Too many undefined behaviours. In the name of portability, many things that would have worked fine on many architectures are now undefined because _some_ architectures couldn't handle them. And now we have silly stuff such as undefined signed integer overflow. But we can't remove them because compiler writers justify this madness with optimizations! (For the record, I have seen Chandler Carruth's talk on the subject, and I disagree: when compilers remove security checks because of undefined behaviour, it is just as bad as nasal demons.)

Silly `for` loop. That damn thing is fully general, we don't need that. We have the `while` loop. A simpler, less general syntax would have allowed optimisations that currently exploit undefined signed integer overflow, and then some.

\---

Of course, it's easy to criticise a language over 40 years after the fact. But that's kind of the point: we have learned a good deal since the 70's. A language written now could not justify most of the flaws above. This is why so many people (me included) dismissed Go out of hand: not providing generics in a new statically typed language is just silly.

Sure, designing a good language is still very hard. But we can avoid more mistakes now than we could some decades ago.

<comment><USER5> This is a good point.

At least I find it encouraging that there are some of the newer languages that are taking errors from the past into account.

They're not going to be perfect and they surely have their own flaws, but that's something that someone will fix in a couple of decades once we will know what new ideas are actually good and bad.

</comment></comment></comment></comment></comment></comment><comment><USER6> For anyone thinking about building a language with a JavaScript target, I would strongly recommend building on Babel. I've found the tooling to be terrific.

In my case, I wanted to build a (rough) superset of JS, adding the syntax and language features I was interested in but otherwise starting from a working (tested!) language. This made the task dramatically easier.

Forking babylon, Babel's parser, worked well for this in my case, but you could also write your own parser from scratch and use babel-types to build your AST.

In my case, I have a ~1,000-LOC babel plugin "compiler"[0] with maybe 1,000~2,000 LOC of mods to the parser[1], resulting in a language that looks fairly different from JS but feels pretty solid. Users of the language benefit from Babel's tooling – it works with webpack, ESLint (decently), etc.

[0] [https://github.com/lightscript/babel-plugin- lightscript/](https://github.com/lightscript/babel-plugin-lightscript/)

[1] [https://github.com/lightscript/babylon- lightscript](https://github.com/lightscript/babylon-lightscript)

<comment><USER7> Thanks for the reference to your project, I might use it as a guide for writing a language. I like the book "Build Your Own Lisp" because the simple implementation is easy enough to understand and hack. Using your example as a guide would be a second step for building something more practical. Very cool stuff.

<comment><USER6> Thanks! Would be happy to help – email is in my profile if you're interested.

</comment></comment></comment><comment><USER8> Appel's Modern compiler implementation in ML is really good, as both an introduction to compilers and some detail on implementing the runtime i.e. garbage collection. There are versions for C and Java, but ML is much easier to read in a book.

If you want a (slightly ugly) encyclopedia of compiler optimisations and IR designs, then Steven Muchnick's Advanced compiler design and implementation is great.

Also, on the functional front SPJ's book ([https://www.microsoft.com/en- us/research/publication/the-imp...](https://www.microsoft.com/en- us/research/publication/the-implementation-of-functional-programming- languages/)) is really good.

While unfinished, Write You a Haskell is also a really interesting read.

<comment><USER9> I have the C book... It is quite antiquated and has a lot of ugly pointer math in the tokenizer/lexer beginning parts. It does sound like the ML book is a better choice.

<comment><USER10> "It is quite antiquated and has a lot of ugly pointer math in the tokenizer/lexer beginning parts."

It's possibly C code written by a guy that mainly does ML with a whole career kicking ass in ML languages and provers. That was my hypothesis when I saw both books available. I got a copy of the ML one instead. Appreciate confirmation it was a good choice. ;)

<comment><USER8> Yeah. AFAIK The C version only exists because ML is too niche for mainstream publishing. ML actually works as decent pseudocode(Or at least easier to mentally transpile to other langauges, unlike e.g. Haskell) as well, so the C/Java versions are basically pointless.

<comment><USER10> That's what I was guessing. Especially after reading the article below and seeing lots of compiler/prover authors go with ML's.

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

</comment></comment></comment></comment></comment><comment><USER11> What I've come to realize is that what we need is a language that lets you manage your level of technical debt, as in "langc mysource.lang --technical- debt=5". You generally want to start out writing PHP in the beginning of a project. However, at some point the technical debt will force you to enter maintenance mode. At that point it would be nice if you could turn down the compiler's tolerance from PHP-level to Rust-level, via Python and Java. Simultaneously you usually start caring about performance, so you need to move from interpretation to non-GC'd binary. Wouldn't it be nice if you could scale the strictness and compiledness of the language according to how messy and performance-critical your module or program has become? Granted, we'd need several backends for the same language and the compiler would become really quite messy, but it's interesting to consider.

<comment><USER12> I can't agree more. I think a lot of the pieces to enable such a compiler stack are there--gradual typing, extensible parsers, and so on, but nobody has put them all together into a single place.

<comment><USER13> Common Lisp? Except that the typing could use some extension (probably could be provided through macros).

</comment></comment></comment><comment><USER14> This is one of the most overlooked topics in computing.

I've developed an in-memory database, naturally with it's own programming language.

I disagree that you have to have an application in mind to design your language (sorry GP). But, you definitely need use-cases in mind as every decision has trade-offs..

Some are discoveries I've made along the way: 1\. High-level - I remember having a for-each loop zoomed in on my TV, I may have looked at the for a couple of hours as I looked at it and thought "how can I make it better", and it did pay off!

2\. Parsers/ Lexers - I couldn't find one that worked the way I needed to (allowed me to remove lexemes that would normally be considered essential). So I started writing my own..

3\. Abstract Syntax Trees (ASTs) - I don't think there's a guide on compilers that doesn't mention ASTs. I found this to be more of a hindrance than help. So I removed it, yes the parser generates the program code!!! All that is needed is a small stack of the starting points. This actually works better than anticipated. It's still a single pass compiler, and you rarely need to know to what is next (before delegating). There's checks at every step, the program can also generate sourcecode (reverse engineer itself). So moving away from ASTs doesn't mean that the program is harder to test. A unexpected result of going down this path means that the compiler 'understands' the code better than than most, able to supply actual suggestions rather than cryptic error messages. In-fact it will reject code that won't compile, or breaks dependencies.

The lesson here is don't be afraid to experiment. Yes it has taken some time, with improvements in each iteration (I've done some house keeping in the recently, swapping out ~30% of the parser and it hasn't been as daunting as you might imaging).

</comment><comment><USER15> For those just getting started on building languages here is a beginners tutorial I created, using JS and Ohm. [https://www.google.com/amp/s/www.pubnub.com/blog/2016-09-26-...](https://www.google.com/amp/s/www.pubnub.com/blog/2016-09-26-4-tutorials- create-language-in-less-than-200-lines-of-code/amp/)

<comment><USER16> Is there a tutorial for building languages that uses an Earley parser? I always have a dream of using a controlled natural language for coding or as a view of existing code.

</comment></comment><comment><USER17> Surprised not to see reference to Walter Bright's excellent article from Dr. Dobb's, "So you want to write your own language?" [1]

[1] [http://www.drdobbs.com/240165488](http://www.drdobbs.com/240165488)

<comment><USER18> Right, but the list had to be limited in scope, and I focused more on longer pieces of content

</comment></comment><comment><USER19> I've been meaning to understand the idea of programming languages, removed from the syntactic details, and removed from the issue of converting a program to a machine executable form, and even optimizing a program.

I have a hunch that Krishnamurthi's book might be a good read in that regard (though not sure).

However I wonder what's left after you remove the issues I mentioned above. There are two cases: typed language and untyped language. In the first case you're left with Type Theory. In the second case you're left with, either a Turing Machine or a Lambda Calculus (e.g., implemented in a syntax free language like scheme). Is this the correct line of thinking? Or is there more to PLT than what I described?

To continue the thought further, in case of scheme, you have the base language on top of which you can build any PL feature or any PL paradigm you want. That means what's left is a survey/exploration of all possible PL features. Here I'm not interested in syntactic features. But in that case, what's left is really a survey/exploration of all possible PL paradigms, or programming paradigms [1]. So I guess what I'm really after is a massive study of the equivalent of all programming languages, but in a syntax-free way, i.e., in scheme syntax! (And I'm looking for a book that can provide that).

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

<comment><USER20> * However I wonder what's left after you remove the issues I mentioned above. There are two cases: typed language and untyped language. In the first case you're left with Type Theory. In the second case you're left with, either a Turing Machine or a Lambda Calculus (e.g., implemented in a syntax free language like scheme). Is this the correct line of thinking? Or is there more to PLT than what I described?*

Well, there's still what you describe in the rest of your post. Even something minimalist like Scheme has a load of features above and beyond plain lambda calculus: dynamic parameters, continuations, dynamic-wind, mutable variables, boxes, exceptions, the whole macro system, and so on. Not every programming language feature that can exist has already been invented. We also don't fully understand the implications of every language feature that has already been invented -- there's plenty of work to do in designing type systems that can cope with more language features. You're not going to find _one_ book that covers _every_ feature people have come up with, but PLAI at least gives a fairly broad guided tour. I would add a book on semantics (probably Winskel, maybe Gunter) to develop a mental toolkit for carefully defining and reasoning about new language features.

<comment><USER19> I guess you have a point. Thanks for your comment (and recommendations).

</comment></comment></comment><comment><USER21> Awesome--I've been knee deep learning how C code translates into assembly instructions, learning more about the compilers roles and responsibilities; but in the back of my mind, I aways wonder: why is the C language (or any language, really ) designed the way it is. A more concrete example: instead of "how do closures work in python," I wonder "WHY are closures designed to work this way in python ?"

<comment><USER10> It mostly wasn't designed if you're talking about C. It was almost totally the result of terrible hardware and personal preference derived from BCPL which was terrible hardware. The Vimeo link below goes from one paper & computer to another from CPL to BCPL to B to proto C's (IIRC) to C itself. Also shows interplay between C and C++ development. I'm also including my rant that summarizes the video in bullet points with some commentary. I still need to update it, though, with critiques from last time it was on HN.

[https://pastebin.com/UAQaWuWG](https://pastebin.com/UAQaWuWG)

[https://vimeo.com/132192250](https://vimeo.com/132192250)

Now, for the other languages, who knows. I agree it's always fascinating to learn how they were done. I didn't get that feeling learning C's history. Not like when I studied Wirth's Lilith and Modula-2:

[https://en.wikipedia.org/wiki/Lilith_(computer)](https://en.wikipedia.org/wiki/Lilith_\(computer\))

Note: Full description is in references under "Personal Computer Lilith."

</comment></comment><comment><USER22> Is it just me or do the scroll bars disappear on that site? In both Chrome and Firefox latest versions, I cannot scroll down.

<comment><USER23> Yeah they're gone for me too. Space, Page Down or Down Arrow do nothing.

</comment></comment><comment><USER24> I would like to read anything on cost-analysis, especially efficient cost- analysis on ASTs.</comment>


Jay Leno's jet-powered car - <AUTHOR> http://autos.yahoo.com/articles/autos_content_landing_pages/1033/jay-lenos-ecojet/ <comment><USER2> How exactly does a turbine engine connect to a regular car transmission? The article is very short on details.

<comment><USER3> Turboprops have a drive shaft just like car engines. It's "just" a matter of exchanging the rotor gearbox for a car gearbox.</comment></comment>


Documents burn after U.S. orders China to close consulate - sahin-boydas https://www.youtube.com/watch?v=-80nXk_rxPE&feature=youtu.be <comment><AUTHOR> This is completely expected, and common practice, isn't it?

<comment><USER2> Don't know if you are sarcastic here, but yes, the destruction of documents and "evidence" or traces is certainly expected. What isn't is the method in which it is done. The fact that they had to make a fire indicates they were cought unprepared, which is a position you don't want to be in. You want to have enough intelligence information from sources so you can destroy evidence without a rush or with your pants down like this. This is certainly seen as an embarrassment. Not more or less.

<comment><AUTHOR> Or perhaps they realized that the few high security document destruction machines they had on site, for daily sporadic use, wouldn't be enough to destroy the complete collection of documents, accumulated over the last 41 years that they've been present, in a timely manner?

According to DoD 5220.22-M, 5-705, incineration is probably the only realistic method in this particular situation.

The US has done the same in the past. When a foreign government kicks you out, you can't say politely ask "ok, can you give us a week to finish up here?". Or are you suggesting that they should have known they were going to be kicked out and destroyed everything in preporation?

<comment><USER2> > Or are you suggesting that they should have known they were going to be > kicked out and destroyed everything in preporation?

That's precisely what I'm trying to say. A campfire is certainly the fastest way to get the job done. It's just a very open public acknowledgement that you have stuff to burn. Every embassy or consulate on foreign soil has plenty of documents that are very confidential. Not all is criminal by any means. There is plenty of supporting material and analysis of economic concerns that are treated very confidential.

<comment><AUTHOR> How would they have known, weeks in advance, for what is being reported as an "abrupt" decision? Guessing wrong would mean destroying everything without reason. How would they benefit from not waiting until the decision was actually made?

From the linked video:

> Images show people burning documents at China's consulate in Houston, a > common practice when a diplomatic post is quickly abandoned.</comment></comment></comment></comment></comment>


Role of (Blue) Light in Sleep/Alertness/Cognitive Ability - <AUTHOR> http://www.nytimes.com/2011/07/05/health/05light.html?src=me&ref=general

<comment><USER2> This can be partially mitigated: <http://stereopsis.com/flux/></comment>


Set good defaults - <AUTHOR> http://justinkan.com/set-good-defaults

<comment><USER2> I'm curious about the standing desk because to me it's always seemed like something that would make me focus less on the task at hand. Then again, I've always been baffled by how others at the gym can read novels while on the eliptical. I can't even focus properly on the TV shows the gym has running when I'm exercising. Perhaps it's a reflection of my overall health or maybe my brain is wired in a way where I can't handle both involved physical and mental activity.

I'd like to hear from people who use standing desks on how it's affected their productivity and quality of work.

<comment><USER3> I have a comfy stool to sit in at my standing desk. I've found that without even thinking about it, I stand when producing, and sit when consuming. For example I'll sit and read some documentation or sample code, then stand to write my code. Standing felt quite natural after a day or two.

As for productivity/quality of work, it's not worse. For quality of life, it's much better as I don't feel as drained at the end of the day.

<comment><USER4> Same: producing when standing, consuming when sitting. I'm actually more productive, and if feels great. I'm also much more mobile when standing - I'll walk around if I'm thinking.

I am more physically tired at the end of the day, but in a good way.

</comment></comment></comment><comment><USER5> I don't see much of a correlation between these goofy treadmill desks and user interface defaults. I like the UI example of what they do at Exec, I think it's a smart design. But the second half of the article just reminds me of Mitch Hedberg's joke about escalators.

<comment><USER6> I think the connection is that he's going to work regardless, and if the default (via a treadmill desk or standing desk) is to be healthier, he'll do that. It would take work to find a chair and sit down and be less healthy, then.

</comment></comment><comment><USER7> I'm very curious about this claim

> I appreciate the most about having a treadmill desk is that even if I don't > turn it on once during a day it still functions by default as a standing > desk, which is already way better for you than sitting!

As far as I can tell the only thing we know is sitting is bad. We don't know that standing desks are good. Standing desks could ruin your feet. Treadmills could ruin your eye site as your head bounces as you try to read.

If there is some evidence that standing desks and treadmill desks are actually a net positive it would be nice to see the citations rather the just citations that sitting is bad.

</comment><comment><USER8> Defaulting to the last thing the user did is very often the simplest and best thing to do. But I'd question the _initial_ defaults -- is 1 b.r. 1 bath the most common option? Maybe it is. Is it the most common option for people wanting their place cleaned?

For all I know you've figured this stuff out and the answer to both questions is yes.

<comment><USER9> Business reasons can in this case also effect what sane defaults are. Maybe one want to anchor the consumers thoughts by defaulting with "cleaning the whole house" and barging down, or maybe one want to start with one of the cheapest options and barging up. This is where testing really shine as one can test each default for a while and see what default brings most revenue.

<comment><USER8> In a business like this, I'd optimize for repeat customers rather than revenue, but your point is taken.

</comment></comment></comment><comment><USER10> Good defaults also let you give power users complex features while keeping the common case manageable.

For <http://ratchet.io> , we're currently working on overhauling our notification system. The new system is rule-based, extremely flexible, and can be as complex to configure as you want it to be. But we're providing sane defaults -- e.g. "email everyone on the project when a new error occurs in production", "if Pivotal Tracker is set up, create a story for each new error" -- so it will (hopefully!) work just fine for most people out of the box.

<comment><USER11> Too many things are called ratchet. Reading your comment, I got you confused with

maker.github.com/ratchet/

</comment></comment><comment><USER12> The power of defaultism is why Internet Explorer still has 26% market share.

<comment><USER13> And why Bing has users, and why other competitors to Google have a very hard time getting traction.

</comment></comment><comment><USER14> Speaking of unconventional desk surfaces, does anyone make a good wall-mounted standing keyboard tray? All I can find are crazy articulated arm systems and gigantic freestanding desks. I just want a ready-made shelf designed to be used for only a keyboard + mouse facing a wall-mounted monitor.

<comment><USER15> Doesn't a standard ikea shelf do the job?

<comment><USER16> These are often too narrow and end with your face in the screen. I've apparently got perfect vision but had difficulty focusing when I attempted such a setup using standard-depth shelving.

</comment></comment></comment><comment><USER17> Defaults are everything.

Most people seem to heavily underestimate their power and potential.

</comment><comment><USER9> On servers, distros that has sane defaults and do not force one to configure every little piece of software is clearly "winning" over the more old ways of compile and configure. Back when BSD was the normal OS for servers, distros like Debian really showed the way that sane defaults was way superior than to the no defaults policy some had.

Thankfully we have moved away from the no defaults. Some places still need to see the benefits first hand, but universally, the old policy that said one should have no defaults is long gone. Those that previously had no defaults have mostly moved to the same style as Debian.</comment>


Beware the Birthday paradox - <AUTHOR> http://en.wikipedia.org/wiki/Birthday_problem

<comment><USER2> I wrote about this some time ago:

[http://www.solipsys.co.uk/new/TheBirthdayParadox.html?751130...](http://www.solipsys.co.uk/new/TheBirthdayParadox.html?7511303)</comment>


Envoy Mobile - <AUTHOR> https://eng.lyft.com/announcing-envoy-mobile-5c2067d9ade0 <comment><USER2> I really like how they're releasing this as effectively the first working proof of concept and committing to developing the rest entirely in the open - it's a great opportunity to see how a project of this scale plays out in real- time on GitHub.

<comment><USER3> Thanks, we're excited to be able to do this in the open and welcome community involvement!

<comment><USER4> But your username is "go away please"?

<comment><USER3> My username predates this account and this project. On Twitter and GitHub, it's just "goaway", so this is arguably more polite. ;)

It stems from the spdy/h2 GOAWAY frame, from prior work I did with these protocols.

Please don't take it personally.

</comment></comment></comment></comment><comment><USER5> So envoy will now provide a client-side library? Is there a particular reason why such client-side enhancements should not be applied to all Api clients, not just on mobile?

What is the ultimate goal here? Reduce the amount of boilerplate required to handle all possible edge cases when communicating with a remote service, like need to retry, etc?

I'd like to understand the value prop from a perspective of a generic api client, that does not now if there is Envoy, or any other load balancer on the other end.

<comment><USER6> You can think it as a cross platform networking library.

From the post.

"Low-level networking improvements like HTTP/2, QUIC, QUIC to TCP failover, gRPC, DNS replacements, push/streaming, observability, analytics, state of the art TLS, retry and timeout policies, etc. take a tremendous amount of effort both to implement robustly as well as to make consistent across all of the Android and iOS versions in common use. Envoy Mobile will provide all of this functionality in a consistent cross-platform manner, especially when paired with Envoy running at the edge, similar to how server-side Envoy provides consistency to polyglot distributed application architectures."

<comment><USER7> Yeah I think the idea is, envoy helps a lot on the server side, but the client side uses almost the exact same algorithms, so we ought to have something like envoy on the client side too.

</comment></comment></comment><comment><USER8> The blog post does explain a lot of the vision and its promises but can someone from Lyft (preferably) explain the practical use cases?

</comment><comment><USER9> I've been waiting to see this for a while, because this is intrinsically about extending the service mesh to end devices. Unfortunately it does seem to be more protobuf / gRPC specific then I would like at the moment, but device connectivity is absolutely something that should be managed as a separate concern from core application development.

<comment><USER3> While we see a lot of potential in protobuf-based interfaces, rest assured that this is fully-intended to be a general-use networking library. (Lyft employee/project contributor here.)

</comment></comment><comment><USER10> Really interested in cases where people have taken xDS to user-scale. Presumably you would want to implement the Delta Discovery Service to minimize the bandwidth used by xDS updates, however, then you're maintaining state on the xDS server which adds server overhead.

We're adopting xDS as an abstraction for our service discovery. Implementing it has been relatively straightforward even with the relatively minimal documentation outside of the hints provided by the Envoy specific configuration elements.

<comment><USER11> Are things that complex a delta coding would be needed over sending the whole thing down if etag changes?

<comment><USER10> As long as the node metadata is static and you're still filtering state-of- the-world to produce the same resources. If clients are only subscribing to static resources then yes, however, if you want to perform dynamic traffic shaping across a subset of resources then you have some state to manage.

</comment></comment></comment><comment><USER12> What are possible use cases for a proxy in a client?

<comment><USER13> I see this more as a "smart" client, where you can push routing, load balancing, retry policy, etc. out to the clients instead of enforcing those at your infrastructure edge… which seems great for controlled clients, but not- feasible for public facing use-cases:

        * routing rules potentially sensitive architectural
          information and expose many different nodes to the
          public internet
        * a mobile client doesn't generate enough "load" that the
          typical use case for load balancing would be used for
        * retry & timeout policies seem useful

However, I'm a curmudgeon that doesn't see a huge benefit to a service mesh over a traditional load balancer in the vast majority of applications. Load balancers can offer a lot of the same functionality at scale (thousands of requests per second) and abstract these ideas away from the client, which has more benefit, in my opinion.

I have used smart clients in the past to interface with, what is now being called, a service mesh. For low latency operations that could possibly hit one of thousands of hosts, it worked well… until network fabric changed and hosts were no longer directly accessible. Then operations became increasingly difficult since you had to be on the appropriate network to communicate.

</comment></comment><comment><USER14> Is there anything similar to Envoy Mobile for browser-based apps?

<comment><USER15> Unfortunately, browsers don't give very much (if any) control over the networking components -- so you lose out on possibilities for much observability, you can't do things like implement HTTP/2 if your browser doesn't already give it to you, you can't tune DNS stuff at all, etc. Especially as, right now, it only supports gRPC, which requires a proxy on the server side if you want to use gRPC from the browser.

What benefits would you like to see for a browser-based app?

</comment></comment><comment><USER16> The hello-world example (At least in Objective-C) shows a 'run-envoy' call followed by the client code making requests to envoy in the same process over HTTP on a dedicated port. Will there be a client API or is the model that one uses a local HTTP client to speak to your in-process envoy?

<comment><USER3> Yes, we are immediately starting work on a direct, client API. Getting this linked as a library and functional in iOS and Android apps was merely our proof-of-concept and first step.

</comment></comment><comment><USER17> Shout out to Lyft for Envoy. I haven't used it all that much, but it's been very set and forget. The other "API gateways" like Linkerd and Kong are either a bunch of hacky Lua scripts (Kong) or use a lot of ram for the number of instances you'll probably want (Linkerd)

<comment><USER18> Kong is a fully fledged Lua/C application running on the LuaJIT VM and leveraging the NIO of Nginx, the same stack that powers the underlying proxy of companies like Cloudflare by the way.

</comment></comment><comment><USER19> Would this make WireGuard UDP tunneling over TCP easier?

<comment><USER20> Also hoping obfuscation, censorship evasion...etc!

</comment></comment><comment><USER21> I want to like envoy, but honestly the documentation for all areas of the framework is poor, with no support.

</comment><comment><USER22> So does this mean that containers will be able to run on mobile devices?

<comment><USER23> No, this is a library that is linked in to a mobile app.

Although arguably iOS/Android sandboxing is already akin to a container.

<comment><USER22> Ok, I'll have to dig in to find out why this is important, as all the explanations I have seen are too technical for me</comment></comment></comment>


GitCred: PageRank applied to the GitHub users/followers graph, implemented in Clojure. - <AUTHOR> http://github.com/mmcgrana/clj-garden/raw/master/gitcred/RESULTS.txt

<comment><AUTHOR> Source Code: <http://github.com/mmcgrana/clj-garden/tree/master/gitcred>

<comment><USER2> Watch out... he says "Clojure Codes" :)

</comment></comment><comment><USER3> Great use of Clojure. Looking at the code, it's mostly a wrapper for an already implemented Java library that computes PageRank. But I feel confident in saying that writing this in just plain Java would have been much more verbose and taken longer.

</comment><comment><USER4> I've been following programmers that make stuff that I like, and programs that I use. Collectively, the news feed for all these follows have been pretty useful because it's a little bit like a leading indicator on what projects productive people find interesting, so you hear about things a little bit earlier. I found about about _why's Mixico a few days before it was posted here.

I've heard of most of the names top of the list, but #2 was pretty interesting. I had never heard of imbriaco, but it seems like he has just one project: the erlang-textmate. Seems like it's because 37signals follows him, so that gives a lot of juice to his rankings.

<comment><USER5> He's surprised too: <http://twitter.com/markimbriaco/status/1091009771>

</comment></comment><comment><USER6> Interesting list. At a glance I recognize a lot of ruby people near the top which is a pretty good indicator of how popular git / github have been in that circle. Github has really become _the_ code hosting source for ruby developers. I wonder how popular it is for other languages?

Also, looking at this list is looks like the quickest path to the top is to develop open source software for other programmers. Perhaps a javascript library or a web framework or software used by github itself.

<comment><USER7> <http://github.com/languages>

We've been seeing a lot more Python recently. Perl and PHP are growing nicely, too.

</comment></comment><comment><USER8> Nerdgasm.

</comment><comment><USER9> 2.88. w00t. Considering how limited my contributions are, that's pretty sweet :-)

</comment><comment><USER10> the list the algo generates proves pagerank is a very good.. Google ftw- I do wonder sometimes how they kept the lead now that most search engines are using similar algos..

<comment><AUTHOR> Scale. And now brand.

Back when Google starting gaining popularity it was an order of magnitude better than anything else (I remember using Dogpile to search a dozen individual engines because they were all so crappy).

I feel like the quality of Google search has declined recently, but for something to usurp Google it will need to be an order of magnitude better to get me to switch again.

<comment><USER11> Honestly theres much more to web search than page rank.

Stemming (run vs running), synonyms, and other linguistic hackery as well as integration/extension with say Maps (its really convenient to be able to search for say "Starbucks Cupertino" for example).

Search is still moving forward, its just so expensive to make a competitive engine and that the room to improve is getting smaller and smaller.</comment></comment></comment>


Elon Musk vs. the Trolls - <AUTHOR> http://www.bloomberg.com/news/articles/2016-11-22/elon-musk-vs-the-trolls?cmpid=BBD112216_BIZ&utm_medium=email&utm_source=newsletter&utm_campaign= <comment><USER2> His biggest (current) problem regarding SpaceX is that satellites aren't mass- produced.

If it was, buying a spot on a Falcon or on a Delta would be simple:

TCOFalcon = cost of launch + self-insurance-markup.

TCODelta = cost of launch + self-insurance-markup.

Falcon costs $1233/lb

Delta IV costs $8694/lb.

To compare apples to apples, to launch 50,000 lbs (a full Falcon FT 50,000 lb), a Falcon would cost 61,650,000, and a Delta IV would cost 434,700,000).

A Delta IV failed once out of 33, and the Falcon 9 failed three out of 29.

Therefore, TotalCostOfLaunch = CostOfLaunch+costOfSatellite * failureRate.

For TCODelta = TCOFalcon

CostOfLaunchDelta+costOfSatellite _failureRateDelta = CostOfLaunchFalcon+costOfSatellite_ failureRateFalcon.

Plugging in Numbers,

434,700,000+c * (1/33) = 61,650,000+c * 3/29

c/33-2 * c/28 = 61,650,000 - 434,700,000

c = 5,100,126,428

Any satellite worth less than five billion (!! That's an _insanely_ expensive single mission) would be cheaper to launch on a Falcon, despite its failure rate

The only problem is that you have to wait for a new satellite

<comment><USER3> I see it as somewhat of a catch-22, which I think is the point of dogfooding the boosters with SpaceX's own launch demand.

Nobody builds commodity satellites because there's no cost efficient way to launch them (microsats aside), and nobody tries to pioneer more cost efficient but lower reliability launch systems because there's no proven demand.

Your reasoning shows the edge under current economics. But I think the real money will be made once we get to "Well, I could build a second satellite for lower unit cost and have two in orbit." Because when demand shifts to that, suddenly anyone without a cost-efficient launch system to offer gets priced out of that chunk of the market.

</comment></comment><comment><USER4> It must be a vote of confidence to have such shrill and obviously poorly informed voices campaigning against you.

If they had some depth to their arguments they would at least make you think twice but such desperate tactics pretty much tell you that you're traveling in the opposite direction to the entrenched interests, attention seekers and outright weirdos.

<comment><USER5> That or is a testament of the low IQ behind the oil industry.

</comment></comment><comment><USER6> The last line of the article is a summary

> The bottom line: Elon Musk attracts a wide array of real and fake online > antagonists criticizing his work on electric cars, rockets, and solar > panels.

Is "the bottom line" a thing Bloomberg has started including with some articles or is this a bizarre one off?

</comment><comment><USER7> Elon: just don't feed the trolls.

<comment><USER8> How is he feeding the trolls?

<comment><USER7> "People tell me I shouldn't talk about the fake rockets because it makes me sound crazy"

edit: that quote was not from Elon, I misread the post. Sorry.

<comment><USER9> That quote didn't come from Musk:

 _Leech, who continues to file Tesla complaints, also insists that SpaceX's success in landing rockets back on earth is a hoax, videos of the landings notwithstanding. "People tell me I shouldn't talk about the fake rockets," he says, "because it makes me sound crazy."_

<comment><USER10> In all honesty I saw the quote and thought it was Elon Musk until I finished RTFA. Only then did I realize it was the person obsessed with Tesla.</comment></comment></comment></comment></comment>


Resonance from Microwaves to Confined Acoustic Vibrations in Viruses - chupa-chups https://www.nature.com/articles/srep18030 <comment><AUTHOR> Oh the irony: microwaves demonstrated by science to deactivate viruses.. on a month where 5g towers are ransacked by conspiracy theorists who believe they feed the virus.</comment>


Ask HN: Rejected by YC? Did they even look? - <AUTHOR> I've just received the 2nd rejection letter from YC after applying for S17 & W18.
Looking at our youtube stats, I can see that our video was never watched.
This makes me suspicious that our application was ever looked at.
Anybody else see similar behaviour?
As a judge for another incubator, I can tell you I always at least start the videos.
We've got 50k users and revenue, so I'm not worried about the business, just don't want to waste my time applying for YC if we're never even given a look at. <comment><USER2> Same here. Last year when we applied, our video got a look and there was at least one visit to our website from them per Analytics. This year nothing.

I was just making this observation to my partner and I'm not sure what to make of it.

</comment><comment><USER3> Did you apply long enough before the deadline?

<comment><AUTHOR> I was a few days before, but should that really matter? Last time I was more than a week before.</comment></comment>


"Maxwell's equations of software" examined (2008) - <AUTHOR> http://www.righto.com/2008/07/maxwells-equations-of-software-examined.html <comment><USER3> In my opinion, "Maxwell's equations of software" ought to be based on the simplest possible computational framework, which one could argue is the lambda calculus.

A meta circular interpreter working on a simple binary encoding of lambda calculus (where abstraction is 00, application is 01, and a variable is 1^{n}0) is only 206 bits long [1][2], over 20 times smaller than the article's equations.

[1] [https://tromp.github.io/cl/cl.html](https://tromp.github.io/cl/cl.html)

[2] [https://tromp.github.io/cl/LC.pdf](https://tromp.github.io/cl/LC.pdf)

<comment><USER4> How about a 2 state 3 symbol Turing machine? That's pretty simple, and universal too.

[https://en.m.wikipedia.org/wiki/Wolfram%27s_2-state_3-symbol...](https://en.m.wikipedia.org/wiki/Wolfram%27s_2-state_3-symbol_Turing_machine)

<comment><USER3> It's not directly comparable, since this Turing Machine is not a self- interpreter in the sense of interpreting arbitrary programs in a language of Turing Machines.

<comment><USER4> First off, I admit I didn't do my homework so I have no idea what I'm talking about, but couldn't the Turing machine make a Turing machine interpreter and therefore be a self interpreter? It is universal, no?

<comment><USER3> There's different notions of universality.

In the more abstract one, you can emulate arbitrary computation by preparing the system (in case of the 2 state 3 symbol TM, its tape) in an appropriate configuration, letting it run until some the configuration satisfies some condition, and then extracting the result from the final configuration.

In a more concrete one, you have a language of programs, and a universal program takes a program description as input, and interprets it. I give a slightly more formal definition of such a notion of universality, as applicable to Algorithmic Information Theory, in [1].

[1] [https://tromp.github.io/cl/Binary_lambda_calculus.html#Unive...](https://tromp.github.io/cl/Binary_lambda_calculus.html#Universality)

</comment></comment></comment></comment></comment><comment><USER5> As someone who spent years studying Computational Plasma Physics, it feels strange to see someone cite "Maxwell's Equations" as some sort of platonic form of simplicity

<comment><USER6> I have never understood the need in the Computer field or other fields for that matter to make unnecessary and incorrect analogies to physics. It is silly and I have to look past this as many things have worth where the author does this as some sort of way to make what they did seem more impressive rather than just advance something on its own merits.

<comment><USER7> I guess there's something to be gained by doing that. (By contrast, electrodynamics wouldn't gain anything by calling Maxwell's equations "the lambda calculus of physics.")

<comment><USER6> I would say that we as CS people could learn from physics but when name things God Particle... Arguably to grab headlines I wonder about the Physics world... Then again I guess things like funding and getting people interested are important.

<comment><USER7> As Lederman explains, "This boson is so central to the state of physics today, so crucial to our final understanding of the structure of matter, yet so elusive, that I have given it a nickname: the God Particle. Why God Particle? Two reasons. One, the publisher wouldn't let us call it the Goddamn Particle, though that might be a more appropriate title, given its villainous nature and the expense it is causing. And two, there is a connection, of sorts, to another book, a much older one..."

<comment><USER6> Haven't read Lederman's book but sounds interesting. If he is referencing the Bible that makes me not like the name even more however names really are pretty trivial and aren't the real science so I guess it doesn't even matter. It is just my opinion doesn't really mean much in the grand scheme of things, both my opinion and what he names the Higgs-Boson.

</comment></comment></comment></comment></comment></comment><comment><USER8> I think current bootstrapping work clearly shows that the Maxwell equations of software are:

       pop rx -> sp--; rx := mem[sp]
       push rx -> mem[sp] := rx; sp++
       sub rx ry -> rx := rx - <USER2>
       jmp rx $I -> if rx is zero jump $I bytes from end of instruction.

One might also argue:

       call rx -> mem[sp] := IP; sp++; IP := rx
       ret -> sp--; IP := mem[sp]
       nand rx ry -> rx := rx nand ry

but those are just optimizations

<comment><USER9> Exactly what bootstrapping work? Looks interesting (and like Forth, but that's no surprise).

</comment></comment><comment><USER10> There is really nothing to it. A Lisp interpreter runtime can be made to interpret a subset of Lisp.

It is very much more impressive that you can make a whole computer out of nothing but NAND or NOR gates, but still the same sort of thing.

<comment><USER11> Depends very much on gates. They would have to be idealized, with constant non-zero input-to-output propagation time. Best approach is then to simulate them, perhaps in Lisp.

<comment><USER12> I'm guessing that's because you envision using some of those gates to fake a clock. Wouldn't you also have to make some assumptions about wire propagation delays to guarantee hazard-free operation?

<comment><USER11> Any wire propagation would work, zero or positive, as long as it is deterministic (it can all be compensated by extra NAND/NOR gates). And with negative propagation delays you could do wonders! Anyway, my comment was a quick jab to circle back to Lisp after parent dismissed its elegant core.

</comment></comment></comment></comment><comment><USER13> Maxwell's equations are linear (solutions are superimposable etc.)

I think if you'd call something "Maxwell's equations of software", a similar property should hold, somehow ...

<comment><USER14> Only if you take U(1) as your gauge group. If you pick a non-abelian group the equations are not linear and solutions are not superposable.

<comment><USER15> Maxwell's equations _are_ linear. The nonlinearity of quantum field theory is not relevant here.

<comment><USER14> I was trying to convey that "Maxwell's equations" can name not just the equations that describe electromagnetism, which has a U(1) gauge group, but can name an entire category of gauge theory equations---one for each gauge group. If the gauge group isn't abelian Maxwell's equations are _not_ linear.

<comment><USER16> Can you give a example of a set of gauge theory equations for a non-U(1) gauge group? This seems interesting but I'm not really sure what it would actually look like.

<comment><USER14> QCD is a nonabelian gauge theory, for example. The generalized Maxwell action is called the Yang-Mills action. The corresponding equations are very similar, except the gauge-covariant derivatives do not take a particularly simple form (which they do in the U(1) case because U(1) is abelian).

[https://physicstravelguide.com/equations/yang_mills_equation...](https://physicstravelguide.com/equations/yang_mills_equations#tab__why_is_it_interesting)

</comment></comment></comment></comment></comment></comment><comment><USER17> side question : i remember a course in my logic class where our teacher showed us a programming language made of only two letters, and where all operations, numbers, etc were all defined with just those two letters. It was created by some famous logician but i can't find anything on the web about it.

Anyone here knows what that could be ?

edit : i think the lesson was showing curry's work on combinator logic..

<comment><USER18> '0' and '1'? Sorry :P

<comment><USER16> You can technically do it with only one character (via Godel numbering and unary), but it gets annoying fast for obvious reasons.</comment></comment></comment>


Now Shipping Soylent 2.0 - <AUTHOR> http://discourse.soylent.me/t/now-shipping-soylent-2-0/23434?u=kennufs <comment><USER2> It seems like such a waste of plastic and cardboard. Makes me think of Keurig k-cups and how it's been deemed an environmental mess. I'm sure the Soylent bottles are recyclable but it's still a waste to be shipping all that weight around (including the water).

I hope they make a vending machine that mixes it on the spot.

<comment><USER3> The problem with Keurig k-cups is that you can't use them for anything else and you can't use them with other coffee machines. These bottles look like you could save them as water bottles in the worst case.

<comment><USER4> Being realistic, nobody is going to use these for water bottles either. And even if they did how many water bottles do you really need?

K-Cups are wasteful, but at least they ship three months (90 K-Cups) at a time and there is very little wasted space during shipping (it is just packed coffee). Is it a waste of plastic/foil? Absolutely. But in terms of shipping waste, K-Cups aren't near the worst.

These on the other hand are shipping around tap water. That uses up fuel, it uses up space, and it arguably wastes even more plastic. There's no reason this couldn't be shipped as a powder and sell you months and months of the stuff.

The saddest part is that they USED to sell the product like that. They're moving to this method to increase the price (and let's not pretend: It is a marked increase).

<comment><USER5> As someone who has boxes of the powder sitting around, I'm thrilled to get it pre-mixed in a bottle. The entire convenience factor of Soylent was largely eroded by the mixing and cleaning process, and I'll be happy to have ready-to- drink bottles that I don't have to scrub down for tomorrow's meal.

<comment><USER6> For me that's not the case (even as someone who loathes doing dishes).

I use a quart size glass mason jar. Usually get away with just adding some water after I'm done and shaking to clean (even after letting it sit for a while)

</comment></comment></comment></comment></comment><comment><USER7> At this point, I'm not sure how bottled Soylent can distinguish itself from other bottled dietary replacements like Ensure, aside from the name.

<comment><USER8> Are ensure et al nutritionally complete? As in - you can live off ensure and nothing else?

My understanding is that soylent (and clones) are able to be full replacements for food in general, whereas ensure, muscle milk, etc, are meant to be purely supplemental

<comment><USER7> Yes, ensure is designed to be a sole-source nutrition. When someone is in the hospital and can't eat, they are given Ensure as a sole food source.

<comment><USER3> Not from what I saw, it looks like you can easily go over board on some of the vitamins and minerals if you have a few bottles of it.

<comment><USER9> Which vitamins and minerals?

Given the number of people under close medical supervision who _are_ using Ensure for meal replacement, why hasn't vitamin poisoning from Ensure been observed or reported?

</comment></comment></comment></comment></comment><comment><USER10> I'd love to see less snark/hostility/FUD on these Soylent threads.

1\. No, Soylent is not the same as Ensure with different packaging/marketing

2\. No, Soylent does not have illegal levels of heavy metals, nor did it in the past.

3\. People don't tend to eat nutritionally complete meals every meal of the day. Measuring Soylent against this ideal is beside the point. Soylent _is_ inarguably better than coke and cheetos, though. I bet most people reading this can think of a meal they've had in the last 48 hours that was less healthy than 12 oz soylent.

<comment><USER11> This isn't meant to be hostile snark FUD. Hopefully you know the answer or have a link that addresses my question. As far as your first point... I am asking because I know someone that sometimes has trouble keeping food down and their doctor recommended them to use Ensure, but they didn't like it. I was thinking about telling them about Soylent, of course I would have them ask their doctor first. Anyways, What makes it functionally different than Ensure?

<comment><USER10> If I were to try to give a complete answer, I'd probably spend fifteen minutes googling "Ensure vs Soylent" \- there are some good matches there through discussion boards that analyze the ingredient breakdowns, also some replies from the soylent people too. Ensure is definitely more expensive in those analyses, and that's from before soylent's recent price drop. Beyond that, it appears to be a rather different ingredient list - looks like Ensure doesn't have much in the way of fiber, has more sugar, etc.

</comment></comment></comment><comment><USER12> Soylent truly is the food of the future! [1]

[1] The joyless tech-utopian future for ascetics nerds who decided their humanity wasn't optimized for maximum productivity.

<comment><USER6> Ha! I started using it because it's just so easy for me to skip breakfast and/or lunch. I'm not replacing food with it. Just works better than not eating.

<comment><USER13> You should try intermittent fasting. The first two or three weeks are hard, but after that its easy, and really seems to sort out insulin sensitivity (or thats my guess from reading the science and "gut" feeling - pun intended). No feeling tired after lunch.

</comment></comment></comment><comment><USER14> This video is super bizarre. While assembly lines are impressive works of engineering in and of themselves, I don't know how this engenders excitement about the product. It looks super artificial and not like food. I know that's the point that it's "fuel" but it would be nice to see the ingredients that turn into that white liquid. Maybe we don't want to see those...

<comment><USER15> Jumped on here to say this as well, this does not make Soylent look appetizing or make me want to buy it. It does the exact opposite. It makes the product look bland, generic, manufactured and unappealing.

<comment><USER16> They needed this video to overcome the beta testing video of people scooping powders out of various cardboard and plastic buckets from the floor.

[http://motherboard.vice.com/read/soylent-how-i-stopped- eatin...](http://motherboard.vice.com/read/soylent-how-i-stopped-eating- for-30-days)

</comment></comment></comment><comment><USER17> If you buy the powder, it's easy to blend in some fruit or other flavoring, which gives it more variety and a better taste. Or by itself, it's pretty easy to prepare even in just a shaker bottle if you don't have a blender. I'm curious to see how the texture of 2.0 will compare to way it turns out when I make it at home, though. I assume we'll see the bottled form in stores whenever they're able to produce enough, and that's where they'll really start making money.

<comment><USER18> I've tried cinnamon, peanut butter powder, cocoa powder, Nesquik, banana, mango, chocolate syrup, vanilla extract, and even tried to mix coffee in after the initial mixing. Nothing has gotten rid of the horribly overpowering taste. I have 3 weeks of 1.5 sitting in my cabinets because I'm unable to stomach it.

I don't have overly sensitive taste buds (I will eat almost anything) but simply cannot stomach Soylent. I feel like the odd-ball out as most compare it to a slightly off or flavorless protein shake or "easily better if you add ___ while mixing". I'm wondering what I'm tasting that others' aren't.

I want to try 2.0 but am afraid it will still taste exactly like 1.5 and with no way to try and change the flavor by adding it during the mixing phase...as trying to add flavor after the mixing step is more difficult./diluted.

Any suggestions from anyone? Am I not adding _enough_ fruit perhaps?

<comment><USER19> I had the same problem with 1.4, I found adding 2 tbsp of cocoa powder, and 2 tbsp of sugar, per pouch made it taste more like a chocolate protein shake, and way more bearable.

<comment><USER18> It never crossed my mind to try and add sugar... I mean, my goal is to be "healthier than current diet" and not "as healthy as can be" so I'm not against it (as can be seen by my attempts at adding chocolate syrup).

Maybe I'll give that a try tonight and see how it is in the morning. Thanks for the suggestion.

</comment></comment></comment></comment><comment><USER20> Does this one have as much lead and cadmium as the previous?

<comment><USER21> How much lead & cadmium did the previous one have? (with source please)

<comment><USER22> It's easy enough for you to Google up the details. The "issue" wasn't with the content but with their labeling -- they only included the California Prop 65 warning on their website, not on the product packaging (which they claimed was sufficient since the website was the only legitimate source of the product).

<comment><USER23> It's almost like people entering highly regulated industries should have domain experience and not just make it all up as they go along.

</comment></comment></comment></comment><comment><USER24> I'm super excited. I was on Soylent consistently last summer/fall, but had to stop during the winter because living off chilled drinks in winter was hell. I've struggled all summer to get back into the groove and I think pre-bottled Soylent would be best for me. Now I'm just hoping it's good at room temperature.

</comment><comment><USER25> My favorite argument for food being more than just a percentual composition of nutrients is the fact that your gut is effectively able to smell.

> Olfactory receptor responding to gut microbiota-derived signals plays a role > in renin secretion and blood pressure regulation

[[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3600440/](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3600440/)]

Beyond my scepticism regarding the long-term benefit of a simplification of eating down to relying to a single designed food source - I am also worried about the mindset of a person who is motivated in doing so.

<comment><USER24> My mindset is that I live alone and I heavily dislike cooking food. When not consuming soylent, I live entirely off of take-out and delivery food. There is almost no way that Soylent isn't more healthy than the stuff I would otherwise eat.

<comment><USER25> Then you should reevaluate your eating options.

There is more than cooked or take-away or Soylent.

How about this:

\- Whole-wheat bread

\- Avocado

\- Smoked fish

\- a piece of feta

\- an apple

\- a banana

Just one of many cold-dish very healthy meals. A good mix of everything - carbon hydrates, proteins, fats, ruffage, vitamins, minerals - enjoy.

</comment></comment></comment><comment><USER26> Looking at the nutrition facts, with 5 bottles (2000 calories) a day you get 60% daily value of fiber, is that percentage enough or I'm missing something here?

<comment><USER27> I believe the response from Soylent is that fiber itself is not necessary; it's only needed to move along solid food through the digestive system.

If you're only drinking Soylent, you should need far less fiber, if any at all.

I am seeing a lot of criticism of this online [1], however.

[1] [http://discourse.soylent.me/t/reduced-fiber- in-1-5/21706/8](http://discourse.soylent.me/t/reduced-fiber-in-1-5/21706/8)

<comment><USER13> Because a bunch of engineers is going to know best about that sort of thing. (It wasn't invented by gastroenteroligists was it?)

<comment><USER16> They pay for dietician advice. The credentials of those dieticians are probably online somewhere.

I'm not sure when in the process they got this advice, or if there's a dietician on staff full time.

</comment></comment></comment></comment><comment><USER28> Really sad to read that this new batch isn't certified gluten free.

Eating gluten free is often a struggle for ppl with celiac disease.

I'm sure a gluten free soylent would be greatly appreciated by the celiac community! (as least I would!)

The way I see it, a gluten free soylent would be my go-to lunch meal when I'm in a hurry or when there are no leftovers.

<comment><USER16> Ensure complete retail is gluten free so if you wanted a liquid feed you could try that.

[http://abbottnutrition.com/brands/products/ensure- complete-r...](http://abbottnutrition.com/brands/products/ensure-complete- retail)

I'm not sure it's a great idea and you may want to check with a doctor first.

</comment></comment><comment><USER29> The plastic bottles are wasteful. This makes sense for retail locations, but not for home delivery.

For someone who drinks a fair amount weekly, I have to mix soylent with something to stomach it. If you remove that option I'm not really sure who they are targeting this at.

Also interesting the powder wasn't updated to the 2.0 formula.

</comment><comment><USER30> I wonder how bad is that for your teeth if you don't have to chew on your food.

<comment><USER31> Not very. Chewing gum would help.

</comment></comment><comment><USER32> I would love to try the pre-bottled version, but unfortunately I'm allergic to soy. I wish they would give an option of the type of protein used since soy is a fairly common allergy.

</comment><comment><USER33> So.. what's the changelog for v2.0 ?

There is no link in the text or in the video pointing to that info.

</comment><comment><USER34> The soy content will be great for menopausal women.

</comment><comment><USER35> I never realized how amazing packaging technology had become.

</comment><comment><USER36> Now we are going to create a ton of plastic waste?

</comment><comment><USER37> Please stop this culture of insanity, it is destructive.

I get it, Soylent is targeting the "100X engineer" crowd who are supposed to be unflappably dedicated near-godlike ubermenschen. I get that people need to telegraph "how busy" they are by constantly talking about it to everyone with ears. I understand that people need to communicate high-value to each other, and do this by referencing how much responsibility they're given professionally or otherwise-- but long before the point of people eating nutrient paste instead of real food, this busyness fetish has gone too far. You don't need to be eating nutrient paste to convince me that you are important at your job and also good at it-- these concepts have nothing to do with each other, and the usage of Soylent as a prop for the persona of "being hardcore" is simply puerile.

Nobody in the real world is so "busy" that they can't stop what they are doing for a few minutes and prepare and consume real food in order to meet their body's demands. Even special forces soldiers on combat missions in enemy territory carry food that needs to be quickly prepared, which they can then scarf down. Relatedly, quality food is a big boon for morale-- and Soylent sure aint.

I guess if you're a meta-human weirdo who claims to have no inherent desire to consume tasty food and just wants to "get it out of the way", Soylent is for you. I don't believe you actually exist, though. I guess it's possible some brain pathology could cause a lack of desire for food, but come on, go to a doctor instead of eating Soylent.

As a parting shot, I'll mention that Soylent probably doesn't have any kind of phytonutrients or anything similar. Soylent also doesn't have any of the numerous pharmacologically active ingredients of common food items-- the effects of not having these may be subtle, but noticeable over time. Look, just go to your local farm stand, and buy some fucking fruits and vegetables. Most of them can even be eaten raw if you're gonna be a jerk about "not being able to cook" or not having enough time.

<comment><USER38> I think it's fascinating how hostile some people can get towards Soylent. It's like they think the mere existence of it is an attack to the core of their identity. I wonder if it's just insecurity triggered by people liking something that they don't like or some other type of psychological defense mechanism.

<comment><USER37> For me, it's hostility toward the race to the bottom and accompanying dehumanization that Soylent is nodding to.

I really don't understand people who think positively about Soylent. It's bland nutrient paste, similar to the kind fed to coma patients. How exciting and DISRUPTIVE!!!

<comment><USER39> I used Soylent to lose weight. It helped me gain very precise control over caloric intake.

You know what? I didn't care that it was a bland nutrient slurry. I cared about the "dehumanizing" control it gave me. I cared about the options it brought to my life. Discovering significant extra time in my day by not cooking 8x a week was a nice bonus.

What I'm _really_ seeing in your comments is that you're struggling to understand how someone could think so utterly differently from you.

<comment><USER40> If weight loss is your goal, it's actually cheaper and easier and far, far more pleasant to just make smoothies for a couple of meals a day. Here's an easy one that I make all the time:

* 1/2 cup yogurt

* 1/2 cup juice (apple, orange, whatever)

* 1 banana, peeled

* 3-4 frozen strawberries

* 1/2 cup frozen blueberries

Toss in blender. Blend. Consume. Rinse out blender. From assembling ingredients to rinsing the blender, the whole process can be performed in <10 minutes, and is _far_ less disgusting and dehumanizing than consuming bland nutrient goo. Total ingredient cost for one week of daily smoothies is <$10.

A big part of what makes us human is that we take pleasure in eating good food. It's a shame to throw that part of your humanity away unnecessarily.

<comment><USER39> Perhaps I don't subscribe to your narrow definition of humanity. I found bland nutrient goo perfect for my needs. It meant no shopping, no dealing with perishables, and other logistical and organizational benefits.

Have you considered the possibility that perhaps not everyone thinks like you?

<comment><USER40> Another interesting trait of humans is that once they've subscribed to an opinion, they'll tie themselves in knots looking for ways to avoid changing their mind despite all contradictory evidence.

Is it possible that you really don't care about one of the core biological experiences that define human civilizations throughout history? The act that differentiates our cultures, has driven migration, evolution, _wars and exploration?_ The act that is so ingrained in our biology that _meal preparation_ is central to every human settlement?

Yeah, that's possible. It's also possible that you're a blowhard. But hey man, knock yourself out. I was just saying that it's pretty damned easy to make a smoothie.

<comment><USER39> You also declared that I had opted "to throw that part of your humanity away unnecessarily".

But nevermind that. Yes, it's easy to make a smoothie. Just not sufficiently easy that I preferred it to Soylent, which was a highly personal decision for me to make and relies upon choices and information not available to you.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER41> oh neat, did they get rid of the toxic heavy metals yet?</comment>


The $5 Logo - <AUTHOR> http://blog.folyo.me/the-5-dollar-logo/

<comment><USER2> I've spent hundreds of dollars on logo graphic design services. It's not something you want to skimp on--branding is incredibly important.

<comment><AUTHOR> I totally agree. The first impression people get can make your project fail or succeed.

I don't think it's impossible to make it without a decent brand, but it's a lot harder, and your product must really be useful.

I personally spent $600 on this logo, which I think it's an average price: [http://snaplive.com/media/images/shared/logo.png](http://snaplive.com/media/images/shared/logo.png)

</comment></comment><comment><USER3> Although you've certainly made it clear that fiverr isn't going to be a good choice for an actual logo, it might be good for logo research. You got a handful of interesting colors, fonts, and concepts from three designers for $15. Not bad.</comment>


Apple Owns Your Apps (and Maybe Your Soul?) - <AUTHOR> http://www.maclife.com/article/news/eff_apple_owns_your_apps_and_maybe_your_soul

<comment><USER2> Draconian? Yes. But I don't see how anything in the article (or the source at the EFF) justifies the headline (and Maybe Your Soul). Of course it's meant to be hyperbolic, but I don't see how it is at all justified.

</comment><comment><USER3> Interesting that the EFF used the FoIA just to obtain a copy of this agreement. I would have assumed they could just bluff their way into the developer signup process and then refuse the agreement once they get a copy of it.

<comment><USER4> Makes better since given the context of the article, for them to not refuse the agreement and talk about it, as the agreement prohibits anyone from talking about the agreement

</comment></comment><comment><USER5> Why not just link to the original EFF article, since over half of the maclife article quotes it?

EFF article here: [http://www.eff.org/deeplinks/2010/03/iphone-developer- progra...](http://www.eff.org/deeplinks/2010/03/iphone-developer-program- license-agreement-all)</comment>


Mining-the-Social-Web (Python) - <AUTHOR> https://github.com/ptwobrussell/Mining-the-Social-Web

<comment><USER2> There's some good code in here. If you're of a slightly more of a machine learning bent, consider looking into Collective Intelligence (has great source code as well - <http://examples.oreilly.com/9780596529321/>). It will be a great addition on top of this book.

Of course, when you're ready to graduate, look into Lucene & Mahout for some heavy duty stuff. If you want to make any of these map-reduce'able, Yelp's Mr. Job (also Python) is a handy tool.

On top of that, the BackType blog is always full of gems. Their recent dissection of the #lessambitiousmovies trend on twitter was quite interesting ([http://blog.backtype.com/2011/01/analysis-of-the- lessambitio...](http://blog.backtype.com/2011/01/analysis-of-the- lessambitiousmovies-twitter-trend/))

</comment><comment><USER3> I just browsed the code and pre-ordered the book. It uses the NLTK toolkit for NLP and has useful _plumbing_ code for authenticating with Twitter, LinkedIn, and Facebook, etc.

<comment><AUTHOR> Indeed, I added the book to my wishlist. Happy that it's so inexpensive. This is a fantastic way to promote the sale of a book.</comment></comment>


Tools To Help You Choose Your Website Color Scheme - <AUTHOR> http://www.techiemania.com/5-awesome-free-tools-to-help-you-choose-your-website-color-scheme.html

<comment><USER2> The best weapon in your arsenal is a designer (human).

I built a theme using a palette from colorcombos.com, and thought it was just great. When I suggested the same colours to have a logo created, the designer I worked with tweaked them without even asking.

When I applied the new colour to the website, it knocked the wind out of me. Some people have the gift. There's no replacement for an artist who understands what you're trying to express.

She managed to change the way I feel about my own project.

<comment><USER3> Who was the designer?

<comment><USER2> Please drop me an email (see my profile) if you want to get in touch with her.

</comment></comment></comment><comment><USER4> Please revise the title to conform to the guidelines, thank you!

<http://ycombinator.com/newsguidelines.html>

 _If the original title begins with a number or number + gratuitous adjective, we'd appreciate it if you'd crop it. E.g. translate "10 Ways To Do X" to "How To Do X," and "14 Amazing Ys" to "Ys." Exception: when the number is meaningful, e.g. "The 5 Platonic Solids."_

<comment><USER5> Until the submission guidelines are summarized on the submission page, people should stop whining about the wording of titles.

<comment><USER6> I disagree. It's a nice idea to summarize and link to the guidelines, but this 'whining' actually helps to make good titles.

</comment></comment></comment><comment><USER7> It's worth knowing the back-story to Kuler as it relates to another great color resource named ColourLovers:

[http://www.colourlovers.com/web/blog/2007/07/06/for-the- reco...](http://www.colourlovers.com/web/blog/2007/07/06/for-the-record-adobe- kuler-vs-colourlovers)

<comment><USER8> Thanks - I was wondering about this. I've used ColourLovers.com for years, but I've never heard of Kuler until today.

</comment></comment><comment><USER9> As a designed I really find this kind of tools useless. Especially when I get a color scheme delivered by the client.

It's not so much about that I'm an awesome designer (although I like to entertain that view of myself), but that five blocks of solid color says very little about how the colors will be used.

One problem is that the amount of colors you use and what elements get what color will completely change the impression of the design. A block of solid orange also can't express the subtle effect of gradients. Have a look at the spoon in this photo for an example: <http://static.howstuffworks.com/gif/tea-8.jpg>

Another problem is optical illusions. The perception of colors change very much with how much of them you see. A thin text will need to be darker that a bold headline to appear equal, and one color will look different next to two others (making a solid color look like a gradient next to an actual gradient).

The tool that would be useful would be an editor that lets you pick colors for specific stereotype elements of a website, like a h1-h3 header, body text/background, blockquote, logo etc, _combined with font, textsize and boldness_.

</comment><comment><USER10> I can recommend these two:

* <http://colorlovers.com>

* <http://colorschemedesigner.com>

</comment><comment><USER11> I'm not totally happy with any I've tried yet (they all have some glaring UI annoyances) but <http://colorschemedesigner.com/> has been pretty useful for me.

</comment><comment><USER12> someone recently posted this on HN, colorapi.com... generated color palettes from flickr image search.

also uses node.js :-)

</comment><comment><USER13> All you need is some basic color theory and adobe kuler <http://kuler.adobe.com/> which is a helpful tool, integrated into CS applications. This applies to all color related work. Kuler is the best option if you're using CS.

On color theory you can check out: [http://www.thegnomonworkshop.com/store/product/472/Color- The...](http://www.thegnomonworkshop.com/store/product/472/Color- Theory%3A-The-Mechanics-of-Color)

There was also an fxphd course, but I don't think it's available anymore.</comment>


Sex at Dawn -- evolutionary biology misused - <AUTHOR> http://jseliger.com/2010/07/21/sex-at-dawn-christopher-ryan-and-cacilda-jetha/ <comment><USER2> I found myself very irritated by quotes like this:

"The book argues that humans are not "naturally" monogamous. That might be true. But Sex at Dawn doesn't prove it."

"males evolved a strong appetite for sexual novelty and a robust aversion to the overly familiar." But they don't have any evidence for that"

If they don't, I think it is safe to assume it is because the authors assume their readers have a bit of life experience. And not because there aren't volumes of biological and historical evidence to support these claims if they wanted to include it.

I just don't see these two points as even being controversial enough to be up for debate. You don't need that much romantic history to know that men have a strong appetite for sexual novelty, and that highly desirable men are not monogamous, that women know this ahead of time and are willingly complicit in their non-monogamy.

Ok, I guess for the type of guy who would write these critiques, some things need to be spelled out on paper. You can just step outside in the world though and not need it to be.

<comment><USER3> Even the "obvious" isn't necessarily true. How much is cultural, and how much is _biology_? If you can't show something's _not_ cultural, have you shown anything aside from supporting/fighting prejudice with prejudice?

<comment><AUTHOR> The grandparent is really similar to a post someone just left on my review. In response, I wrote:

It's not obvious at all that this is more true than men than of women, or if so, how. That's why people making these kinds of claims need evidence—otherwise you're merely telling stories and repeating stereotypes. For another example of this general principle, see Mark Liberman's [http://www.boston.com/news/globe/ideas/articles/2006/09/24/s...](http://www.boston.com/news/globe/ideas/articles/2006/09/24/sex_on_the_brain/) Women use 20,000 words a day, men only 7,000 - or so says a new bestseller. Fact-checking ``The Female Brain."</a>.

<comment><USER3> Oh, ouch. The author for that number-pair also wrote "Why Men Don't Have a Clue and Women Always Need More Shoes", "Why Men Lie and Women Cry", and "Why Men Can Only Do One Thing at a Time and Women Never Stop Talking." (from your link)

Scientific-credibility nose-dive right there.

</comment></comment></comment></comment><comment><USER4> _To really catalog everything that's wrong with Sex at Dawn, I'd have to go back through at least five or six books (and probably more) and at least a dozen papers. It would take me all day._

I feel the same way about _The God Delusion_ , quiet enjoy the book and the arguments it puts forward but to actually take an unbiased look at all the arguments from many sources that are being put forward and notable refutations of these would take a seriously long time.

<comment><USER5> Dawkins isn't a "real" expert on e.g. theology.

My favorite anti-religious author is Ingemar Hedenius, but that is afaik only in Swedish.

</comment></comment><comment><USER6> This refutation of a book I've never heard of is not particularly interesting to me.

<comment><USER7> I could go down the front page making comments like that, I suppose? "This collaborative filtering plugin for a framework I don't use is not particularly interesting to me", or perhaps "This GUI elements library for an Adobe tool I don't use is not particularly interesting to me". People have heard of different things!

<comment><USER4> I find it worse when something random about a technology you would never read apart from it being an article on HN is interesting to me. I've spent a whole heap of time reading stuff about Haskell(for one example) that is posted here but I haven't used it and don't know if I'll ever get around to learning it.</comment></comment></comment>


The flattening of design - <AUTHOR> http://bits.blogs.nytimes.com/2013/04/23/the-flattening-of-design/

<comment><USER2> > Steven Heller, co-chairman of the M.F.A. Design Department at the School of > Visual Arts and author of more than 150 books on design culture, said that > part of the push toward flat design was to try to escape the overabundance > of design that looks digital, where things "have started to look cliché."

The irony. I would disagree; it picked up because people tried to make the case that it was more user-friendly under the guise that simplicity/cleanliness = understandability at the expense of affordance. _Some_ interfaces can get away with this, others cannot. I'd say that most cannot, simply because most designers are designing out of aesthetics, not fundamental usability.

Commenter Trevor has it right:

> It's amazing the justifications being used for a new design trend.

> No, a flat design is not required because of mobile. In fact, with the > advancements of CSS and HTML, which mobile phones are driving, designers can > do non-flat designs easier than they ever could. If there ever was a time > when flat design was a required because of technological constraints, it was > 15 years ago when all we had was CSS1.

> Nor is flat design "less distracting". A musical note tells no more inherent > of a story than a shiny sparkling CD. Icons exist within the cultural > context. Now that CDs are becoming obsolete, a musical note might make more > sense to indicate music. But whether that icon is rendered flat or not has > no bearing on it's usability.

> The flat design trend is just that, a trend. Designers get bored of using > the same style. So a new style emerges. Technologies and culture may provide > minor tweaks and constraints, but most of it is driven by the fact that the > current design has been around for a couple years now and designers want to > try something new.

> Let's accept the new trend as a trend and stop trying to justify why it is > "better" in some absolute sense.</comment>


Ask PG: HN Ngram Viewer? - <AUTHOR>

Since writing a scraper to discover and parse all historical comments/submissions on HN would obviously get me in trouble, would the HN admins be willing to provide a dump of the historical text/metadata from all comments and [local] submissions so I can make a HN Ngram Viewer for the HN public?
I work in an academic lab where I'm one of the developers of a system that generates ngram viewers from large corpuses of text, which we call "Bookworms". Here are a few Bookworms we've created:
arXiv scientific publications: http://bookworm.culturomics.org/arxiv/
US Congress legislation: http://bookworm.culturomics.org/congress/
Open Library books: http://bookworm.culturomics.org/OL/
Chronicling America historical newspapers: http://bookworm.culturomics.org/ChronAm/
Social Science Research Network research paper abstracts: http://bookworm.culturomics.org/ssrn/
We have more Bookworms in the pipeline, including historical legislation in the UK and a massive corpus of texts (70MM+ documents) from the National Library of Australia (Trove) spanning multiple centuries. A new GUI for all our Bookworms will also be rolling out shortly. (Preview: http://bookworm.culturomics.org/new_gui_teaser.png).
In my opinion, HN be an awesome candidate for an ngram viewer because there are so many subsets of topics that come/go/stay here, such as the frequency of discussions about web technologies, programming languages, companies/services, the NSA, etc.
If this is something the HN admins would be interested in, I'd be happy to put it together. If a privacy agreement is desired before passing off any bulk data, that is not a problem as we've gone this route before, albeit only for private ngram viewers we've created for companies, like the NYT, to use internally. <comment><USER2> The Octopart team has done a great job with HNSearch, and we really appreciate the huge favor they've done us by providing it. That said, due to limitations on our end around how they integrate with us, they're not able to offer real- time updates or full fidelity ranking snapshots.

I'm working on a more comprehensive first-party API for HN, and plan to implement the following, in this order:

      1) Near-real-time profiles, comments, and stories as JSON.
      2) Real-time streaming of profile and item changes.
      3) Near-real-time ranking of comments and stories.
      4) Real-time streaming of ranking changes.
      5) History of ranking changes.

Sadly, I can't commit to any firm timeline for future progress right now, but know that I'm working on it :)

\-- Edit: Remove link to broken data file. Fixing it up tomorrow.

<comment><AUTHOR> Thanks for the info and I do look forward to the new API!

However my question still remains with regards to historic posts/comments. The historic aspect is really the import element here. Generally speaking, building an ngram viewer requires a collection of texts over time, with each text having some kind of metadata that is categorical, boolean, datetime, or numeric. Categorical data can always be made of numeric data by creating bins -- i.e. posts by people with karma or a ranking of 1-50, 51-150, 151-300, etc at the time the comment/post was created. Datetimes can also be made into useful categorical variables for an ngram viewer such as day of the week (to spot weekly seasonality trends) or day of the year (annual seasonality trends).

If I was allowed, I would be willing to write a scraper/crawler to discover as many historic threads (since: threads -> comments) as possible using HNSearch, but this could take a long time depending on rate limits and/or be subject to unknown biases within my discovery method. I'm sure you can understand why a "top-down" approach like a database dump would make for a much higher quality corpus than attempting the "bottom-up" approach of a crawler. I have no idea if a "database dump of everything" is even feasible as I don't know anything about the HN's backend infrastructure. However, if it is feasible, then I'm certain that I can work with whatever would be available. Adding structure to unstructured data is my bread and butter.

I really think this would be a very cool tool that a lot of people would enjoy, so I'm willing to do what is needed on my end to help make it work. After all, I'd be on the clock while working on this rather than just a hobby project, so the incentives are definitely aligned on my end.

If you want to discuss anything in private, I can be reached at the following _reversed_ address: moc{dot}liamg{at}yalkcin{dot}wehttam

</comment></comment><comment><USER3> You could look into [https://www.hnsearch.com/api](https://www.hnsearch.com/api) . They provide the search bar functionality on this site.</comment>


Paul Graham Proposes A 'Handshake Deal Protocol,' Puts It Into Practice At YC - <AUTHOR> http://techcrunch.com/2013/03/14/paul-graham-handshake-deal-protocol/

<comment><USER2> <https://news.ycombinator.com/item?id=5375929></comment>


The Intel Core I9-9990XE: All 14 Cores at 5.0 GHz - <AUTHOR> <comment><USER2> A link to an actual article:

[https://www.anandtech.com/show/14980/the-intel- core-i9-9990x...](https://www.anandtech.com/show/14980/the-intel- core-i9-9990xe-review)</comment>


MySQL Bug #8523 - A bug we all would love to see fixed - sid-webadmin http://sid-webadmin.blogspot.com/2011/10/mysql-bug-8523-bug-that-many-would-love.html

<comment><AUTHOR> I don't know if I'd use that particular example to make my case. Order ids might give the kind of behavior you want, but time is fickle and ornery. All it takes is one luser with root running ntpdate to give you all sorts of interesting Groundhog Day problems.</comment>


About the Critical Security Issue in the Aviator Browser - <AUTHOR> https://github.com/WhiteHatSecurity/Aviator/issues/24#issuecomment-69456316

<comment><USER2> Backstory:

You probably don't care about this much if you don't pay attention the market for security services.

WhiteHat is a well-known VC-funded enterprise appsec company. They sell a SAAS web security scanner. Their founder and now CEO is Jeremiah Grossman, a pretty well-known web security guy.

A year or so ago? WhiteHat released "Aviator", a "secure browser". Aviator, as it turns out, is rebranded Chromium. Chromium is an open-source project, of course. Aviator is (at the time) not.

Fast forward a year. The Aviator browser product has fizzled, like most new products do. WhiteHat executes the "open source the project and make like that's an outcome we are happy about" play, using language which --- corroborated a bit by this post --- signals that the project has been abandoned.

Several hours later, Google star vulnerability researcher Tavis Ormandy tweets(!) an embarrassing drive-by RCE in Aviator.

Hours after that, Justin Schuh from the Chromium security team posts what can best be described as thermonuclear schadenfreude† to his Google+ feed (if you're not a vulnerability researcher, you should know that there are major points for style awarded to a meaningful critique of the _branding code_ in a target).

In response to all this, Robert Hanson (a very well-known web security guy employed by WhiteHat) writes what I would call an ill-advised and transparently prickly response on WhiteHat's blog††, suggesting that WhiteHat has been victimized by their underdog status.

I like some of the people involved with WhiteHat, Hanson among them, but I think Aviator was a very bad idea and I am --- if I am honest, and it's a bit painful to admit this --- kind of happy it failed in the market. For full disclosure purposes I also have to admit thinking very highly of Justin Schuh and being basically in cortisol-redlining mortal terror of Tavis Ormandy.

† _[https://plus.google.com/u/0/+JustinSchuh/posts/69qw9wZVH8z](https://plus.google.com/u/0/+JustinSchuh/posts/69qw9wZVH8z) _

†† _[https://blog.whitehatsec.com/aviator-open-source- day-1/](https://blog.whitehatsec.com/aviator-open-source-day-1/) _

<comment><AUTHOR> > Several hours later, Google star vulnerability researcher Tavis Ormandy > tweets(!) an embarrassing drive-by RCE in Aviator.

This bug was reported many months ago (though at that point it wasn't clear that it was actually a RCE). see:

> In early 2014, the "Error138" is reported and disclosed first time.

</comment></comment><comment><USER3> Is there anything Google (or the Chromium team) could do to simplify an out- of-the-box "maximum privacy" mode based on the docs linked from the post?

[https://www.google.com/chrome/browser/privacy/whitepaper.htm...](https://www.google.com/chrome/browser/privacy/whitepaper.html)

[https://noncombatant.org/2014/03/11/privacy-and-security- set...](https://noncombatant.org/2014/03/11/privacy-and-security-settings-in- chrome/)</comment>


Japanese Projector Displays Smooth Video on a Wriggling, Dancing Surface - <AUTHOR> http://www.popsci.com/new-protector-dynamic-maps-moving-images-onto-moving-objects <comment><USER2> This looks too good to be true.

\- My first question is if this is machine learbed or algorithm. I doubt its algorithm as it needs "object detection" then needs to know the cloths "resting state".

\- Does it detect changes based on shadows or are the multiple cameras? If shadows, this may be gameable/corruptable. If multiple cameras, how many?

\- I saw xy rotation, xy skewing and multiple objects. Folding in the xz plane and could detect a "front and back" to a t-shirt when he did the jump spin. I didnt see how it adapted to xz rotation or a combination. I also dont understand how it knows there was a "back" and a "front" without mapping the object in internal 3d spacewhich may or may not work for some arbitrary shape. I did not see adaption to depth though in great degreee

If I understand correctly

\- machine learned arbitrary 3d blobs into 3d space. Through multiple cameras or lighting or blth

\- machine learn changes to the blob as not "new blobs" but changes to existing ones

\- create image to match that of location and polygon of the fabric. Merge certain pixels when condensing. Duplicating when expanding. Employ anti aliasing techniques

\- send image to projector

Im not sure the application but it is certain unique, fun and interesting technology.

</comment><comment><USER3> That is pretty awesome, it reminds me of the wii-remote mapping for displays that Johnny Lee did ([https://www.youtube.com/watch?v=XgrGjJUBF_I](https://www.youtube.com/watch?v=XgrGjJUBF_I)) back in 2007. This looks like a commercialization of that work 10 years later.</comment>