RethinkDB 1.8: date support, querying nested objects, 8x disk usage improvements - <AUTHOR> http://rethinkdb.com/blog/1.8-release/

<comment><USER2> Kudos to the team; some great releases this summer! (10x insert performance, regex queries, and now date/time and better disk space--all in ~90 days!)

I had never looked in to how rdb used disk space and off the cuff attributed its high usage to something similar to Mongo and allocating blocks ahead of usage.

This was something that went in to the negative column for me when I evaluated using rdb vs Postgres for a JSON dump. 12k somewhat light (but still larger than 250b) records ate up over 70MB of disk space in just over a couple days and I've not looked back. Time to give it another spin!

<comment><USER3> This is good to hear and will make me try it too. High disk space utilization was something I experienced with mongodb back in the day and that caused me to lose interest (not sure if they're better about it these days). There's probably a trade-off between speed and having blocks allocated but it starts becoming a problem on smaller vps environments.

<comment><USER4> Mongo got a lot better about reusing disk space in v2.2, if you are deleting from a collection. Still no compression or document field name optimizations though.

<comment><USER5> Couldn't resist: try tokumx if you want "mongodb with compression". There isn't a speed/space usage tradeoff. Our latest blog post is about long field names: [http://www.tokutek.com/2013/08/tokumx-tip-create-any- field-n...](http://www.tokutek.com/2013/08/tokumx-tip-create-any-field-name- you-want/)

<comment><USER3> Interesting product. They also have a mariadb engine (different use cases).

</comment></comment></comment></comment></comment><comment><USER6> Look, I don't have enough experience to be sure on this kind of thing, but it seems like RethinkDB is being developed at a blistering pace. Docker is another one like that. Both impress me, both on their vision and rate of improvement. It makes me happy to know that there are successful projects like this out there.

<comment><USER7> Yeah, same with the ember.js guys. Churning out releases and RCs under such restricted timelines.

</comment></comment><comment><USER8> Being a heavy PostgreSQL user I really would appreciate a "How RethinkDB compares to PostgreSQL" FAQ entry.

<comment><AUTHOR> That's a great idea, we'll be adding more comparisons in the future-- thanks for the suggestion!

<comment> old-gregg Mike, I would love to see that too.

Can you please include the entry on connection management model. PSQL is known for taking process-per-connection + shared memory approach, knowing the canonical and "mothership approved" approach to handle Rethink connections would be awesome.

Thanks!

<comment><USER9> Thanks, that in the pipeline. FYI, it's quite similar in Rethink -- a thread/process per connection is the best way to access the db.

</comment></comment></comment></comment><comment><USER10> Can someone who ditched MongoDB for RethinkDB share his/her experiences?

<comment><USER11> I did a small project so maybe someone that did something larger can weigh in, but I worked with RethinkDB back in the 1.4 era, so a bit has changed, but the biggest difference IMO is that you have to be prepared to fall back to the RQL syntax to do queries more complex than simple get etc. vs. in Mongo everything was in JSON, and when I was using Mogno you couldn't join tables at all, don't know if that's changed and here you can. Otherwise it is pretty similar, since I didn't do any clustering.

<comment><USER9> Here's a good explanation for why you _want_ to fall back to ReQL rather than write queries in JSON directly: [http://rethinkdb.com/docs/introduction-to- reql/](http://rethinkdb.com/docs/introduction-to-reql/)

<comment><USER12> ReQL for the win. It's so expressive, it's composable, I love it.

I feel more confident that the m will be easy to scale if/when my app needs it.

My code that interacts with the API feels cleaner.

</comment></comment></comment></comment><comment><USER13> I've been watching the great progress since 1.4, but I continue to be disappointed by the overall performance, makes me wonder if I'm not groking something. Here's a gist of a simple ruby script to insert 1000 trivial docs into rethink:

[https://gist.github.com/wiremine/6245910](https://gist.github.com/wiremine/6245910)

1,000 inserts are taking around 20 seconds. Hardware is a 1.8 Core i5 Mac Air with 4GB Ram and a 128 SSD.

Is this sort of performance expected at this point?

<comment><USER9> This sort of thing isn't expected. Please check the following troubleshooting entry for slow inserts: [http://rethinkdb.com/docs/troubleshooting/#my-insert- queries...](http://rethinkdb.com/docs/troubleshooting/#my-insert-queries-are- slow.-how-can-i-speed-t)

<comment><USER13> Thanks for the info! Makes sense. Is this performance you're expecting in the long-term, or will this be tuned at some point?

<comment><USER9> Performance tuning never stops. We have one more release coming up that will squash a lion's share of low-hanging performance fruit. After that, we'll be tuning continuously, but it will be slow, incremental improvement.

</comment></comment></comment></comment><comment><USER11> Well done guys,I'm especially happy for the Date Object! That was a easy but annoying thing to have to work-around.

</comment><comment><USER14> Date/time was a hard one but worth the effort. Looking forward to the next updates!

</comment><comment><USER15> I keep thinking that I should try RethinkDB, but most of my projects involve geodata / geospatial indexing. For this use-case PostGIS and MongoDB have benefits which I can't find elsewhere.

<comment><USER9> We have a github issue open for it FYI (can't find it now because github issue search seems to be down), but unfortunately it won't get done before 2.0.

<comment><USER16> maybe:

[https://github.com/rethinkdb/rethinkdb/issues/1158](https://github.com/rethinkdb/rethinkdb/issues/1158) ?

</comment></comment></comment><comment><USER17> Great Job and this is cool to see such progress. Now the long process of implementing all the new verbs in the drivers begins. I am really looking forwards to when RQL is marked as stable.

<comment><USER9> Actually, ReQL is basically stable as of 1.8. There may be very minor changes before 2.0, but there are no big changes planned any more.

<comment><USER17> So no new verbs going into the Query Language ? I have been waiting to do much more work around my Java driver until the pace of change slows down a bit.

<comment><USER9> Yep, that's right. We might make very minor tweaks to existing commands, but there are no new commands planned as of now.

</comment></comment></comment></comment><comment><USER18> Lack of native Date support was holding me back previously. Now i don't see any reason for not using rethinkdb. My next project will be using Rethinkdb! It will be nice if you can fix "groupby field names" issue [https://github.com/rethinkdb/rethinkdb/issues/386](https://github.com/rethinkdb/rethinkdb/issues/386) in your 1.9 release

</comment><comment><USER19> Keep up the great work. It's a very interesting project, one I'll continue to keep an eye on.

One thing I wish would get added are more aggregators. This would add a lot of valuable use cases, in my opinion. At least one of my mini projects recently would have been greatly simplified had I had the ability to compute max's and min's in the same way as avg's.

<comment><USER20> You can currently compute max/min through map/reduce. We will still add a command to compute it since it's a common operation.

Thanks for the feedback : )

</comment></comment><comment><USER21> Are 2D geospatial indexes/queries planned for 2.0 or do they come later?

<comment><USER20> It probably won't get done before 2.0, but I wouldn't be surprised if it will be one of the first features once we get production ready.

</comment></comment><comment><USER22> Another great update. Keep it going!

</comment><comment><USER23> They fixed my bug - yay.

</comment><comment><USER24> Nice. Can you guys please put a wiki page now?

<comment><AUTHOR> Do you mean a Wikipedia article? If you mean a wiki for users, we use the Github wiki ([https://github.com/rethinkdb/rethinkdb/wiki](https://github.com/rethinkdb/rethinkdb/wiki)) to track things like community contributions.

<comment><USER24> Yeah, a wikipedia article. That is where I go to first, when I hear about a new technology. I know I am not the only one.

</comment></comment></comment><comment><USER25> What.. version 1.8 and now there is Date support? Shouldn't this kind of stuff be aournd at version 0.01 when we are talking about data stores? You know, the only non-easily swappable piece of our tech stack?

<comment><USER26> It's really comments like this that make me scared to death of posting a project to HN these days (so I don't). Seems to be so common now.

It's getting quite common for me to just skip reading the user comments after reading the article. This was never the case before; the comments were -almost always- better than the article.

As a sidenote, I cannot even recall when I actually read the user comments on Slashdot. On the occasion where something pops up in the RSS feed; read TFA and move on to happier things that actually make me feel good. :)

I guess I'm not saying anything new. I really wish I had a solution other than asking -you- to please imagine sitting at the receiving end: You get excited to see your project on HN, you click through to comments, and the first thing that was said was ... that.

PS. You can call me a chicken for being "afraid" of these things.

<comment><USER9> Sometimes people get angry and irritated at stuff. That's ok. The tone is uncalled for, but irritated/angry comments often have legitimate gripes. Rethink _should_ have had dates earlier, we just couldn't get it done.

I agree that people should try and be more kind with their tone, but I wanted to try and encourage you not to be afraid of criticism. People have good memory for good work and no memory for bad work. So if you post an atrocious project here, the absolute worst thing that might happen is that some people will write some negative comments and forget about you ten minutes later. It seems like a worst-case scenario most people can live with :)</comment></comment></comment>


The Man Who Introduced the World to Flying Saucers - <AUTHOR> http://www.theatlantic.com/technology/archive/2014/06/the-man-who-introduced-the-world-to-flying-saucers/372732/

<comment><USER2> tl;dr: Pilot in 1947 sees unidentified objects that fly in a saucer-like fashion, i.e., flew "like a saucer if you skip it across the water", and reporters are chastised for inventing the term "flying saucer".

But if look at the pilot's actual drawing from the article, here:

[http://cdn.theatlantic.com/newsroom/img/posts/2014/06/Arnold...](http://cdn.theatlantic.com/newsroom/img/posts/2014/06/Arnold_AAF_drawing/32229c832.jpg)

What common household object would be a good metaphor for what he saw?

      a donut
      a pencil
      a loaf of bread
      a teapot
      a balloon
      a cigar
      or, a saucer

Looking around my own kitchen and garage, I can't find a better one-word description than saucer. (Maybe Frisbee but did that even exist in 1947?)

The reporter(s) saw the saucer-shaped drawing, and the pilot did talk about saucer-like flight, hence "flying saucer".

It's crazy to call this "one of the most significant reporter misquotes in history".

<comment><USER3> If you read the paragraph below on the paper, he said "they did not appear to whirl or spin." That in combination with the saucer term strongly implied to me that he meant they were disc shaped.

Incidentally, if you go through UFO casebooks, you can find reports of UFOs that look like every item on your list :-)

</comment></comment><comment><USER4> See also: [http://www.softcom.net/users/falconkam/manwho.html](http://www.softcom.net/users/falconkam/manwho.html)</comment>


Show HN: Online Resume Builder for Developers - <AUTHOR> https://fullstackjob.com/developer/resumes/home <comment><USER2> Cool service. Would love to see some more templates

<comment><AUTHOR> Working on it</comment></comment>


Math Bite: Irrationality of √m (1999) - <AUTHOR> http://fermatslibrary.com/s/irrationality-of-square-root-of-m <comment><USER2> That proof is really great! It's always nice to see alternatives to well-known proofs. This demonstrates that you can always tackle problems from different angles.

However, I slightly disagree with the introduction of the proof:

 _| The really interesting thing about this proof is that it doesn 't use divisibility, just mathematical induction in its "Z is well-ordered" form._

That's quite a bold statement. It would mean that this proof should generalize to other well-ordered sets that do not provide any notion of divisibility.

However, I don't see that. (Does anyone else see how this proof could work on such a generalized setting?)

Instead, it seems that this proof introduces the concept of "divisibility" through the backdoor, by calculating with fractions and making use of the basic fraction laws, which are based on divisibility. In particular, the equation

        1 / (sqrt(m) - n) = (sqrt(m) + n) / (m - n^2)

makes use of the fact that you can extend and cancel fractions. Moreover, these fractions are not even fractions in Z, but in R, or at least in Z[sqrt(m)]. So there's still a lot of specialized structure involved in this proof.

Nevertheless, great proof!

<comment><USER3> By "doesn't use divisibility" I assume the author means that the point of contradiction doesn't rest on the "divisibility properties" of the integer, not that division is never used. In particular, this proof doesn't rely on the fundamental theorem of arithmetic.

<comment><USER2> _> I assume the author means that the point of contradiction doesn't rest on the "divisibility properties" of the integer_

I see what the author meant by that. I just think it was stated in a slightly exaggerated way. The "divisibility properties" of the integers are still used. That part has just has been moved to another corner of the proof, by transforming fractional equations.

One of the comments in the article is quite interesting here:

 _| Theodor Estermann proved the irrationality of 2√ without relying on the prime factorization of m._

I believe that this statement is more correct. The "traditional" proof uses not just divisibility, but prime factorization, which is quite a strong property. And that is something the alternative proof doesn't make use of.

Maybe the introduction should have been stated that way.

<comment><USER4> Indeed - I think the claim that alpha can be expressed as p/q with some 'lowest q' seems to rest on divisibility properties.

<comment><USER3> No, it follows directly from the fact that the positive integers are well- ordered, i.e., any set of positive integers has a least element.

And in case one is tempted to think that well-ordering and divisibility are somehow equivalent, consider Presburger arithmetic[1]. It's not even possible to _define_ a general notion of divisibility or primality in that context, but I'm almost positive the well-ordering principle holds (it's equivalent to the axiom schema of induction).

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

</comment></comment></comment></comment></comment><comment><USER5> Discovering wonderful sites like this is why I read Hacker News!

<comment><USER6> Yes, such wonderful sites that must put annoying bouncing "Click here to see more" and "Join our newsletter" things around everything.

By the way, this particular note appears to be taken from "Biscuits of Number Theory". Compare with this scan from Google Books:

[https://books.google.si/books?id=_g5TvMCJQB4C&pg=PA109&lpg=P...](https://books.google.si/books?id=_g5TvMCJQB4C&pg=PA109&lpg=PA109&dq=harley+flanders+irrationality&source=bl&ots=ShlKfjMAQg&sig=jBwurdoANm2e5cCgo- jn0Fa0DGg&hl=sl&sa=X&ved=0ahUKEwiq2Nys5PHJAhXFFSwKHWr2C-YQ6AEIJjAA#v=onepage&q=harley%20flanders%20irrationality&f=false)

</comment></comment><comment><USER7> > We may assume that q is _as small as possible_ (Estermann's key idea)

Making the denominator as small as possible uses divisibility.

<comment><USER3> No, it follows directly from the fact that the positive integers are well- ordered, i.e., any set of positive integers has a least element.

And in case one is tempted to think that well-ordering and divisibility are somehow equivalent, consider Presburger arithmetic[1]. It's not even possible to define a general notion of divisibility or primality in that context, but I'm almost positive the well-ordering principle holds (it's equivalent to the axiom schema of induction).

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

<comment><USER7> alpha = p/q where p and q are positive integers.

It's finding the set of all possible q that uses divisibility, not finding the least member of that set.

</comment></comment></comment><comment><USER8> I don't understand. The end of the proof says _r /p_ is a fraction, presumably because _r_ must be an integer. But why must _r_ be an integer?

There seems to be an implicit assumption that _m_ is an integer, but the explicit assumptions only give the much weaker statement that " _m_ is not a perfect square".

<comment><USER2> _> why must r be an integer?_

 _r_ is a shorthand for _(m-n^2)q-2np_ , which is an integer because _m,n,p,q_ are all integers.

 _> There seems to be an implicit assumption that m is an integer, but the explicit assumptions only give the much weaker statement that "m is not a perfect square"._

Yes, it would have been more explicit to say "m is an integer that is not a perfect square."

On the other hand, this is pretty clear from the context. This is like looking at a computer program and saying "foo has no side-effect" without stating that "foo is a function".

</comment></comment><comment><USER9> I'm trying to work this out in my head, but I believe that this holds if m is a rational such that its numerator and denominator are not both perfect squares (e.g., √(2/3) is irrational but √(4/9) is rational). Am I wrong?

<comment><USER10> When this proof has been presented to me in the past, I believe we assume that m is a positive integer. This is mentioned in one of the comments, but I agree that it should be more clear in statement of the theorem.</comment></comment>


Unexecute - <AUTHOR> http://emacshorrors.com/posts/unexecute.html <comment><USER2> Saving initialized data structures into an executable was the traditional way to build large Lisp systems, and was a built-in capability of PDP-10 operating systems in the 1970's. When I was a student at Utah porting PSL (Portable Standard Lisp) to Vax Unix around 1981 we noticed that there was no such capability available. For a while our workaround was to dump a core file by sending SIGCORE (^\\) to the process, then start (resume) our system in a debugger. Spencer Thomas, who was also a student at Utah at the time, wrote the function he named "unexec()" to give us a more sensible path to the same functionality. exec() takes a file and turns it into a process, unexec() takes a process and turns it into a file. This code served our needs very nicely at the time, allowing us to load compiled Lisp code into a bare interpreter and save a complete system. Later, this code was incorporated into GNU Emacs for essentially the same purpose.

At the time, building these systems took several minutes, so it really wasn't feasible to expect users to just load everything they needed on startup. It is highly non-portable, of course, and has caused headaches for Lisp builders ever since. Amortizing startup time over a larger amount of work is still the only portable solution I know, along with keeping initialized application state in databases rather than in-memory data structures.

<comment><USER3> And really, this is just (a hackish implementation of) an image-based runtime, ala Smalltalk. All ELISP is missing is a big list of all the globals it needs to care about saving and restoring (so it can _not_ save all the random other memory-garbage it happens to still be holding onto), a serialize()/deserialize() pair of functions to run those through that result in a standard on-disk representation, and a boot strategy involving deserializing those structs into memory.

If you want to be fancy, you can make the on-disk VM-image format a database (SQLite, LevelDB, whatever) so as to avoid writing it all out every time. Then it becomes cheap enough to write out a differential state that you can make the runtime do it automatically at intervals, after certain operations, manually with a sync(1)-equivalent call, etc.

<comment><USER4> I had a similar realisation recently. I had to learn Smalltalk recently (for my new job, believe it or not!), and Smalltalk really does strike me as image- based programming find right. My previous exposure was Common Lisp, but the image and the source code getting desynchronized was a recurring pain. After deleting a function, but missing some uses for example, the code might work fine until you reloaded the source into a clean image. In Smalltalk, that doesn't happen, because the image _is_ the code.

<comment><USER5> That's because Lisp isn't image based at all. It merely has a live environment, much to the frustration of anybody who wants to dump the running state of their lisp system to disk.

<comment><USER4> Yeah, that's true. Nonetheless, Smalltalk really feels like an improved version of working with Lisp.

<comment><USER5> That's true. Although I still say you'll have my sexprs when you pry them from my cold, dead hands :).

Although, I wonder if I could hack together a lisp on top of the cog vm. That would be cool.

Anyways, what kind of awesome job do you have where you get to write st for a living? :)

<comment><USER6> The Lisp Machine keyboard had dedicated open and close parenthesis keys, so you could hold a hefty bag of nitrous oxide in your other hand while you typed s-expressions.

<comment><USER5> Wait, what are you doing with that nitrous oxoide? Should I start worrying?

<comment><USER6> Reflecting on the S-expressions I just typed!

<comment><USER5> Well, when you're done with the nitrous oxide, just toss whatever you wrote into the obfuscated code contest.

<comment><USER6> There's a reason the paren keys had really fast auto-repeat!

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I ported unexecute to GNU Make about ten years ago.

I was working in a project in which a "make" would load a huge tree full of rules scattered in sub-makefiles, and take a full 30 seconds to evaluate before kicking off the first incremental build, really putting a damper on the edit-compile-test incremental cycle.

I got sick of this and so took the unexecute code from GNU Emacs into GNU Make, and added an option to do "make --dump" to dump an image after loading the rules. The restarted make image would kick off a build recipe almost instantly.

<comment><USER8> FAKE [1] the F# build tool uses a similar technique on the .net vm.

[1] [http://fsharp.github.io/FAKE/](http://fsharp.github.io/FAKE/)

<comment><USER9> Do you happen to have a link to the code in FAKE that implements this for .NET?

</comment></comment></comment><comment><USER10> It's pretty sad to see someone trashing a process checkpoint and restart facility because they've never seen one before. As other commenters have added, checkpoint-and-restart is a pretty useful facility for a variety of reasons; it's a shame that Unix doesn't support it better.

I imagine if the author of this article looked at a Unix kernel they would start arguing that we should remove context switches because they don't understand them.

<comment><USER11> I have wondered before if emacs could use CRIU on Linux to do this ( [https://criu.org/Main_Page](https://criu.org/Main_Page) ).

<comment><USER12> I've looked into criu. It's usable, but not as good as unexec and not yet properly supported from packagers. Even if only the build step needs it. And it doesn't produce a single binary, which is ok I guess for emacs.

Easier IMHO is to keep maintaining a proper malloc implementation. glibc were not able to update to ptmalloc3 anyway, and now they want to destroy ptmalloc2 even more. I wouldn't trust them.

</comment></comment></comment><comment><USER13> Great idea, but please show some respect. Emacs was first designed in 1976, when startup times were a very big deal.

"My .emacs is older... than most engineers..."

<comment><USER14> I fucking love the .emacs community.

To keep pushing a project from the 70's and keep it current is quite a feat.

Rebuilding from scratch is its own challenge, but to keep maintaing something at this scale and have such quotes be realized by hundreds of people is awe- inspiring.

<comment><USER15> Even if I rather use IDEs, Emacs was eventually my rescue in the 90's after failing to find anything on UNIX that could somehow resemble the Borland IDEs I enjoyed using.

This were the days when fvwm was considered new.

So even today, if my IDEs aren't around, I get to use my old friend Emacs.

<comment><USER5> My short-lived experience with Java and Android made me wary of IDEs. It taught me an important lesson: If a language's IDE can autogenerate 90% of the code in "hello world" for you, without knowing anything about the program you are about to write, than that language has far too much boilerplate.

I've never loved IDEs, because they increase the amount of time between having an idea and starting to code it, whereas with emacs, I can just start writing code.

The only IDE that is any good is the Smalltalk IDE, because it's not so much an IDE in the java sense as it is a realtime window into the soul of your application and environment. I mean, if you thought the modern LISP's realtime interaction was good...

But yeah, even then, I start to miss emacs. And I'm not even a serious emacs user. Which is to say, my config can probably fit on only a few pages, and I don't know the 100+ set of basic keyboard shortcuts yet.

<comment><USER15> I used Emacs for around 10 years, so I do know what it is capable of.

Regarding Lisp many in the FOSS camp that never experienced commercial Common Lisp IDEs should give a try, the REPL is only the tip of the iceberg. Maybe Racket is the closest one can get without paying.

Back in the mid-90's I couldn't even get Emacs to do what Borland got me with their tools or even what I later learned Xerox environments were capable of.

Energize C++ with their custom Emacs was probably the closest thing that one could get, if the company could afford it.

<comment><USER5> >Regarding Lisp many in the FOSS camp that never experienced commercial Common Lisp IDEs should give a try, the REPL is only the tip of the iceberg.

You've said. However, I am unsure as to whether any Lisp implementation outside of the lisp machine truly allowed for programming inside a live environment, such that there is no distinction between the live environment and the code on disk, where the image IS your environment.

Although being able to serialize your live environment to disk goes a long way. As a schemer, I'm still drooling over that particular feature.

<comment><USER16> 'the lisp machine' did not do that. There were different attempts. The MIT Lisp Machine used Lisp code in files, with some tool support.

The Xerox Lisp Machine (different hardware, different Lisp, different OS) used a different approach will full managed source code in the image, with managed files as kind of a way to persist sources.

<comment><USER5> Ah, apologies. And yes, I know there were multiple lispms.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> This isn't specific to Emacs; TeX is another notable example. Generally, this was a popular technique to dramatically improve start-up time on DEC PDP-10 and -20 machines. There was support from the OS as well as the language runtimes to make it work (for instance, saving an image of a running program that had fd's open would still have to know they weren't open by the time the saved image was restarted).

</comment><comment><USER12> I worked with this recently. This feature is not a nightmare, just because the author doesn't understand what a linker does, and the necessary separation of old and new dynamic memory.

It's rather a stable and very useful feature, which just recently got under attack, because glibc doesn't want to maintain malloc_get_state() / malloc_set_state() anymore. XEmacs has a portable dumper pdump, which is a hack compared to emacs unexec.

See [https://lwn.net/Articles/673724/](https://lwn.net/Articles/673724/) and esp. [https://lwn.net/Articles/673815/](https://lwn.net/Articles/673815/)

I recently re-added unexec support (i.e. native compilation) to perl5 in my cperl fork, but I haven't got it stable yet. Super trivial on solaris, but not so easy on elf, darwin and windows with its various compilers and the different way to treat their segments. But it's still the easiest way to do it, compared to pdump or a seperate compiler or criu, which is still not in the kernel and not in debian. They are saying it's unstable for 2 years, where it's stable for 1 year already.

self-dump via crui is besides unexec the most stable variant, but it needs either a service or root perms, first of all a package, and then it's not so attractive because it produces many files instead of just one binary.

If glibc removes malloc_get_state() even if darwin still has a similar API, I'll happily build with a static ptmalloc3, which is the better variant of the glibc ptmalloc2 anyway, and they never where able to update this. (much faster, but needs a bit more memory for housekeeping).

[https://github.com/perl11/cperl/issues/176](https://github.com/perl11/cperl/issues/176)

[https://github.com/perl11/cperl/commits/feature/gh176-unexec](https://github.com/perl11/cperl/commits/feature/gh176-unexec)

[https://criu.org/Main_Page](https://criu.org/Main_Page)

</comment><comment><USER18> It's not really valid to critique a compiler for being too system dependent.

Being used to this layer of abstraction being hidden in ld(1) doesn't mean that reimplementation of it is _wrong_ , just _perhaps_ an ill-advised maintenance burden.

An appeal to ASLR is a bit fallacious - that technology developed _for_ C's deficiencies, including ISAs tailored for it. There are likely better ways than using an untyped language that _begs_ attackers to forge object handles, and then kludging around that by making attackers guess.

</comment><comment><USER14> Apparently someone looked into the FreeBSD temacs commentary on the status report on the HN landing page today ...

[https://www.freebsd.org/news/status/report-2016-04-2016-06.h...](https://www.freebsd.org/news/status/report-2016-04-2016-06.html#ASLR- Interim-State)

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

I love Lisps, but to an amateur with rudimentary infosec coursework this does scream scary.

I LOVE THIS SITE. Hello early weekend entertainment reading, emacshorrors.com ...

<comment><USER19> All Lisp systems basically work in a manner similar to this, by dumping their 'boot image' to disk so it can be loaded and worked with, as an interactive image. Even systems like Smalltalk do similar things. A setup like this is not particularly unusual in concept, although some of the exact specifics may be different than e.g. SBCL.

ASLR is also a weak defense by itself as I noted in that FreeBSD thread. Any ASLR-enabled application is, essentially, about 1 infoleak away from being no different than a non-ASLR application. If you want to stop exploits, invest in real mitigation tech, not cheap defenses, and suddenly you won't need to worry about this so much. (Feel free to add randomization on top of working defenses as an extra layer -- just not by itself.)

People always hem and haw over how this makes ASLR not work for XYZ, and thus is a 'security nightmare'. But then, very strangely, we still find that it's very possible to write all kinds of exploits that bypass usable ASLR anyway in a variety of applications, with only a single infoleak, coupled with a vulnerability, at only marginally higher work effort. ASLR does not actually eliminate a class of vulnerabilities, it only adds an extra step in the process of exploitation. It can only truly prevent a narrow class of exploits, under very specific constraints.

So, it does seem like there's a real security nightmare happening, but it's almost certainly not because random XYZ thing lacked ASLR at compile time. It's because we invest our 'faith' in stop-gap, mostly futile defense mechanisms that are obsoleted without much extra effort, normally.

<comment><USER20> One big thing that ASLR mitigates is _non-interactive_ exploits. In a lot of applications, you can only send a payload once, and can't modify the payload after the fact (for example, vulnerabilities in image file processors). This is a common point of entry, and ASLR makes exploiting the underlying bugs much harder.

So I wouldn't call ASLR a weak defense - it closes off a lot of exploitation avenues by itself, and it can make exploiting interactive situations quite a bit harder. Finding that second infoleak bug isn't always quite so trivial.

<comment><USER21> I can tell from experience that the Linux implementation of ASLR however is completely worthless. Why? Because the executable you launch itself isn't randomized. The executable must be completely trivial for there to not be enough usable gadgets to defeat ASLR.

The Windows implementation is actually better in this regard since executables are randomized as well as libraries. However the randomization is the same for all processes and only changed on boot (because libraries on Windows usually uses relocations rather than PIC so the pages wouldn't be shareable if they were randomized per process), so an infoleak in one process can be used to attack another.

</comment></comment></comment></comment><comment><USER22> Why people are so afraid of self-modifying code? It enables some cool hacks, it is no more and no less secure than non-self-modifying code (as long as it is properly contained), and, well, this what makes computers and programming interesting rather then limited to boring table lookups and finite state machines.

<comment><USER23> > as long as it is properly contained

Why are people so afraid of C buffers? They enable great performance, and they are no more and no less secure than bounds-checked buffers (as long as the array indices are properly contained), and well, this is what makes computers and programming run fast rather than being forced into slow interpreted execution.

<comment><USER24> [https://en.wikipedia.org/wiki/Poe%27s_law](https://en.wikipedia.org/wiki/Poe%27s_law)

</comment></comment></comment><comment><USER25> Some previous discussion here: [https://news.ycombinator.com/item?id=11001796](https://news.ycombinator.com/item?id=11001796)

</comment><comment><USER26> Supposedly this sort of thing is also why Microsoft Word documents were so hard to parse at first - they were just a memory dump of the process and not text at all.

<comment><USER27> not true, actually

[https://msdn.microsoft.com/en- us/library/office/gg615596(v=o...](https://msdn.microsoft.com/en- us/library/office/gg615596\(v=office.14\).aspx)

<comment><USER28> From your link:

>Applies to: Office 2007 | Office 2010 | Open XML | Visual Studio Tools for Microsoft Office | Word | Word 2007 | Word 2010

I feel as though the gp comment is referring to far older versions, although without clarification, it's hard to be sure.

<comment><USER29> The older versions are also not literal dumps. They're binary "dumps" of the object tree in memory, yes, in a sense that you walk the tree and write it out. This is bad because your in-memory object tree then effectively defines the format, and it's not spec'd otherwise, which makes portability that much harder, especially for a closed-source application where you can't see code. But it's a very different problem.

FWIW, old Office documents were actually CFBF (Compound File Binary Format) files - think of it as FAT-in-a-file, allowing for multiple independent streams inside, with transactions. This was very commonly used on Windows in the OLE/COM era, because it was the underlying format for OLE Structured Storage. It's what allowed a Word document to embed another arbitrary document in an extensible way. The underlying data in the streams within CFBF was a loose object graph dump.

It all makes a lot of sense when you have your OLE glasses firmly on - it's basically a natural design that follows if your world consists of OLE objects and interactions between them. Look up IStorage and IStream to see what I mean.

The side effect of all this, however, is that the data inside an old Office file is not laid out in a logical way - streams consist of non-sequential interleaved blocks in a seemingly random order (depending on what was written when), some blocks may contain garbage data, and so on. So it's very difficult to reverse engineer, which is why it took so long back in the day, and the results were often unreliable.

<comment><USER21> > FWIW, old Office documents were actually CFBF (Compound File Binary Format) > files

That's actually the "new" binary formats. The usage of CFBF seems to have been introduced in Office 4.2 (at least Excel 5.0 is the first Excel version to use them, it's hard to find information about the old Word document file formats).

> The side effect of all this, however, is that the data inside an old Office > file is not laid out in a logical way - streams consist of non-sequential > interleaved blocks in a seemingly random order (depending on what was > written when), some blocks may contain garbage data, and so on. So it's very > difficult to reverse engineer, which is why it took so long back in the day, > and the results were often unreliable.

I don't believe the OLE compound file format has ever been much of an effort to reverse engineer. But the CFBF based Office documents are also basically just blobs of the older binary formats saved in a more structured way. The issues with Office documents have always been a question about their sheer complexity combined with their tight coupling to the internals of the Office programs. This still shines through in the OOXML formats which contains lots of stuff like "position something the way it was done in Word 5.0".

</comment></comment></comment></comment></comment><comment><USER30> If you think of emacs as a text editor which happens to have a LISP interpreter, then this is silly. But if you think of it as a LISP interpreter which happens to have a text editor, then it makes a lot more sense.

<comment><USER31> Like they say, "Emacs is a great operating system, lacking only a decent editor".

<comment><USER32> Thanks to evil-mode it now has a decent editor too.

</comment></comment></comment><comment><USER16> > But loading these files with it to "dump" the Emacs binary? The only time > I've heard of that was when reading a discussion about creating > "executables" with Common Lisp which is apparently achieved by serializing > the program's current state to disk.

The very first Lisp implementation did that already. It could dump and read memory images to/from tape. From that on, most Lisp implementations, and not just Common Lisp, are doing it. Some have extensive capabilities in this area (like tree-shaking or generating shared libraries which can be included in programs).

</comment><comment><USER33> [https://lwn.net/Articles/673724/](https://lwn.net/Articles/673724/)

<comment><USER34> Great follow up to this article - thanks!

</comment></comment><comment><USER35> > I hope at least Guile Emacs will try getting rid of it.

Guile Emacs is dead, isn't it? No activity in over a year: [http://git.hcoop.net/?p=bpt/emacs.git](http://git.hcoop.net/?p=bpt/emacs.git)

<comment><USER36> > Guile Emacs is dead, isn't it?

Emacs-guile is working today. That's a first after many many years of talk and proof-of-concept stage efforts.

I hope the development will pick up speed once guile 2.2 and emacs 25.1 are out. Both projects underwent some big changes/improvements lately.

One sign of live is that bpt's improvements to guile elisp were rebased on a recentish guile-master. This branch lives in the main repository now.

[http://git.savannah.gnu.org/cgit/guile.git/log/?h=wip- elisp](http://git.savannah.gnu.org/cgit/guile.git/log/?h=wip-elisp)

Also, I have seen some recent commits from emacs developers to guile. So the two projects are talking to each other.

Now, imho, the success if emacs-guile strongly depends on whether they manage to share the load across several developers. A more open development culture surely would help.

</comment></comment><comment><USER37> I've spent a bit of time looking at this code. It's not really that bad, though if might be a bit of a surprise to find it if you weren't expecting it.

The most serious problem with it I had is that there's something wrong with the makefile dependency checking. For certain types of change you have to do a full rebuild. But I'm pretty certain autotools is scarier than any memory dump, so I just put up with this.

</comment><comment><USER38> What's a good way for a program to trigger its own coredump? I had the issue on Linux and QNX embedded systems that I was unable to live-debug, and I wanted to be able to retrieve a coredump at various stages of execution. Unfortunately, all I found were CLI utilities that just called GDB, which wasn't available on my target.

I never felt confident to implement the feature directly :\

<comment><USER39> If you can change the code, you can simply fork() and then abort() on the child. If you attach that as an handler to SIGUSR1/2, you can have core dumps on demand.

<comment><USER38> Nice! Thanks!

</comment></comment></comment><comment><USER40> Admittedly I only glanced at this, but why can't the process image in question be dumped to a C string (or .S file if you really want) and then linked with the normal linker?

<comment><USER12> That's what's need to be done on windows. The other dumpers can do better by just dumping the segments and loader commands, by taking special care of base address adjustments and restoring the old malloc'd heap structures, not be mixed up with the new heap. A normal linker will still need to reload the shared libs, and then adjust the external symbols there.

Your solution needs several seconds, unexec just a few milliseconds.

<comment><USER40> Sorry, maybe I wasn't clear. I was suggesting doing all of this at build time, not runtime.

Oh wait does this all get serialized to disk every time you exit emacs? Is that what I'm missing? If so, why not run the linker at emacs exit time, to optimize the loading sequence?

<comment><USER12> unexec is only done once, at build-time, to convert temacs with a bunch of loaded libraries to emacs, which includes those libraries already. So it doesn't need to search them on disc, and compile them.

It's never serialized. It's just dumped. Like a core file, with just proper headers, sections and segments, so that it can be executed. A proper COFF/ELF binary. A core file has all the segments but misses the headers.

<comment><USER40> Ok, so why can't it just be dumped to a .S file, so the regular toolchain can handle creating the headers, sections, and segments? .S files basically let you create arbitrary ELF images without making you implement the ELF format yourself. I'm really not getting what the custom linker/toolchain in unexec is buying you.

</comment></comment></comment></comment></comment><comment><USER3> Question: is unexec() more or less portable than CRIU? If CRIU is the more portable of the two (or if they're equivalent in both just basically working only on Linux), could unexec() be dropped in favor of just generating a CRIU process snapshot, and giving emacs a launch wrapper that restores from that snapshot?

<comment><USER41> Emacs unexec is mature (by decades), ported to 11 operating systems. CRIU is Linux-only, more or less experimental, and not included in mainstream stable distros. Does that answer your question?

</comment></comment><comment><USER42> This would be really useful to speed up Atom/Electron startup time.</comment>


Ask HN: Movies/Shows about startups or tech? - <AUTHOR>

I have exhausted most of the usual sources (IMDB, Netflix, random blogs) for movies and shows. Anything in the realm of Silicon Valley, Pirates of SV, etc is what I am looking for. <comment><USER2> Are you looking for a movie like 'the social network'?</comment>


A Review of PentesterLab - <AUTHOR> https://littlemaninmyhead.wordpress.com/2017/10/29/a-review-of-pentesterlab/ <comment><USER2> Something about the way this is written sets off alarm bells for me. This is a learning resource, and yet the review includes this paragraph:

 _The practical experience of breaking real world cryptography through exercises such as Electronic Code Book, Cipher Block Chaining, Padding Oracle, and ECDSA. Note: Although the number of crypto exercises here cannot compete with CryptoPals (which is exclusively about breaking real world cryptography), at least at PentesterLab you get certifications (badges) as evidence of your acquired skills._

I can't see these exercises because they cost money, but I'll charitably guess that the ECB exercise is an attack on cut-and-pastability of ECB, the CBC exercise rewrites a plaintext from unauthenticated CBC, "Padding Oracle" is what it sounds like, and ECDSA is a repeated ECDSA nonce.

Those are fine exercises (though, as the review points out, you can get better ones for free elsewhere). But did the students doing them really learn what they were doing? "Electronic Code Book" isn't an attack and it's not comparable to "Padding Oracle" or "ECDSA". The clunky way the exercises are described leave me with the suspicion that people do these things to collect badges, and little else.

<comment><USER3> This is the author: [https://scholar.google.com.au/citations?user=9gs9StcAAAAJ&hl...](https://scholar.google.com.au/citations?user=9gs9StcAAAAJ&hl=en&oi=ao)

Not a shill. Source: worked with him.

This post of his is an interesting read and might give a bit more background to the what you saw: [https://littlemaninmyhead.wordpress.com/2017/10/23/why- i-lef...](https://littlemaninmyhead.wordpress.com/2017/10/23/why-i-left- cryptography/)

<comment><USER2> I don't think he is a shill!

</comment></comment></comment><comment><USER4> I've been using [http://www.pentesteracademy.com/topics](http://www.pentesteracademy.com/topics) for many years now. Highly recommend them esp. for Network Pentesting, Windows Red-Blue teaming and others.</comment>


Apple's Delays Could Cost iPhone Developer $600K  - <AUTHOR> http://blog.wired.com/gadgets/2009/03/developer-inves.html <comment> patrickg-zill It's bad that he didn't get any kind of feedback from Apple as to why... however this headline could also read "iPhone Developer Spends $600K Despite Having No Guarantees of Acceptance into Proprietary Platform" ...

</comment><comment><USER2> The only thing you could really assign as Apple costing you for a delay, is the amount of money you would have made on your app during the time before you ultimately got accepted.

Whether you spent $600k or a weekend building it has nothing to do with apple costing you a dime.

</comment><comment><USER3> Wasn't a story about this app for the same issue done a few months ago already?

(Googling...)

I found this article: [http://www.macblogz.com/2008/12/17/iphone-dev- spends-500k-on...](http://www.macblogz.com/2008/12/17/iphone-dev- spends-500k-on-development-still-not-approved-by-apple/) So yeah 3 months ago it was talked about and nothing has changed since.

</comment><comment><USER4> The article should read _Company Spends $600,000 Developing App for Proprietary Service that Violates TOS (but Gets No Response)._

The article states "FreedomVoice was planning to charge a monthly rate of $5 for the service." This is a clear violation of the App Store TOS (although that will change once 3.0 comes out).

<comment><USER5> Then, it's simple. Reject the app. Say it violates TOS. Have a nice day.

I'm starting to think that the best way to do a big application is to start small and keep getting bigger. I haven't heard these horror stories of review problems once an application is launched. As it stands, I wouldn't attempt a large application on the system.

</comment></comment><comment><USER6> That's OK, Google Voice would have crushed their dreams anyway.</comment>


The China ICO Ban - <AUTHOR> http://avc.com/2017/09/the-china-ico-ban/ <comment><USER3> ICO is a distribution service on-top of a blockchain system. That's not all that interesting in this conversation.

What is interesting is the same thing that has been interesting from the beginning of the blockchain discussion. Namely that these "coins" purportedly offer an alternative currency to sovereign national currency.

I have always held the view that, the fundamental utility of doing commerce through a currency that is outside of sovereign national control/purview is a hard ceiling for any of these systems. Probably the biggest lever a government has on their nation is monetary policy. There is no way that a government would allow the subversion of that.

At the point in which any alternative currency based market becomes big enough to matter within the boundaries of an existing currency based market, then all a sovereign nation needs to do to kill it is make convertibility to the local currency illegal.

China is basically saying, "look we don't even want to come close to this type of alternative currency possibly getting huge" \- and the ICO method allows pretty much anyone to convert Yuan to "coin." So they went ahead and did what I have been suggesting would happen, but much earlier than I suspected.

The only way that wouldn't work is if nearly all necessary services, retail, logistics etc... uses the alternative currency. In which case the native currency has effectively failed and thus the government has failed as well.

So I don't see what the real upside here is, outside of very tiny, niche marketplaces that require this kind of currency.

I haven't heard anyone actually respond to this line of criticism of Blockchain.

Blockchain is a perfect solution for many things, but as a currency it's dead on arrival IMO.

<comment><USER4> No. China has been pretty open and friendly to bitcoin so far.

What they fear is Ponzi pyramid schemes damaging the economy. Several ICOs have reached a __billion __USD without any product and often anonymously. These can bankrupt whole areas of a country. Now is the time to stop them.

Remember that their growth is exponential and one at a billion already puts it high in the history of Ponzi schemes (Ponzi himself 'only' caused around 200 millions. Madoff is the recordman with between 50 to 150 billions). Let them grow for more generations and there is a very big risk even for national economies.

<comment><USER5> No, that is not their fear. Governments barely care about scams in general - Madoff got off pretty lightly. The fear is losing control of monetary policy. But IMO governments won't outright ban these but come to some sort of middle ground where they get some sort of cut.

<comment><USER6> " _Madoff got off pretty lightly_ "

He was sentenced to 150 years. «Lightly.»

<comment><USER7> "I'm not ashamed to admit it. When we arrived to prison, I was absolutely terrified. But I needn't have been. See, for a brief fleeting moment, I'd forgotten I was rich and I lived in a place where everything was for sale."

</comment></comment></comment></comment></comment><comment><USER8> One of the biggest issue is to make a distinction of what is a legit ICO vs a pyramid scam/pure fraud.

Without a reliable source of truth, anyone can make a splashy website, add a bunch of advisors, create a catchy "kickstarter" selling point and raise millions.

The issue with regulators is that they may enforce the same kind of scrunity applied to big financial firms to legit ICO and that can stiffle startup to raise money.

My fear is that pushes the whole ICO game for only people who have the existing expertise in working around the regulatory rules; then only big players or people with big resources can play the ICO game.

<comment> aaron-lebo Who cares? What makes ICOs good in and of themselves? The % of people who actually need to raise tens of millions of dollars before they've built anything is almost nil. It incentivises empty promises and bullshit marketing and idea guys who have never built anything real in their life.

Those are bad incentives for those businesses and for consumers, because they're the ones who ultimately pay for bad products.

</comment></comment><comment><USER9> The large majority of ICOs I've read about are massive scams.

There is rarely any underlying value, but because of the hype you can still make tons of money via pure speculation, celebrity endorsements and other various types of pump/dump approaches.

It is way worse that OTC.

I think it is most self-aware scammers and the majority of the rest are naive. The only ones I've seen that are not truly scammers are those providing the platform for ICOs (e.g. Etherium, etc), because at least they are doing what they say they are doing.

<comment><USER10> how do you make money via the schemes? if an ICO raises money, it has to attempt to build the product, or else, the people behind it are highly likely to suffer wire fraud charges. Meaning, you can't do an ICO, collect the money and buy a boat. You'll likely go to jail.

<comment><USER9> Are ICOs binding?

Can you claim failure after a best attempt at building the proposed product?

Can you build a shitty version of the product via outsourcing via Upwork to a third world country. And then claim surprise when it barely functions at all?

<comment><USER10> I think if you don't put forward a bona fide best effort, you are vulnerable to fraud charges. Yes, you can probably build a shitty version. But if it can be proved via any email or conversation or some other means that this was your intent, you will be vulnerable to fraud charges. You can't just steal the money you raised in an ICO

</comment></comment></comment></comment><comment><USER11> Typical capitalism mindset:

If I see upward trend and there is a problem, then let me earn my profit, government or regulatory bodies can come in when things go bad.

If I see downward trend, and I am afraid of loss, I will ask government step in immediately instead of letting me die and fix the issue afterwards.

Why not the opposite?

Regulate heavily when it's not mature and when it finally proves it's maturity, set it free.

Because that will not give a small fraction of the population the chance to scoop in a hugely inapproprotional profit.

<comment> aaron-lebo If you heavily regulate immature industries, you 1) don't know what to regulate and 2) don't give the industry the ability to reach maturity.

It's the mature massive companies that are the danger to market and personal freedoms anyway.

<comment><USER12> That logic is almost akin to: I'm raising a kid and I don't know what a human needs or how it will turn out so ¯\\_(ツ)_/¯

<comment> aaron-lebo No because other people have raised children. As of 2000, nobody knew what a mature social network looked like.

</comment></comment></comment></comment><comment><USER13> A guy who's an investor in one of the biggest ICOs of all time (Filecoin) wants governments to not ban them. But it's not about him; it's about "beating China to market". ok.

</comment><comment><USER14> We have all the regulation that we need - it's already illegal to commit fraud and enforcement of that law is sufficiently addressed. Anything else is simply making it more difficult for valid efforts to be successful.

<comment><USER15> That's only true under the supposition that the authorities are of a sufficient expertise to be able to demonstrably prove that fraud.

Surely you'd agree that ICOs are a somewhat new thing, yes? And surely you'd also agree that - having been through this once before in the mid 1990s - <USER2> new market technologies have a disproportionate amount of fraud in their early stages, which generates an attendant disproportionate amount of destabilization against the progress of that technology growing mainstream acceptance.

I'm not sure if ultimately this is a politics thing or what; if people are getting scammed, it needs to be addressed. Full stop. I don't buy into the whole libertarian fantasy (ie: if they were scammed, it's their fault; no oversight!) because that puts a tremendous amount of power into the hands of the least scrupulous people.

I don't really understand why people who believe in blockchain the most aren't screaming until their heads explode about regulation, honestly. How do you think it looks when people like Mayweather and Paris Hilton and friggin' Gurbaksh Chahal get involved? How does that advance the technology? How does that prove the value of the concept?

If you actually believe in it, you should be for regulating bad actors out of it.

</comment></comment><comment> aaron-lebo edit: there will be enough criticism of this piece, but here's a semi relevant quote:

 _In the information age, the barriers [to entry into programming] just aren 't there. The barriers are self imposed. If you want to set off and go develop some grand new thing, you don't need millions of dollars of capitalization. You need enough pizza and Diet Coke to stick in your refrigerator, a cheap PC to work on, and the dedication to go through with it. We slept on floors. We waded across rivers._ \- Carmack

</comment><comment><USER16> Given what was said on business-insider I'd look at the statement to potentially be far more far-reaching -

[http://uk.businessinsider.com/initial-coin-offering-china- bi...](http://uk.businessinsider.com/initial-coin-offering-china-bitcoin- ethereum-peoples-bank-of-china-law-all-crypto-illegal-etoro-2017-9?r=US&IR=T)

It could be that all crypto-currency trading, either between crypto-currencies or from crypto-currency to 'fiat' in China is now illegal.

</comment><comment><USER17> \-- Slightly off topic --

I've got a dumb question as someone who only catches bits and pieces of crypto currency stuff by way of HN and twitter.

Is an ICO a way to put coins out on the market and skipping all the mining stuff? Does the mining still happen to release new coins or is the amount floated at time of the ICO the total number of coins that will exist for currency?

edit: added off topic note.

<comment><USER18> see: [https://news.ycombinator.com/item?id=15176596](https://news.ycombinator.com/item?id=15176596)

</comment></comment><comment><USER19> This is the first time I've heard of "initial coin offerings" but eg. the Bloomberg article doesn't bother to explain the term at all. I can't be the only one, right?

<comment><USER16> At least one seems to turn up in every ICO discussion on HN :)

AFAICT it's a way of issuing your own coins/tokens, which people pay for (usually in ether) and they generally act as a sort of share of the enterprise they are funding - promises of profit sharing etc are usually there. Many seem to be rather worthless, and some ideas have apparently achieved masses of funding based on some buzzwords and a white paper. These tokens can then be traded, with values dictated more by hype-cycle than the actual progress of any product.

IMHO it's part of the current trend of reinforcing and amplifying the wealth of those that already hold crypto-currencies and are already plugged into the scene. Witness the BCC fork a few weeks ago now ICOs, etc.

</comment></comment><comment><USER20> So that means no more Bitcoin mining in China? Why would they ban it when there's a huge amount of revenue coming to their country.

</comment><comment><USER21> I'm interested in how someone who says Bitcoin is a classic bubble has never heard of ICO's, surely if he has enough information on Bitcoin to determine that it is a bubble then he would have looked at the whole ecosystem and understood what an ICO is?

</comment><comment><USER22> Please, please keep spreading FUD about ICO's and cryptocurrencies. Drive the price down for a few days so I can buy more.

<comment><USER23> How is this FUD when it is actual news?

<comment><USER24> This is probably the first piece I'd read on the topic that ISN'T FUD.</comment></comment></comment>


Google seems to have broken remote pagerank checkers... - <AUTHOR> http://www.google.com/search?q=pagerank+checker

<comment><USER2> I haven't investigated yet, but I've got a cron job that fires off once a week, in the wee hours of Tuesday morning, and it googles for a certain term, and requests the first N pages of results, and sees where a particular web page is in the ranking.

...and this morning, that cron job timed out.

There may be something to this.

</comment><comment><AUTHOR> These haven't worked for a while now. Any substitutes?</comment>


How to rent a house in the Bay Area - <AUTHOR> https://medium.com/@contact_51029/how-to-rent-a-house-in-the-bay-area-ad991477d7bc#.jx3t698ng <comment><USER2> This article leaves out the most important task before renting on Craigslist: _make sure the party you 're giving money to actually has standing to rent the property!_

There is a LOT of fraud with people "renting" properties on CL that are utter frauds and vanish as soon as they get the deposit.</comment>


Empty image src can destroy your site - <AUTHOR> http://www.nczonline.net/blog/2009/11/30/empty-image-src-can-destroy-your-site/ <comment><USER2> If your site is so delicately balanced that a single extra request can bring it to its knees then you have larger problems than a blank img tag.

<comment><USER3> If your site is one of the world's top three most-visited websites and _every pageview_ generates a single extra request, then you bet your ass it's going to cause problems.

<comment><USER2> If your site is one of the world's top three most-visited websites and every pageview generates a single extra request and that brings you down, then like I said you've got bigger problems. Your infrastructure should not be so delicate that the difference between uptime and downtime boils down to a single extra hit per pageview.

I'm doing 500 hits per second right now, do I care if it becomes 600 or 700? Not at all, because that's still a nice, safe, comfortable distance from my maximum capacity.

<comment><USER4> Your "you've got bigger problems" then translates to "you should have capacity for at least double your normal traffic".

Capacity planning is complex enough that I wouldn't make such a blanket statement so judgmentally.

<comment><USER2> One extra hit per pageview is not necessarily double your traffic, it's probably below a 1% increase a lot of the time.

</comment></comment></comment></comment></comment><comment><USER5> this one also "works" with CSS background images by the way. I had one case during development here with ~10 elements that had a background image set to url() (in a style attribute. don't ask. please). And of course, that page was _really_ taxing the server doing a complex calculation.

Of course, finding this was actually a good thing, because we could not only fix the empty background image but als fix the whole page so that a) the processing is done in the background and b) the result is cached.

So if you are careful about your architecture, an empty image url or two really is a non-issue. If on the other hand, you are not careful, 10 empty image urls on the wrong page can really take down your machine.

There IS a difference between 50 and 500 concurrent users.

</comment><comment><USER6> alarmist headline - it's a minor inconvenience at best. possibly difficult to track down why there are such duplicate requests going to your site and where the empty img tag is, but it's hardly going to "destroy your site".

<comment><USER7> Consider a very popular website which runs on the last generation of software; that is, it is susceptible to the C10K problem (tl;dr: thread/process-based concurrency starts to choke at ~10,000 simultaneous connections, largely regardless of vertical scaling). The server, or each server in the pool, might run at 75% load normally.

And then traffic doubles.

It's easy to imagine the hurt.

<comment><USER8> Traffic won't double. Total traffic is all requests (images, stylesheets, scripts), not just requests to the root HTML page.

Not only that, but the client's browser probably caches it anyway.

<comment><USER9> You're assuming that your static assets (js, css, images) aren't served from a CDN (pretty much the standard at companies like Yahoo!). When your main server is serving just the HTML it's much more likely that your requests could double.

<comment><USER8> Any website serving its assets from a CDN will be a) unlikely to make a mistake like this empty image src thing, and b) have a well-cached front-page that would be unlikely to impact on server load.

</comment></comment></comment></comment></comment><comment><USER10> My favorite thing about this article is that it made me stop and think through why the bug would actually exist in so many browsers.

I can make sense of the IE bug: "" doesn't start with a protocol, like "<http://>, so it's not a full URL. It doesn't start with "/", so it's not relative to the server root. Therefore, it must be a relative URL, and the browser tries to download the image named "" in the same directory as the page.

But the Safari and Chrome problem baffles me. To have happened in Safari, Chrome, and Firefox, it must be a pretty straightforward mistake, but I just can't see it. Anyone else have guesses?

(Safari and Chrome admittedly use the same rendering engine, but still, Firefox doesn't.)

</comment><comment><USER11> Wouldn't his proposed method of returning nothing when URL==referer "destroy" a form that posts to itself (action="." or "")?

</comment><comment><USER12> Depending on your web framework, this may cause problems unrelated to load. If the framework identifies components in the DOM tree via auto-generated IDs, the additional requests can cause these to be regenerated. In your JavaScript, or even somewhere in the server side code which didn't expect further requests, the old value might still be used, breaking the site.

I learned this the hard way recently while working on an Apache Wicket app, see my mailing list post: [http://old.nabble.com/Nasty-problem- with-%22component-not-fo...](http://old.nabble.com/Nasty-problem- with-%22component-not-found%22-and-images--solved--td27337027.html#a27337027).

</comment><comment><USER13> Another workaround is to assign a data url to the image tag, then replace the source with javascript.

Something like <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">

</comment><comment><USER14> A second request wont destroy your website. Yes a second request takes a tiny bit more bandwidth, but realistically, its impact is nil.

<comment><USER15> Agreed (and actually saw this on 40M pv/day site on the inside myself), most of the stuff is cached by definition. Still a bad thing tho.

</comment></comment><comment><USER16> Useful link with good timing; this just came up today for me.

Wasn't destroying my site, but good to fix regardless.</comment>


After 5 years and $3M, here's everything we've learned from building Ghost - <AUTHOR> https://blog.ghost.org/5/ <comment><USER2> Good morning HN! John from Ghost here - Thanks for all your support over the last 5 years. We wouldn't be here if it wasn't for that very first blog post hitting the #1 spot of HN and getting so much attention back in 2012. That was the very first time anyone ever heard about Ghost, and everything we've built since then has been thanks to that.</comment>


The Plot to Kill Google - <AUTHOR> http://www.wired.com/techbiz/it/magazine/17-02/ff_killgoogle?currentPage=all

<comment><USER2> A friend of mine was kicked off google ads. Now he can't find anyone else to replace them with.

Monopoly.

<comment><USER3> It's a monopoly as far as the 'competition' is unbelievably lame.

The story of overture + yahoo etc is amazing.

<comment><USER4> What about Quigo? <http://www.quigo.com>

</comment></comment></comment><comment><USER5> > Every time a new chunk of radio spectrum becomes available, Google argues it > should be opened to the public. Sounds great—except to telcos that have > wanted it for themselves and broadcasters that worry new devices will mess > with their transmissions.

> Google's insatiable hunger for data scares even some of its allies. Now its > business rivals have launched a privacy crusade to drum up fears that Big > Brother lives in Mountain View.

Google wants to compete on a landscape that favors innovation but the old guard (which apparently includes wired) is doing everything they can to stop them.

<comment><USER6> Just like you argue that the "old guard" are fighting to keep the status quo of how they make money, Google is fighting to make the competitive landscape favor its business model. Neither are evil or good. It's just business.

Calling Google's landscape as favoring innovation is just sugar coating it. At the end of the day Google does not like anything that may disrupt its business; the Wired article is a great example: Google did all it can to stop MS from buying out Yahoo! and succeeded only to find out later that the war was never about Yahoo!.

There is a lot of "wrong" things about Google just as there are a lot of "wrong" things with MS and the "old guard". So please, put down that Google Kool Aid (beta) cup and see the world for what it is: hard nosed business as usual. Google is no angel and it shouldn't be.

<comment><USER5> You are refuting arguments I never made.

I agree with everything you said, but in the end, the direction Google is pushing things will end up creating lots of opportunity for innovation.

</comment></comment></comment><comment><USER7> with the economy the way it is, i think a lot of these companies are gonna have to start focusing on their own business models. google is competing very hard both on the marketing and product innovation front and is snatching away market share from the others and will continue to do so because of this. google offers significantly cheaper prices on their products compared to microsoft (the quality of google offerings is up for discussion). they are well positioned to compete with the telcos as well, with products such as grandcentral and android. they are even spurring up competition in the entertainment biz with youtube. yes, it is true that the big companies are not willing to partner with them, but the underdogs are lining up to work with google.

with the moderate size force of lawyers (compared to the competitors) that google has acquired over the years, and the amount of legal information they have learned from all these legal dealings, i have no doubt in my mind that google is fully prepared to take on the big dogs.

keep in mind that google is a very efficient company and has a lot of cash. as many venture capitalists know, cash is very important in making your ideas work.

</comment><comment><USER8> why can't they just get along? ;) i just want great service and so therefore i want ethical competition. so who am i to side with?: when one of the competitors, by virtue of their own hard efforts or whatever, becomes big enough to gobble up its competitor. hasn't the, now big, competitor earned it? shouldn't it, by the spirit of capitalism, be allowed? we are all scared of this point of competition where it kills itself. why should society have to intervene in such issues? i like a system that takes care of itself.

people are learning how much free rein competition should be given. should we enact laws that ban competitors from gobbling each other? it seems hypocritical.. also proper checks have to be put in so that there will only be ethical competition.

</comment><comment><USER9> Interesting article; Google comes seemingly out of nowhere takes the web by storm and then pokes around in the usual suspects business.

Yea they are hated but you bet they are not laying off one lawyer.</comment>


I'm moving to Silicon Valley and living in my car - <AUTHOR> http://kurtvarner.com/post/19347794553/a-man-a-car-and-his-startup <comment><USER2> Best of luck!

A very good friend of mine traveled to all 31 NFL stadiums in a single year. He and two other guys started in an RV, but ended up in a Chevy Suburban after a "transmission incident". As he tells it, the weeks spent Suburban were extremely difficult. The importance of good sleep cannot be understated. If you find that you're not sleeping well, adjust your strategy. Otherwise you'll pay a stiff penalty for sleep deprivation.

Another challenge you'll face is the fact that vagrancy is illegal in most places. In a great twist of irony, it can be easier to be vagrant _without_ a car than it is with. Cars are large, so they get noticed. Parking overnight in just about any commercial parking lot could result in the police being called. Interestingly enough, Walmart is tolerant of overnight parkers. Although, most people are in RVs. I'm not sure if it's a policy discussed out in the open, but you can park an RV in a Walmart parking lot overnight without getting hassled in most places. You might try your luck rotating between a handful of Walmarts in the area. I'd try to avoid parking in the same location many nights in a row as not to get picked up.

</comment><comment><USER3> Very inspiring.

Consider camping. In which sleeping in your car would be considered a very very small RV. An annual pass to the county parks around here is $80 [1] and there are some pretty close to the thick of things (see Sanborn Skyline [2] for example) Its $24/night but they don't hassle you for sleeping there. 14-days in a row and then you have to go somewhere else.

[1] [http://www.sccgov.org/portal/site/parks/agencyarticle?path=%...](http://www.sccgov.org/portal/site/parks/agencyarticle?path=%252Fv7%252FParks%2520and%2520Recreation%252C%2520Department%2520of%2520%2528DEP%2529%252FReservations%252FAnnual%2520Vehicle- Vessel%2520Passes&contentId=bc7498ba77784010VgnVCM10000048dc4a92____)

[2] [http://www.sccgov.org/portal/site/parks/menuitem.106844a55ca...](http://www.sccgov.org/portal/site/parks/menuitem.106844a55ca9d5a5dbc2bd4735cda429?path=/v7/Parks%20and%20Recreation,%20Department%20of%20%28DEP%29/Find%20a%20Park&contentId=b9247d256b784010VgnVCMP2200049dc4a92____&cpsextcurrchannel=1)

</comment><comment><USER4> Kurt,

Kudos on having the cajones to do whatever it takes to make your dream a reality.

Couple of tips: First and foremost, the pariSoma idea doesn't seem like the best bang for your buck. For a working space, Hacker Dojo (two blocks from my house) is a much better value. Save that $300 a month (at least $600 after gas and parking in the city or caltrain fees) and get a 24 hour fitness membership (showers and exercise) and maybe 3 or 4 nights a month in a budget hotel for a break. There are sooooo many networking events and meetups in the valley you really don't have to pay $300 just to "have access" to any particular group. Start with 106 miles and expand from there.

Second, while Palo Alto may legally allow sleeping in cars, it is still in incredibly wealthy town whose residents don't really like "homeless" people mucking up their view. Expect some harassment.

Third, hit me up when you get to town and I'll buy you lunch and some handiwipes.

Ben

<comment><AUTHOR> Thanks so much for the advice, Ben. You make so good points. And yes, I expect to catch some negativity towards my situation. But I'll deal with that as it happens.

Let's for sure meet up. I'll shoot you an email next week.

</comment></comment><comment><USER5> Kurt, While I support wholeheartedly this adventurism, don't you think focusing all your energy into your start-up would be more effective and beneficial than spending all this time in San Fran dealing with these "inconveniences"?

My suggestion is ask that friend who offered you his couch, if it's ok to stay there for a month. Then use that month to get your shit together.

You can pay him back by cooking dinners, keeping your stuff clean and being a considerate human. Later on, when you hit the big time, you can buy him a month long vacation.

<comment><AUTHOR> I understand why you'd think that, but I really feel that my current situation will allow me to focus completely on work. I'll be spending all my time in the co-working spaces, and simply sleep in my car. It's looking like there are several better options for showers than I wrote about, so that's not going to be much of a distraction.

But again, I really don't know what the daily routine will be like until I'm actually doing it. So if the situation proves to be having a negative affect, then I'll look for alternatives.

<comment><USER6> I've spent two decent-length cross-country round trips with a combination of camping and car-sleeping in my civic coupe, so I can't really not comment.

1\. The main thing that bugs me about sleeping in the civic is the blatant advertising of yourself as vulnerable (even in spite of sticking to unpopulated areas and only when it was too late to be worth tenting). I slept in my reclined driver's seat, but I can't see half in the trunk being much better unless you really make some modifications to give yourself privacy.

2\. You _will_ be waking up when it gets light and any segment of the population starts to function.

3\. In case it could make your sleeping arrangement flatter - it's not too much work to pull out the rear bottom cushion. Although this just might make the trunk threshold more of a bump on your back.

4\. The first trip, I planned to do a bit of coding. I did do some, but it was quite hard to set aside the transient mindset and concentrate on something as abstract as coding. If you are indeed able to 'focus completely on your work', it's because you will basically be living at whatever coworking space you choose, and retiring to your car to avoid pissing them off.

5\. The day after car-sleeping, I generally prioritized getting to a proper campsite while it was still light out. Even just setting up a tent and cooking a simple meal provides more stability and comfort than sleeping in the car does.

6\. If your goal is really to do both, then do both. Consider even starting off your project with some hermit time in the woods instead of SV (get a second car battery (used) to completely run down with a car->laptop PS). But if your priority is to pour yourself into your startup idea, then have a solid backup plan for a more stable home base in case the car thing isn't working out.

</comment></comment></comment><comment><USER7> Make sure to stack tuna cans, eggs, brown rice and nuts. If you buy in bulk (which I recommend for everything except the eggs in your case) you'll get away with great prices. Preparing it is easy as well (think 1 tuna can + some fresh salad + olive oil/balsamico => awesome meal) if the hacker dojo has a rice cooker you're golden, otherwise get one for 30 bucks and you'll have a healthy carb source all the time.

Kudos to doing that, very inspiring. I wish you all the best! :)

</comment><comment><USER8> I have to agree with one of the commenters over there, "phil." I feel like this makes those of us involved involved look silly. Good luck to you, I really mean that. All the best. But, I think the idea that we have to as phil said, "play the starving artist" thing is just too much, I think. Ramen noodles is one thing, but leaving out of your car in Palo Alto and renting a workspace. We all here respect PG, but all your links for your rationale are links just to his essays. It just seems a little like naive romanticism. Fine, whatever, but I don't want to see this trend continue or this expectation that many of the most skilled people in the World need to make their way to success by living as vagrants. All the best, though. Really.

</comment><comment><USER9> Watch out for the police. Bizarre as it may seem to prohibit someone from sleeping in their car, in many places it's not quite allowed, whether through law or habit. Google it a bit for the horror stories and some advice.

<comment><AUTHOR> I've looked into this issue. It is in fact illegal in all Bay Area cities except Palo Alto. So that's where I'm planning to park.

</comment></comment><comment><USER10> Good luck, Kurt! You'll be missed in LA

Out of curiosity, what is your monthly burn going to be with this plan? Seems ~ $1500 / month (which is great)

</comment><comment><USER11> Sounds like you really planned it through. I'm sure you'll meet lots of people, good luck!

</comment><comment><USER12> Is this really going to work? Keep us posted:)

A contrast from TED, The year I was homeless:

[http://www.ted.com/talks/lang/en/becky_blanton_the_year_i_wa...](http://www.ted.com/talks/lang/en/becky_blanton_the_year_i_was_homeless.html)

</comment><comment><USER13> Fantastic idea! Though you missed the section heading "Poopin'".

<comment><AUTHOR> Haha, yeah well the co-working spaces are 24/7 so I guess that's where I'll be doing my business.

</comment></comment><comment><USER14> If the Honda dies, get yourself a minivan and an air mattress.

</comment><comment><USER15> You are a braver man than I. Good luck!

</comment><comment><USER16> This is awesome. Good luck, Kurt.

</comment><comment><USER17> Absolutely insane. Good luck :)</comment>


Cats know their names – whether they care is another matter - <AUTHOR> https://www.nature.com/articles/d41586-019-01067-z <comment><USER2> The very existence of this research puzzles me. When I got a cat, I named him "kot" (a male cat in Russian), cause I thought he wouldn't remember it, so why bother. But he learnt it in a week. I just made my own research, for the sake of this comment: said "Petya", "Idi syuda, durak" and "kot", and sure enough, after the third call he came, sat beside me, and is now watching the screen.

<comment><USER3> Ohh that's cute. We have 2 Bulgarian Calico sisters and without a shadow of a doubt, absolutely factually, they know their names.

I would bet a million Leva on that.

</comment></comment><comment> pickle-wizard As a person owned by a cat I'm not surprised by this. I'll call his name and he won't respond, but if I say "Do you want a snack"? He'll run to his bowl.

<comment><USER4> My cat knows her name as well as some nicknames. Particularly any name that has an "eee" sound in it gets her attention.

More interestingly, she has learned sound associations to the point of being able to tell the difference between crinkling sounds of the treats bag vs. crinkling of another bag that isn't treats.

<comment> xkcd-sucks Yeah their hearing is so incredibly acute. I had one who would sleep inside my house while listening to ambient noise through a window. Occasionally he'd perk up and ask to go outside. Then he'd walk over to some bush or leafy patch, pounce once,and emerge with a critter in his mouth. The outside sounds he listened to came in through a window and hallway, the path was not line of sight.

</comment></comment></comment><comment><USER5> Obligatory citation;

"Owners of dogs will have noticed that, if you provide them with food and water and shelter and affection, they will think you are god. Whereas owners of cats are compelled to realize that, if you provide them with food and water and shelter and affection, they draw the conclusion that _they are gods_."

—Christopher Hitchens (attributed by Goodreads)

(me: Certified Cat Whisperer)

<comment><USER6> "In ancient times cats were worshipped as gods; they have not forgotten this." \-- Terry Pratchett

</comment></comment><comment><USER7> It's not just their own...we have a cat that knows her own name, but she ALSO knows the n as me of one of other cats and will vocslly complain if you call for him while petting her.

It's quite hilarious - she doesn't respond to similar sounds that way, she doesn't respond to his name in other circumstances, but DO NOT call for him while she is expecting pets from you. (It technically happens whether you are or are not petting her, so long as she wants you to pet her)</comment>


Betrayed by the America's Cup - <AUTHOR> https://medium.com/this-happened-to-me/32f120565d88

<comment><USER2> I wish OP would have learned something about sail racing before writing his screed.

Boat trim is an integral part of racing, even in many strictly regulated one- design classes. An eighth-grader racing an Optimist dinghy at their local club will spend a large part of their day tuning their rig, carefully adjusting the shape of their sail to eke out every last ounce of power.

Criticising a race crew for making their boat go faster is preposterous, because that's what most of the crew are there to do. If Oracle did a better job of that, then they won fair and square. Money certainly helps, but it can't win races if you don't have the skill and expertise to turn that money into speed.

An equivalent article would be to write an outraged expose of Formula 1 motor racing, complaining that the top teams "cheat" by having a huge team of engineers, aerodynamicists and strategists to make the car go faster. All that stuff is an integral part of the sport and nobody has ever pretended otherwise.

</comment><comment><USER3> I've heard from several sources (mostly New Zealanders, admittedly) that Oracle didn't just tweak their trim, but fitted active stabilization to their foils.

After just now doing a bit of Googling – it's pretty clear all the rumours I'm hearing are all based of (and contain verbatim chunks of) this:

[http://www.sail-world.com/Australia/Americas- Cup:-Speculatio...](http://www.sail-world.com/Australia/Americas- Cup:-Speculation-on-Oracle-Team-USAs-foiling-system/115070) [http://www.scoop.co.nz/stories/HL1309/S00253/americas-cup- la...](http://www.scoop.co.nz/stories/HL1309/S00253/americas-cup-lawsuit- mooted-for-herbie-foil-trimming-mod.htm)

Not sure how much truth there is in that claim – or even if it matters much, but there's clear;y some controversy about why Oracle got so much faster after race 9…

</comment><comment><USER4> The America's Cup has always been this way--a battle of money and technology as much as sailing skill.

[http://en.wikipedia.org/wiki/America%27s_Cup](http://en.wikipedia.org/wiki/America%27s_Cup)

It's not a normal sporting competition the way we think of sport today--a contest conducted by standard rules using regulated equipment under the auspices of a neutral governing body. The governing body of an America's Cup race is the yacht club that holds the cup. The rules are whatever they say they are.

<comment><USER5> It had previously been held as a competition between nations and with some level of integrity. This Oracle campaign and the previous Alinghi campaign have been the most self-serving in the America's Cup 150 years of history.

Money has been a part of the cup, sure, but making it so you can't win without dropping half a billion is a new low.

<comment><USER3> I'm not sure that's true - didn't some previous incumbents tweak the rules to require challengers to sail their boats on the open ocean from their home clubs, while the Rhode Island based boats could be built much lighter since they didn't need to be trans-ocean-capable?

I think this particular race has a century-long history of being all about the defender writing their own rulebook…</comment></comment></comment>


Silicon Valley to Liberal Arts Majors: We Want You - <AUTHOR> http://bostonreview.net/science-nature/tom-slee-silicon-valley-liberal-arts-majors-we-want-you <comment><USER2> Headline is pretty misleading, the article is about a couple of books that say it is important to have liberal arts in Silicon Valley. If Silicon Valley actually wants liberal arts majors, they will pay them accordingly. Obviously that isn't the case right now.

</comment><comment><USER3> Here I am. Give me the freedom of remote and a good salary and I'm yours. I do product management, currently for a big german company.</comment>


A Rational Design Process: How and Why to Fake It (1986) [pdf] - <AUTHOR> http://www.ics.uci.edu/~taylor/classes/121/IEEE86_Parnas_Clement.pdf <comment><USER2> I've always found the arguments in this paper so bizarre that when reading it I have to constantly keep reminding myself that in the 80s this nonsense must have seemed like a practical way forward. (Parnas in particular was one of the _giants_ of software engineering research.) I wrote a piece about it a few years back:

[http://www.zerobanana.com/essays/rational- design/](http://www.zerobanana.com/essays/rational-design/)

Another good take on it:

[http://www.leanessays.com/2010/11/rational-design-process- it...](http://www.leanessays.com/2010/11/rational-design-process-its-time- to.html)

</comment><comment><USER3> I am not convinced that the description of why faking it is useful is...useful.

"We will come closer to a rational design if we try to follow the process rather than proceed on an ad hoc basis."

No. We don't get better if we pretend that stuff that doesn't work works.

Obligatory reference Henrik Gedenryd's 1998 PhD Thesis from Lund University: "How Designer Work"

Single PDF:

[http://lup.lub.lu.se/luur/download?func=downloadFile&recordO...](http://lup.lub.lu.se/luur/download?func=downloadFile&recordOId=18828&fileOId=1484253)

Chapters:

[https://chrisrust.wordpress.com/1998/12/31/how-designers- wor...](https://chrisrust.wordpress.com/1998/12/31/how-designers-work-making- sense-of-authentic-cognitive-activity/)</comment>


Rogue Wave Software Acquires PHP Leader Zend - <AUTHOR> http://www.roguewave.com/company/news/2015/rogue-wave-software-acquires-php-leader-zend <comment><USER2> [https://news.ycombinator.com/item?id=10338726](https://news.ycombinator.com/item?id=10338726)

</comment><comment><USER3> Who? I have never heard of Rogue Wave Software.

<comment><USER4> ::sigh:: Kids these days. Rogue Wave is _ancient_ by technology standards. They wrote a C++ library that everyone used in the early nineties.

<comment><USER5> They seem to be mainly code metric gathering and static analysis software developers.

</comment></comment></comment><comment><USER6> "...underscoring our goal to make developers heroes..."

Ugh.

<comment><USER7> I personally prefer higher pay than any valor. To make developers better compensated would have been more endearing.

<comment><USER6> Gotta qualify as a rockstar and/or ninja first.

<comment><USER7> Will getting drunk and smashing an axe in the head of a manager suffice? Depending if I am going for the rock star or ninja - the type of axe may differ. But the results will be satisfying all the same.</comment></comment></comment></comment>


Clojure by Example - <AUTHOR> https://kimh.github.io/clojure-by-example/ <comment><AUTHOR> > I don't like reading thick O'Reilly books when I start learning new > programming languages. Rather, I like starting by writing small and dirty > code. If you take this approach, having many simple code examples are > extremely helpful because I can find answers to these questions very easily.</comment>


Nuclear Industry in France in Crisis, 20 Reactors Shut Down - <AUTHOR> http://www.ecowatch.com/france-nuclear-power-shut-down-2086414462.html <comment><USER2> 20 out of 58, so far....</comment>