Don Knuth and the Art of Computer Programming: The Interview - <AUTHOR> https://www.simple-talk.com/opinion/opinion-pieces/don-knuth-and-the-art-of-computer-programming-the-interview/ <comment><USER2>
      I guess I do tend to use systems in unexpected ways, and I get some satisfaction
      when this reveals a flaw. For example, I remember having fun while visiting my
      sister and playing with a `shoot-em-up' game that my nephew showed me.

      Since I'm kind of a pacifist, I tried shooting bullets at the wall, instead of
      trying to kill the hidden attackers. Sure enough, I could spell my name on that
      wall, by making bullet holes in an appropriate pattern. But later when I came back
      to that same position, after wandering around further in the game, my name was gone!
      I think that was a bug in the software.

I love this. Especially the fact that he wrote was probably doing the only thing he wanted to do in the game, and was foiled by the fact that the game programmers didn't dedicate extra memory to saving environmental damage throughout a level.

<comment><USER3> I doubt it was a bug. The developers will have set either a time limit on each decal or will have a maximum number of decals that can exist in any level.

<comment><USER2> It's definitely designed that way (in Halo 1 on my Mac, you could watch while shooting at something, and see the old damage go away in real time after a couple magazines of ammo were expended).

Modern games on modern systems are getting better, but there's always a limit as to how much data will fit into RAM during a given scenario/level while still keeping everything else running smoothly.

<comment><USER4> I was really disappointed with something like this in a game I was playing last week. In The Unfinished Swan, after you get a certain number of bonus points, you unlock a power that lets time freeze for the objects you throw in game so you can have tons of objects queued up to go all over the place when you unfreeze.

What I was trying to do was use the frozen in space objects to sort of paint in mid-air the area I was in. Unfortunately after about a 100 or so, the game removed the oldest dropped object with each new one placed.

</comment></comment></comment></comment><comment><USER5> I'm reminded of Knuth's six character critique of C++...

a < b > c;

(from Dr. Dobbs, many years ago)

Can you determine the function of that statement without knowing the types of the variables? No? That's because there's a parse problem in C++. If they had only used, say, [< and >] rather than < and > for template declaration, it could have parsed cleanly. Overloading operators for unrelated functionality is a dangerous and usually unnecessary practice.

</comment><comment><USER6> Funny how extraordinary people often seem to have extraordinary hobbies:

 _The irony is that computer science nearly lost Knuth to its ranks because of his love of music (his house is built around a two-storey pipe organ that he designed himself) and says he intends to return to it once he has completed the expected seven volumes of 'The Art of Computer Science'._

</comment><comment><USER7> I'm (slowly) moving through ACP at this time. Definitely not night-stand reading! The clarity of his thought is impressive and shines through on the pages of his books; reading and doing the exercises in his books has made a noticeable impact on my own thinking, not just in my Mathematics or programming!

7 Volumes though! I've got the boxed four set, at the rate with which I'm progressing I'm sure he'll have the other three finished, lol.

<comment><USER5> The question is, will he be done with The Art of Computer Programming before George R.R. Martin is done with The Song of Ice and Fire?

<comment><USER8> He would be if he would sell to HBO as well - Martin is on the hook, they are going to make the show with or without him.

</comment></comment></comment><comment><USER9> There's a fantastic video autobiography of Donald Knuth [1] that includes a good transcript for people like me who would rather read. This has been discussed [2] on HN previously and would be one of the links I wouldn't mind seeing again. In searching for previous discussions I found a 73 page transcript of an interview of Knuth by Edward Feigenbaum of Stanford that will likely eat up part of my afternoon.

[1] [http://www.webofstories.com/play/donald.knuth/1](http://www.webofstories.com/play/donald.knuth/1) [2] [https://news.ycombinator.com/item?id=3389980](https://news.ycombinator.com/item?id=3389980) [3] [http://archive.computerhistory.org/resources/text/Oral_Histo...](http://archive.computerhistory.org/resources/text/Oral_History/Knuth_Don_1/Knuth_Don.oral_history.2007.102658053_all.pdf)

</comment><comment><USER10>
      I think existing incentives are working fine, except of
      course that I wish more people would discover the
      advantages of literate programming.

The problem, is, in my opinion is that programmer believes in the beauty of code itself, and literate didn't allow to write beautiful code easily. It helps to write beautiful documentation. Maybe a tool allowing literate and inverse literate programming to propagate modifications in code or in documentation on both directions may allow a better adoption?

</comment><comment><USER11> I always love reading about Knuth. What a great guy.

TAOCP:Computer Science::Gray's Anatomy:Medicine

</comment><comment><USER12> I bet the game he is talking about is Duke Nukem 3D and he is wrong. Saving the bullet holes only long enough for them to be enjoyable but not long enough to run out of memory was completely awesome touch.

<comment><USER13> > he is wrong. Saving the bullet holes only long enough for them to be > enjoyable

They weren't saved long enough to be enjoyable to Don.

</comment></comment><comment><USER14> How strange - the times I get to keep to myself I go wild with context- switching.

<comment><USER15> Do you prefer freedom or order? Do you prefer one way to do a single thing, or a thousand ways to reach the same goal?

(a) Freedom AND order. (b) I guess I prefer maybe three ways, having different characteristics, together with the knowledge of how to convert each of them into the other two.

</comment></comment><comment><USER16> living legend!</comment>


Ursula K. Le Guin, "the emissary from Orsinia," challenges expectations - <AUTHOR> https://www.loa.org/news-and-views/1180-ursula-k-le-guin-the-emissary-from-orsinia-crosses-borders-and-challenges-expectations <comment><USER2> For someone who was/is excited by reading the Orsinia tales: can you share _why_ , besides just telling me repeatedly that you were excited by it?

I am someone who has been often disappointed by vaunted authors of the past (Vonnegut, Clarke, etc.), because their work suffers from the "it's not novel (anymore)" feeling one often has when watching old movies. I get that these were ground breaking when they first came out, but they don't seem to shine anymore, because _I_ was first exposed to works that have iterated upon them...no nostalgia factor to sweeten the deal for me.

Put another way: I totally get that muskets were ground-breaking for the time, but gosh-darnit, I have seen nuclear submarines.

When reading the linked article, I felt a lot of the same: a lot of the "amazing" things I have come across in other novels, and they feel like par for the course for a good book.

Also the whole spiel about Ursula wanting to change the world, and needing a lever and a place to stand...well, she _didn 't_ change the world, in hindsight. Did she?

\</comment><comment></comment><comment></comment><comment>

A really bothersome quote from the article: "By speaking from Orsinia, as its only authorized emissary, Le Guin reminds us of everything we take for granted and everything we have neglected."

What the heck does that sentence mean? I can't imagine everything I have taken for granted and neglected as a single meaningful thought or concept. In fact, if I tried to imagine everything I have taken for granted and neglected, it becomes a thought stretched so thin, that it loses all meaning. It becomes nothing because its too many things.

So am I fair in discounting this sentence (and most of the article) as fan gibberish?

<comment><USER3> My experience with old works is that, while they may at first appear to suffer from the "it's not novel (anymore)" feeling, over time I find that the real issue is that they are far more different from contemporary literature than any contemporary literature. They're _too_ novel.

We can go all the way back and talk about Homer as the best example. The way that _The Iliad_ tells a story, conveys the experience of war, illustrates a character, even the way the language works as you read is completely different from a modern novel. It takes work to adapt to it.

I would say that, in general, that's the joy I find in all older literature, whether it's Joyce, or Dickens, or Philip K. Dick, or Jack Vance: in finding out how it wants to talk to you, and letting yourself fall into some strange mode of communication.

In my mind, every author brings something uniquely their own to the table, and the older you get, the more strange and unfamiliar that thing is.

Anyway — YMMV, of course, and you may be more right than I am. But your take on this made me think a bit, and I thought I'd talk about it.

<comment><USER4> Aside: I've read the first 100-200 pages of Ulysses seemingly once every year for the last fifteen years trying to "get it" and always end up giving up. (Same for Proust and Pynchon). If you can provide any guidance about what Joyce communicates to you, please do.

(Gabriel Garcia Marquez was also in that group for a number of years/readings, but I finally got over the hump and _love_ that style now. To the point that he may be my favorite author. I think Günter Grass was my stepping stone there.)

<comment><USER5> These books are not easy to read. They ask some work on the part of the reader. It's not entertainment. They bring much more than their story to the table, but they're way harder to read than non-fiction.

What you need is time. Lots of time. I've read the complete in search of lost time novels when I was around 15. I found it easy to read because I had nothing else to do. And I am plenty sure it changed a lot of things for me.

I've been reading the Magic Mountain and Ulysses for 10 years, unable to finish them yet, but I don't feel it's a problem. Just as you, if I try again time after time, it's probably because I know it's worth it somewhere.

Incidentally, it's not limited to old books. I had the same trouble with Quicksilver from Neal Stephenson until something cracked and I was able to read the whole baroque cycle in less than 3 months.

</comment></comment></comment></comment><comment><USER6> "The Ones Who Walk Away from Omelas" is perhaps her most biting short story. It's not one of the Orsinian tales, although it could have been set in that world.

Anyone who writes fantasy should read her essays in "The Language of the Night". (Also Poul Anderson's "On Thud and Blunder".)

<comment><USER7> While Omelas deserves to stand the test of time, it is also an excruciatingly bad piece of writing. Every few years when I revisit the story, I'm stunned by how clumsy the narrative device is.

<comment><USER8> Is it? I don't know what other device she could use that would draw people in as easily. Remember that before it became the story we talk about, it had to be the story we read. And it's not a story you want to read. If you told it with characters more clearly drawn, it would be about their reaction to the central premise. If you told it less poetically, it wouldn't have the mythic magical realism that keeps you from thinking about the logic, instead of the question.

</comment></comment></comment><comment><USER9> One of my favorite authors. _The Dispossessed_ is also a fantastic read which goes far beyond the simple classification of SiFi.

<comment><USER10> I still need to read that one. _The Left Hand of Darkness_ has been my favorite so far.

<comment><USER11> I love The Left Hand of Darkness. That said, I'm not really a big fan of her Earthsea books.

<comment><USER12> I very much enjoyed Earthsea, but they are astoundingly different from the Hainish stuff.</comment></comment></comment></comment>


Terark (YC W17) is a profitable database compression company based in Beijing - <AUTHOR> https://www.techinasia.com/real-pied-piper-silicon-valley <comment><AUTHOR> Sorry, I know the article is kind of sensational but it also has some good information and we're here to discuss the real substance in the thread.

Terark built a new storage engine for Database and Data Systems based on the Succinct Nested Trie data structure. Our technology enables direct search on highly compressed data without decompressing it. Thanks to that we obtain >200X faster performance and more than 15X storage savings (better than Google's LevelDB or Facebook's RocksDB). We are a Y Combinator company (W17).

<comment><USER2> That's 200x performance in relation to what?

<comment><AUTHOR> In 200x improvement in random read performance, compared to RocksDB or WiredTiger (MongoDB's storage engine). You can find benchmarks on our website: [https://terark.com/en/index](https://terark.com/en/index) And here: [https://github.com/Terark/terarkdb/wiki/Benchmark](https://github.com/Terark/terarkdb/wiki/Benchmark)

We also provide a free license of TerarkDB and you can download the exact scripts we used and run your own benchmarks with the configuration you want. We know the claim may sound outlandish, so we try to be as transparent as possible.

<comment><USER3> Can you please do some benchmarks against MySQL and PostgreSQL? The vast majority of your prospective customers will be using these two instead of RocksDB or MongoDB.

<comment><AUTHOR> Sure! Our benchmark against MySQL is here: [https://github.com/Terark/mysql- on-terarkdb/wiki/YCSB-on-9.1...](https://github.com/Terark/mysql-on- terarkdb/wiki/YCSB-on-9.1G-Movie-Data) We used YCSB on 9.1Gb of movie data. This benchmark is comparing MySQL with our product "MySQL on Terark". "MySQL on Terark" is basically MySQL configured with TerarkDB instead of InnoDB -- that way you can migrate your MySQL applications to Terark with virtually no modification in your code.

We do not have any benchmark against PostgreSQL though. It is not in our plans to adapt our storage engine to PostgreSQL, so we're not comparing it against it, but the gains are just as significative.

I hope that answer your questions, and feel free to reach us at firstname.lastname@example.com

</comment></comment></comment></comment></comment><comment><USER4> So there's TerarkDB: [https://github.com/Terark/terarkdb](https://github.com/Terark/terarkdb)

And there's TerichDB: [https://github.com/Terark/terichdb](https://github.com/Terark/terichdb)

How are they related to each other?

Also TerichDB calls itself open source but then includes this: "TerichDB is open source but our core data structures and algorithms(dfadb) are not yet."

If the core algorithms of TerichDB is not open source then is TerichDB even usable? Are you going to open source the core algorithms?

All this is rather confusing.

<comment><AUTHOR> TerichDB is an experimental repo. We'll take it private to avoid confusion. Thanks for pointing this out.

Regarding the license of our products: the core of TerarkDB is a plug-in for RocksDB. It is loaded as a dynamic library for librocksdb.so and compliant with RocksDB's license. All the code related to MongoDB/MySQL is open source (We use MongoRocks and MyRocks).

Making the core algorithms open source is a dilemma for us. At this stage, as a young startup, keeping the core algorithms proprietary gives us leverage on the valuation and insulates us from potential competitors. But this is something we may reconsider in the future in order to facilitate a wider adoption of our products.

It's a big debate, even for us internally. If anyone else here has been facing the same dilemma, we'd love to hear about your opinion, what you chose in the end and how things turned out.

<comment><USER5> The old quote from Howard Aiken may be relevant here: "Don't worry about people stealing an idea. If it's original, you will have to ram it down their throats."

<comment><AUTHOR> In our situation, making it fully open source for wide adoption would oblige us to become a consulting company with revenue based on support. This would require a large headcount that we cannot support as a mostly bootstrapped startup. So, for now, we decided to focus on the tech and deliver the best tech possible to the (largest) clients who need it the most. Think of it as Quality vs/ Quantity. For instance, as reported in the article, our largest client at the moment is Alibaba Cloud (the Chinese Amazon AWS). We're able to cater to their custom needs and even send our CTO and some engineers to their office to accompany them when needed. We solve a pain point for them on a huge scale, and we're able to make a decent revenue that makes us profitable and allows us to grow our business independently.

But we're open on the question. Our storage engine is also compatible with MongoDB and MySQL, so if we could partner with a large company providing support for MongoDB/MySQL on Terark (think something like Percona, for instance), and that open sourcing all our code was a must, we would consider it.

<comment><USER6> You guys could keep it proprietary then try to get bought out by one of the big guys who would open source it.

</comment></comment></comment></comment></comment><comment><USER7> I really hope someone with vast knowledge of database internals will come here and comment on Terark claims. The blog entry mentioned in the comments is a better source of information than that article.

<comment><USER8> Some of the basic assertions, such as the relative inefficiency of block compression in database engines, are true. I've seen material gains from using context/content-aware compression and some commercial OLAP databases exploit this extensively. They appear to be using many of the same kinds of techniques.

However, the assertions made around caching behavior, such as wasting memory due to double caching, are not generally true. While you will see this in simple/naive database engines, a sophisticated high-performance database implementation won't be designed this way.

<comment><AUTHOR> Thanks. These assertions are here to give a basic background and overview of databases performance in general. The real game changer with Terark is our novel compression algorithm. It's more space efficient, that's one thing, but above all else we can search directly into the compressed data without decompressing it. That's the real breakthrough.

We do that by using a data structure called Succinct Nested Trie, and we've introduced concepts such as CO-Index (Compressed Ordered Index) and PA-Zip (Point Accessible Zip).

We were at first a compression company, and turned to storage engines and database as a domain of application for our algos, hence the analogy with Pied Piper :)

<comment><USER7> How does your technique compare to a typical column store?

</comment></comment></comment></comment><comment><USER9> Is the compression geared towards any particular type of data? Seems like compression that would work well on, say, blog posts, may not work as well on, say, tick-level data from a stock exchange.

<comment><AUTHOR> It works, but it's not the best scenario for us. Scenarios with financial data are most likely sequential read (gimme all data for the last 50 trading days) and write heavy (tick-level write). We're blowing away the rest of the pack when you have a huge haystack and you're looking for the needle in it, that's where you're gonna get a 200x boost in performance with using Terark.

</comment></comment><comment><USER10> [https://terark.com/en/blog/detail/14](https://terark.com/en/blog/detail/14)

<comment><AUTHOR> Yep, this is an article we published on our blog to give a bit of background information on databases performance. It's very general.

For benchmarks on TerarkDB's performance in particular, you can have a look here: [https://github.com/Terark/terarkdb/wiki/Benchmark](https://github.com/Terark/terarkdb/wiki/Benchmark)

</comment></comment><comment><USER11> since Terark is a chinese startup

its founders answered some more questions here

[https://www.zhihu.com/question/46787984](https://www.zhihu.com/question/46787984)

<comment><AUTHOR> Thanks for mentioning it! Yes, for Chinese speakers, our CTO Lei Peng has answered a lot of questions on Zhihu (the Chinese Quora).

</comment></comment><comment><USER12> Maybe I'm alone in privacy concerns, but something behind the "great firewall" scares me a bit to trust.

<comment><USER13> I don't think you send them your data. They send you their technology.

<comment><AUTHOR> That is correct. We simply built a storage engine technology. You run it yourself on your own servers. Everything is open source except for the core compression algorithms that are loaded as a proprietary dynamic library. Being a young startup, we made the choice not to open source this part for now (see my other comment higher in this thread).</comment></comment></comment>


Would you answer this job ad? - <AUTHOR>

     ROCKET FUEL INC HIRING ROCKET SCIENTISTS

 Gang - I know you've already got jobs and you're exited about soon becoming some mountain view company's 16,502nd through 16,547th employees respectively.
I'm happy for you, I really am.  But dudes.  You used to be cool.  What happened?
The last time I recruited heavily at Stanford was 1997/98, when I got 7 of the top 7 students to join me as employees #18 thru 24 at E.piphany.
See http://ai.stanford.edu/~gjohn/fountain98.gif.   I'm not kidding about the ranking, one guy in that photo had A+'s in 12 CS classes.
Two of the people in that photo went on to get CS PhD's at Stanford and MIT, two became professors, one even became a prof at Stanford, three are CEO's of their own companies, the rest went on to high-impact management roles, and they all enjoyed working on hard CS problems with fun co-workers while watching their net worth hit 8 figures.
So it may be worth checking out what I'm up to now, which is disrupting online advertising with advanced AI and CS.  We just hired our 7th employee today, so you can be #8.
We have some job descriptions posted for people who care about that stuff, but if you're smart and good at coding + databases, machine learning, or distributed systems please drop me a note with your resume including grades in Stanford CS classes + SAT/GRE.
<comment></comment><comment>
Some friends and I saw this ad recently and we laughed our asses off at how incredibly arrogant it seemed, but thinking back on the undeniable quality of the team that recruiter assembled, I'm wondering now if we were wrong. Thoughts? Is the ad unbearably arrogant or just funny> </comment><comment><USER2> This ad is full of red flags.

\- It denigrates other companies instead of talking up their own.

\- It talks up past projects of the recruiter, not his current work.

\- It talks about the caliber of individual employees, not their team or culture.

\- It says SEVEN WORDS about the actual company/position.

I'm betting it all leads up to an epic lowball wage.

</comment><comment><USER3> I would never respond to an ad like that. It's more about what's wrong with _me_ than what's right about the _company_. It's like one of those personal ads that ask: where have all the decent men/women gone?????

</comment><comment><USER4> To be honest, sounds like a salesman trying to sell me something as being better than it actually is. And failing. But that's just me.

And BTW, is it just me or does that picture have some (bad) Photoshopping?

</comment><comment><USER5> The ad isn't spell-checked. And, it is quite elitist - sure the Stanford hackers are good, but are they the only good ones, and are they good in the right ways (i.e. creative)?

</comment><comment><USER6> Who cares about the ad? You aren't going to be working with the recruiter. Look at the company and the engineers running it.

</comment><comment><USER7> Take a look at rocketfuelinc.com and judge for yourself. Think it's got a chance to be the next Google? I don't.</comment>


Men Speak 20K Words Per Day and Females 7K - Fact Checking "The Female Brain" - <AUTHOR> http://www.boston.com/news/globe/ideas/articles/2006/09/24/sex_on_the_brain/ <comment><USER2> I wonder if some of this confusion has to do with the way you count words; do you count duplicates or don't you?

One of the studies cited found that men and women talk about the same _amount_ (it was a review, and some of the papers in review found that men talked more.)

However, it's fairly established that women tend to have bigger vocabularies than men; they do better on the verbal portions of the SATs and GREs, for instance.

It's possible that men talk the same amount but are more likely to duplicate words and therefore use fewer words in a day.

<comment><USER3> * it's fairly established that women tend to have bigger vocabularies than men; they do better on the verbal portions of the SATs and GREs, for instance.*

The only true generalization is that there are no true generalizations.

Example: I'm a male. My SAT score breakdown (taken in the 1980s): math 610, language 680. My four-year-old son recently took an IQ test and his language score was 145. Maybe we're not typical, but I'm not even sure the idea that most women have larger vocabularies than most men works. Why are so many of the world's greatest writers and speakers men?

<comment><USER2> Point 1: It's perfectly possible for the average woman to do better than the average male on the verbal portion of the SAT and for the average male to do better on his verbal portion of the SAT than on his math score. Not that that's true.

Point 2: When will you guys stop clinging to anecdotal evidence? Just because most computer scientists are male doesn't mean that there are no female computer scientists, which is a claim analogous to the one you made.

</comment></comment></comment><comment><USER4> Um, the article starts with "Women use 20,000 words a day, men only 7,000"...

<comment><USER5> Seems to be a play on the fact that the article basically goes on to explain that these numbers have no basis in reality.

<comment><USER6> It sure was a good thing I read this article telling me about how that fact I never knew has no basis in reality.

<comment><USER7> About 4 years ago (when this article was written), a book called _The Female Brain_ , by Louaan Brizendine, was published that caused a couple of media outlets to blindly parrot he book's numerous claims of female stereotypes having a scientific basis. The links title is a reference to the stereotype "Women talk more than men", which was 'scientificized' by Brizendine as 'Women talk 20k words to men's 7K'. Mark Lieberman showed that the claim had no basis in the literature, including the paper which Brizendine cited in her book.

More recently, the author has published a sequel _The Male Brain_ , which does the same for males.

Mark Liebermann, the author of the linked article, has recently been featured in a different thread today on Hacker News refuting the claim "There is a scientific basis for why men don't listen (which is also a scientific fact)". <http://news.ycombinator.com/item?id=1240307>

<comment><USER8> IIRC the article cited in her book was actually a study of a dyslexic disorder believed to be inherited on the Y chromosome. The figure comes from the 'males' (the test subjects) and the 'females' (the control) and has no relevance in reality. The reason the researches used females as a control so that there wasn't a risk of contamination in the control (IE an undiagnosed case of the disease).

At least that's the extent of the research I remember doing, my sociology teacher in college made every student track down the citation (which I believe itself was a study citing another's research) to show us the fallacies created when people have a political motive behind their 'scientific' statements.

I'm a writer and I admit I rarely talk, but when I do I'll blow anyone out of the water with quantity of words and vocabulary.

</comment></comment></comment></comment></comment><comment><USER9> Article reminds me of this quote:

"42.7% of all statistics are made up on the spot." - Steven Wright

</comment><comment><USER10> Yet they only listen to 3K.</comment>


Ask HN: What would you ask a recruiter? - <AUTHOR>

I'm starting a video blog where I'll be interviewing companies about their hiring process, what they look for in coders, and just some general information about them.
So what would you ask a recruiter at one of these companies? What do you wish you could know that would get you hired?
(Recruiter here means the point person on recruiter. May be a professional recruiter, may be a founder.)
Let me know in the comments. Cheers!
P.S. If you're a company and you want featured, ping me at email@example.com. I'm also going to feature some developers/designers in the future, so also ping me if you'd be interested in an interview about your perspective. <comment><USER2> What languages/skills do you see becoming the most in demand over the next few years?

</comment><comment><USER3> Why is it so hard to find entry-level work? Why are there far more openings for senior developers and project managers than for second-tier coders, and very few openings anywhere for a first-tier coder with no experience?

<comment><USER4> There's lots of entry-level jobs, they just require a bachelor's degree + 5-8 years of experience and pay 50-60k a year.

On a serious note, I read somewhere that the shortage of entry level jobs is due to the expansion of unpaid/poorly paid internships.</comment></comment>


Examples of data visualization - <AUTHOR> http://www.webdesignerdepot.com/2009/06/50-great-examples-of-data-visualization/

<comment><USER2> Lots of nice examples there, also you may want to check out <http://infosthetics.com/></comment>


Show HN: PearlDB = LMDB and H2O. REST key-value database server in C - <AUTHOR> https://github.com/willemt/pearldb <comment><USER2> That's nice, but why would anyone use this instead of Redis, CouchDB or a local database?

<comment><AUTHOR> The number one differentiator is the small size of the source code. If all you need is a key value server that does GET and PUT, then 1k lines would be easier to understand than +10k. The focus is on doing one thing and doing it well.

Compared to Redis, PearlDB has durability for each PUT on by default. Redis doesn't support an HTTP REST interface out of the box. PearlDB's aim is to be a thin layer between the REST interface and the disk. I think this approach should be faster than Redis for durable PUTs, but that still needs to be confirmed through benchmarking.

Can't compare to local databases because PearlDB is for setups where distributed nodes need access to a single database.

</comment></comment><comment><USER3> Any thoughts on how this could be replicated to multiple nodes?

<comment><AUTHOR> PearlDB doesn't manage replication yet. There are plans to use Raft to get a cluster that is linearisable.

Right now you can put multiple Varnish nodes in front of one PearlDB node, and you'll get an eventually consistent database, ie. when the cache lease runs out it'll fetch the value from PearlDB.

<comment><USER3> Right I get that you can have multiple faux read nodes but I meant more like a active/standby or even active/active write nodes.

<comment><AUTHOR> Nothing like active-standby or active-active at the moment. When Raft gets added in the future it'll have active-active at the cost of read and write performance.</comment></comment></comment></comment>


Spanner: Google's next Massive Storage and Computation infrastructure - <AUTHOR> http://www.royans.net/arch/spanner-googles-next-massive-storage-and-computation-infrastructure/?utm_source=rss&utm_medium=rss&utm_campaign=spanner-googles-next-massive-storage-and-computation-infrastructure <comment><USER2> _Design Goals: ~10^6 to 10^7 machines, ~10^13 directories, ~10^18 bytes of storage (that's 888 petabytes), spread at 100s to 100s of location around the world, ~10^9 client machines._

Simply staggering. I guess now we also have a formal definition of "Google Scale" which the Google PR people always go on about.

<comment><USER3> It's one machine per 100 to 1000 clients. There's many ways to interpret that. On one hand, it's a measure of how much computing Google is doing for clients. On the other, it's an indication of the level of Google's costs per client, and indirectly how much revenue they make from those clients.

It's almost government-scale infrastructure. It's approaching the point where Google is running a machine per street. I wouldn't be surprised if a government made a grab for the local section of this infrastructure in some country within the next couple of decades, whether it's to control their citizens, or to wrest control from the corporation on behalf of their citizens.

</comment></comment><comment><USER4> Jeff Dean is like a god around here. Fact: Jeff Dean was forced to invent asynchronous APIs one day when he optimized a function so that it returned before it was invoked. Also, gcc -O4 sends your code directly to Jeff Dean for a rewrite.</comment>


Objective-C Tuesdays: atomic and nonatomic properties - <AUTHOR> http://blog.ablepear.com/2010/05/objective-c-tuesdays-atomic-and.html

<comment><USER2> Every time I see something like this, I am reminded of my disappointment that such a great language (Objective-C) has somehow been relegated to the ghetto of platform-specific languages, in practice if not in technical truth. I would love to see growing interest in Objective-C development outside of the Apple platform space, where some of us who have little or no interest in Apple but could definitely benefit from the practical usability of a language like Objective-C would be able to do something with it.

When MacOS X first started popularizing Objective-C, I was hoping this would be a good thing for the language in general. Instead, it almost feels like the language has been turned into some kind of proprietary vertical developer community integration plot device, whose sole purpose is (apparently) to get developers locked into working for a single platform, much as VB has served for Microsoft.

Yeah. I'm disappointed, and I just felt like sharing.

</comment><comment><USER3> I'm of the opinion that nonatomic should have been made the default. Most of the time, atomic properties aren't that useful as additional locking will need to be added anyway.

<comment><AUTHOR> I agree. I think it gives the false impression that your properties are "thread-safe".</comment></comment>


We just launched the "Handbooks" section for our yet to launch startup - <AUTHOR> http://gidsy.com/handbooks/making-the-perfect-listing/

<comment><USER2> Design looks great, but makes everything tedious to read. Just show me information in a way which is pleasant to look at. Don't hit me over the head with your design. I get it, it is slick, but design should be enabling, not distracting.

</comment><comment><USER3> Impressive design and effects, but that didn't help me to better understand the instructions. It was more of a distraction.

</comment><comment><USER4> Great work - a bit of a 'form over function', but it at least got me till the end (which few how-tos do).

</comment><comment><USER5> Well, the landing page is just awesome. Good work.

</comment><comment><USER6> Great design, although a pretty crowded market.

</comment><comment><USER7> Great design! Who's the designer?

<comment><AUTHOR> We did it all in-house! <http://www.gidsy.com/team>

<comment><USER7> Cool! I also like your blog at <http://yourneighbours.de/> :)</comment></comment></comment>


The Pmarca Guide to Startups, Part 6: How much funding is too little? Too much? - <AUTHOR> http://blog.pmarca.com/2007/07/the-pmarca-guid.html <comment><USER2> Marc seems to advocate raising a ton of money, and then spending it prudently. Which sounds great, but I've read that many VCs aren't that happy with that plan. They want their companies to roll the damn dice already, grow huge quickly, or flame out quickly (allowing the VCs to focus on their few 'home run' companies). The relevant quote being "once you take a few million of my dollars, the clock is ticking".

Aside from a passing reference to not giving up control, I don't see this concern addressed anywhere in the article. Would a post-huge-money board really be ok with a "save it for a rainy day" money management strategy?

</comment><comment><USER3> andreeson seems to have the same general approach as paul graham, but often differs in the details. for example, it sounds like marc is advocating raising a lot more money than paul would. my impression of graham's funding advice is to get by on zero outside funding dollars, if you can swing it. it would be interesting to hear these two guys discuss things like this.

<comment><USER4> <http://paulgraham.com/guidetoinvestors.html>

See: 22. You need investors.

<comment><USER3> i've actually read that before, but i didn't remember all the details.

okay, so you're both in favor of having investors, but you're emphasizing different points, at least.</comment></comment></comment>


Cooled Nikon D5500a Chills the Sensor for Clearer Star Photos - <AUTHOR> http://petapixel.com/2016/10/11/cooled-nikon-d5500a-chills-sensor-clearer-star-photos/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%25253A+PetaPixel+%252528PetaPixel%252529 <comment><USER2> There is a saying in electronics engineering world: "Every sensor is also a temperature sensor."

What this means is: almost every electronic sensor is affected by it's temperature- from expensive image sensors to cheap MEMS accelerometers and gyroscopes.

That is why many of digital sensors also report their temperature, although that is not their primary purpose- so that current temperature effects on the measured result can be calibrated out either in sensor's logic, or by host software.

<comment><USER3> Erm, you can't calibrate out Boltzmann noise.

<comment><USER4> You can calibrate out the _mean_ "light level" resulting from Boltzmann noise. You can't calibrate out the _variance_ , but eliminating the mean noise is better than nothing.

</comment></comment></comment><comment><USER5> Not quite sure why this hits the front page. Most serious astrophotographers have been using similar setups for a while now, or ideally peltier cooled CCDs (like Starlite Express, Atik or QHY cameras). More recently cooled CMOS sensors (like the ZWO1600MM-Cool) have also gained popularity. It's a bit of niche market, but for long exposure photography having a cooled sensor greatly reduces thermal noise. And since the signal is very faint you often do a lot of "histogram stretching", bringing out the signal, but also the noise. In addition to having a low noise camera you also often do things like bias, dark and flat callibration, reducing impurities further. Dark subtraction is often known as "long exposure noise reduction" in consumer cameras, but astrophotographes like to do it manually. There are a lot of details to consider when doing astrophotography, but I'm always happy I can set my CMOS or CCD (own both the QHY10-OSC and ZWO1600MM-Cool) to a deltaT of -40ºC.

<comment><USER6> The reason that this is on the front page is because not everyone is a serious astrophotographer.

If you find yourself asking "I already know about this, why is this on the front page?" Take a moment, you've just answered your own question.

<comment><USER7> However it still isn't exactly that new or revolutionary... CentralDS has been doing this with Canon cameras for a while now and it looks like P.L.L. has just taken the cooler and retrofitted it to a Nikon this time. Still went with the ASI 1600MM-Cool and MC-Cool based on their prices still being lower _together_ than what they're charging.

<comment><USER8> I know little to nothing of astrophotography, so this article comes as news to me. (I like the article, FWIW.) I wasn't even _aware_ cooling could be used to account for sensor noise. Now my mind is actively aware of the problem and is trying to enumerate other possible means of correction in this, and other, imaging fields.

</comment></comment></comment></comment><comment><USER9> Direct link to the product page which has the same images and description and isn't blog spam: [http://www.primalucelab.com/astronomy/d5500a-cooled- camera.h...](http://www.primalucelab.com/astronomy/d5500a-cooled-camera.html)

<comment><USER10> Meta question: what do you consider spammy about this blog post? It seems like a perfectly fine, digestible narrative of the product without requiring the reader to sift through a product page.

On a more related note, I find it interesting that the product page says there's a 4 year warranty on the camera body. I didn't see anything about the warranty on the mod itself.

<comment><USER11> I agree, the blog post is a much better quality post. Also, I would imagine a direct link to a product page would turn a lot of people off.

<comment><USER9> Oh, looks like the OP link was updated since I posted that. The original link was to Gizmodo: [https://gizmodo.com/this-upgraded-nikon-chills-the-sensor- fo...](https://gizmodo.com/this-upgraded-nikon-chills-the-sensor-for-clearer- shots-1787743794)

I should have linked to the original Petapixel post on the bottom of that Gizmodo page. My bad.

<comment><USER12> Petapixel is half blogspam anyways, a tiny step up from Gizmodo. It was actually banned from r/photography for spam reasons.

</comment></comment></comment></comment></comment><comment><USER13> _Sensor cooling can lead to moisture appearing in the camera, so the D5500a Cooled uses a special anti-dewing system that uses targeted heat to avoid dew drops appearing._

I'd like to hear more about this.

<comment><USER14> These are often called "dew heaters", and are really quite simple. It's usually nichrome wire (e.g. what you see in a toaster), or sometimes a bunch of resistors. The tiny amount of heat generated by these straps are enough to raise the optical port a degree or two above the dew point.

My QHY8 (a dedicated astro CCD) for example has a poor/old design, where the CCD compartment is not air-tight. This allows humid air to get inside, which can then fog up the optical glass due to the peltier cooling the sensor down.

The fix is a small ring that screws into the port, and raises the temperature just enough to combat dew. You could also wrap a dew heater strap around the part of the optical train at that point for a similar effect.

Dew (and frost) are the astrophotographer's great, persistent enemy and not just on the CCD. You'll also have dew problems on the telescope itself. For example, my newtonian sometimes has dew problems on the secondary mirror, occasionally on the main mirror, and always on my guide scope.

Most people just create some DIY dew heater straps with nichrome wire... it's super simple and effective.

<comment><USER13> Interesting. So it's a heating element (wire) which serves as a controlled heater to keep the close environment above dew point. If it's controlled, that is. Maybe it works as a dumb heater also?

OTOH, I've never considered somewhat more performant (not to say extreme) cooling of CMOS in order to eliminate noise. I'm surrounded by CMOS and CCDs every day, in film cameras and telecines (both array and linear chips). I knew, and saw, that temperature can influence noise, but apart from staying within 'normal' operating range, I never considered it would eliminate more noise if significantly cooled down. Probably because I knew noise was inherent to the way those things work and not much could be done to eliminate it altogether. Interesting. I'll try to experiment with a bit more extreme cooling on my equipment to see what yield would come out of it. I'm not that concerned about dew, because equipment is in controlled environment (dry and +-2C deg. stable environment), but nice to know.

<comment><USER14> They are usually "dumb" heaters... literally just some voltage applied to wire (you can read more about them here, along with calculation according to wire AWG and length: [http://www.blackwaterskies.co.uk/2013/05/making-your-own- nic...](http://www.blackwaterskies.co.uk/2013/05/making-your-own-nichrome-dew- heater.html))

A major pain point of dew-heaters is if they are too strong, they induce "tube currents". E.g. the heat from the dew-heater causes the air around the heater to start convecting, which causes ripples in the final image. It's not really visible as ripples, but a general blurring of the image. It's essentially recreating astronomical seeing conditions inside the telescope itself, which is obviously not ideal :)

I think some fancier setups will be "active" and regulate themselves based on ambient temperature, but it's a lot more common for people to over-build their heaters and then use a dimmer switch. So you make your dew-heater for the worst winter night you expect, then dim it down for the rest of the year manually.

</comment></comment></comment></comment><comment><USER15> They're essentially using Peltier elements to cool the elements electronically. They're also using two elements stacked in series for a lower total temp.

Thank god the CCD is small -- a Peltier unit, as a heat pump, is pretty inefficient, topping out a ~15%, at a low t delta. When you stack two on top of each other, the efficiency is now 2.25%, and this only gets worse as the delta increases or more units are added.

<comment><USER16> The CCD also doesn't generate that much heat, so the peltier cells don't need to do that much work.

</comment></comment><comment><USER17> Question to those astrophotographers out there. I notice the cooler has a fan on it, is the fan vibration damped somehow?

I shoot a lot of long distance photos (300mm F/2.8 and 600mm F/4 are my main lenses). Any vibration is greatly amplified when I shoot, and this is a much longer range than that.

<comment><USER18> Good question. I have a peltier cooled ccd (atik 460) and the fan stays on during the entire exposure, but it doesn't affect the final picture at all, touching the camera I can't feel any vibration, but can hear the fan. Quality is much better than in my fanless Canon 400D.

</comment></comment><comment><USER19> There's simply no way that the fans don't cause considerable vibration artifacts for such long exposures. Am I missing something?

<comment><USER20> Peltier cooling does not require a fan, which is why it is often used in precision optics.

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

<comment><USER18> Peltier cooling or heating does require a fan. The peltier cell only moves heat from on side to the other side. Then, you still have to remove the heat somehow (heat doesn't simply dissapear) that's why most peltier setups have fans.

</comment></comment></comment><comment><USER21> If you can't tell the difference between the chilled and regular frame I have to suggest taking the dust out of your monitor, as in certain conditions the difference might not be visible

(I just did that)

</comment><comment><USER22> > "It's the first ever cooled Nikon camera ever for astrophotography,"

* first ever commercial

The technique isn't at all new, even in DSLR space.

</comment><comment><USER23> I recently ran across this homemade camera mod [1] to reduce astrophotography noise. There's some brief notes on creating it somewhere in the creator's (James Tobin) profile [2] but G+ isn't the happiest place to search.

Edit: Found one of them [3]

[1] [https://get.google.com/u/0/albumarchive/11010321236096143315...](https://get.google.com/u/0/albumarchive/110103212360961433158/album/AF1QipNHCy7jXdvjcNpJonAk2aRuyBxEEiIOq329Mloq)

[2][https://plus.google.com/110103212360961433158](https://plus.google.com/110103212360961433158)

[3][https://plus.google.com/110103212360961433158/posts/58k5AgTx...](https://plus.google.com/110103212360961433158/posts/58k5AgTxwku)

</comment><comment><USER24> I was experimenting with visual calibration of my desktop CNC by hooking up one of those cheap USB 1000x cameras. I had done some back of the envelope calculations to figure out that it was about 5 pixels per thousandth of an inch.

After a few hours of getting weird inconsistent results, I finally figured out to my shock and horror that the image was drifting and warping by upwards of 20 pixels after the camera had been one for a while (I think it was 640x480 resolution). My friend and I thought this was due to the CCD heating up and warping.

It looks like they're using the cooling for noise suppression but I bet the CCD also has the same effect I noticed of 'pixel drift/warp'.

</comment><comment><USER25> No way this will beat a dedicated astronomy CCD camera. And price point is already not so attractive, ST-8300C costs $1995 and while has 30% less sensor area, is light years away in thermal current at given temperature, and quantum efficiency. For me, if a wanted a color camera (bad idea most of the time), picking between ST-8300C and this would be a no brainer in favor of ST-8300C.

</comment><comment><USER26> That's really interesting. Better watch out for condensation on the electronics.

<comment><USER27> The actual product page that foenix linked to ([http://www.primalucelab.com/astronomy/d5500a-cooled- camera.h...](http://www.primalucelab.com/astronomy/d5500a-cooled-camera.html)) mentions that there is an anti-dew system for at least some of the internal bits.

</comment></comment><comment><USER28> Given the fact that (correct me if I'm wrong) camera sensors use the same sensor elements for red, green, and blue, but with a different filter in front, it seems strange to me that blue and green are almost eliminated by the cooling but red remains to a large degree. I would expect this distribution if the camera used different photodiode types sensitive to their respective color range.

<comment><USER29> What makes you say that blue and green are eliminated? The stars are still white. The California nebula itself is mostly red.

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

<comment><USER28> I mean in the noise image.

</comment></comment></comment><comment><USER30> Would combining Peltier coolers with CMOS/CCDs on high ISO photos work? How much of the noise at higher ISO is heat, little I'm guessing?

<comment><USER31> Quite a bit, actually. It's why high end telescope CCDs do similar things. A high ISO means you're ramping up the gain, so the bits of random noise get amplified too. Cooling it means you're getting rid of one of the more significant sources.

</comment></comment><comment><USER32> Anyone using liquid nitrogen to cool their CCDs on a hobby / amateur level?

<comment><USER33> Hobby use would be a pain: LN2 could be used, but it boils off so a dewar would need to be constantly refilled. For sensor applications where cold matters but a Peltier TEC is insufficient, a Stirling/Joule-Thomson/turbo- Brayton/Gifford–McMahon cryocooler can be used to remove heat, but they're expensive (this is how the Hubble Space Telescope does sensor cooling). They often have high-pressure LN2, neon, or helium as the working fluid, with a cold head attached to the sensor and a remote compressor. Cryocoolers are also used to chill superconducting RF filters (of the sort that may be used in cell phone towers). They're also used to cool MWIR sensors, and thus are often ITAR-controlled. Sometimes higher-temp cryocoolers pop up on eBay...

<comment><USER34> _Sometimes higher-temp cryocoolers pop up on eBay..._

One of Ben Krasnow's videos comes to mind: [https://www.youtube.com/watch?v=7PWESWqhD8s](https://www.youtube.com/watch?v=7PWESWqhD8s)

</comment></comment></comment><comment><USER35> Is this more effective than dark frame subtraction?

<comment><USER21> No because dark frame removes the systemic differences between sensors, not noise

</comment></comment><comment><USER36> I'm amazed at the difference only 20 C makes.

Does this mean I'd get much better photos in winter than summer?

<comment><USER37> it's not that much of a difference if you're shooting less than 15seconds exposure.

</comment></comment><comment><USER38> I wonder why they didn't pick a full frame camera like the D750. This would make more sense to me.

<comment><USER39> APS-C sensor cameras get you an effective 1.5x multiplier on your focal length, handy for astrophotography.

You could always crop down a full frame photo to get the same effect, but then you're just wasting pixels.

</comment></comment><comment><USER40> Used to do that with an ST6 back in the 90s :)

</comment><comment><USER41> Admins/Mods, can we ban titles that use clickbaity "This"?

<comment><USER42> We almost always edit that out of titles and it's fine if submitters do the same.</comment></comment>


Urbit: an operating function - <AUTHOR> http://urbit.org/preview/~2015.9.25/materials/whitepaper <comment><USER2> For a more accessible alternative approach to all this madness see this mirror project

[https://github.com/tibru/tibru](https://github.com/tibru/tibru)

<comment><USER3> They do say noitatimi is the highest form of yrettalf...

<comment><USER4> You're such a snoc.

</comment></comment></comment><comment><USER5> The architecture is exciting. The problem is that the aesthetics of the tooling seems deliberately designed to alienate new users. For example the whitepaper gives new names to every punctuation symbol!

And poking around the repo, there are gems like this:

"A...variable name is a random pronounceable three-letter string, sometimes with some vague relationship to its meaning, but usually not..."

"Nock, for mysterious reasons, uses 0 as true...and 1 as false..."

The architecture is really cool, but the syntax is terrible.

<comment><USER6> Traditional punctuation names suck. "Ampersand", "at sign", "caret"? For a language like hoon where we use a lot of symbols, that gets really tiring. Having one-syllable names for glyphs is really convenient, and they tend to roll of the tongue. Everyone's free to use whatever names they want, of course, we just find these useful. Most people love these once they get used to them.

I don't think you can judge syntax by looking at it -- you have to use it for a little while. Hoon's syntax looks hard, but it's actually rather pleasant to use.

<comment><USER7> This right here is what I mean when I suggest Urbit is unserious. "Green is just yellow and blue. Why do we call it 'green'? That name sucks. From now on, we're going to call it 'yellue'."

There's overreaching first-principles boil-the-ocean dorm room rethinking of concepts, and then there's renaming the ASCII characters.

<comment><USER3> This definitely counts as a highbrow dismissal!

As I age, I find it harder and harder to remember how easy and natural it is for young people to learn new things: ideas, theories, languages, and yes -- names. Alas, we can't rejuvenate our brains. I know of only one (partial) cure: have your own kids. You'll feel jealous all the time, but it's worth it.

It's painful to admit that I'm probably too old to learn other peoples' new languages. But any new language isn't and can't be designed for 42-year-old silverbacks. It has to be designed for kids -- or at least, people are who are kids now. And believe me, teenagers love this kind of stuff...

[Edit: tptacek, when you edit a comment after posting it, I think it's good etiquette to mark it with an [edit]]?

<comment><USER7> FWIW: I wrote the first half of that comment, then 5 minutes later, feeling it was too snarky without explaining itself, added the sentence: "There's overreaching first-principles boil-the-ocean dorm room rethinking of concepts, and then there's renaming the ASCII characters."

I'm a parent of two teenagers, neither of whom seems particularly interested in new names for punctuation.

<comment><USER3> I understand. And it did improve the comment, so I forgive you. But it's just irritating when someone hangs a fat fastball over the plate, you whack it, then find out that the pitch magically turned into a curveball and all you've hit is a ground-ball single.

An XS Nock shirt is a dress for my daughter, but she loves the "code." I guess all kids are different. But you never know what they're ready to learn until you try to teach them.

</comment></comment></comment></comment></comment></comment><comment><USER8> The aesthetics is what is making this thing possible. Thinking with the old words would not allow development of new things.

I don't know if this is good or bad, but it is sincerely trying to do new things, so a new language is appropriate.

<comment><USER9> New things are developed every day with old words. There are existing words for just about everything Urbit does.

<comment><USER8> You didn't get it. Not radically new things. There are existing words, but using them wouldn't allow the people from Urbit to think about combining concepts in the radically different way they are doing.

In fact, they would end up saying: well, all we are trying to do already exists, so let's just write a library here, another there. You can argue this would be better, but their goal is to do a completely different thing, even if it looks it could be done with a new library for something.

<comment><USER9> No... I got what you meant. But there are plenty of new languages and even reinvent-the-world projects that reuse existing terminology just fine. There's nothing about using existing words that makes it harder to "develop new things"\- in fact, it makes it easier.

</comment></comment></comment></comment><comment><USER10> the concepts expressed in the first section "Obstacles" are interesting and make for good reading, but the implementation strategy in "Definition" are nuts. The authors completely disregard human nature and usability when designing Hoon. Random variable names? Sigils-only syntax? If they want to replace Unix and the Internet, they should remember why Unix won: because it was easy tp get things done.

In Urbit new developers not only have to learn all the new concept words, they also have to suffer through a brainfuck/perl syntax and a hostile programming style. Success seems impossible.

<comment><USER3> Apparent usability isn't the same as actual usability. Pretty much everyone who learns Hoon is surprised by how easy it was, which may be a good thing or a bad thing depending.

There are about a hundred runes (digraphs) in Hoon, but you mostly see only 10 or 15. Also, they're organized by internal structure (all | runes do the same kind of thing), and most runes are macros which resolve to about 20 built-in forms. It's a couple of orders of magnitude easier than learning Chinese, which again may be a good thing or a bad thing.

Variable names designed to be memorable rather than meaningful are pretty normal in both math and functional programming. Math uses Greek letters for the same purpose, for instance. Also, as we note explicitly, this is a style that's optimal for simple code - in any language, you'd probably write add(a, b), not add(left_argument, right_argument).

Actually, Perl originally won because it was easy to get things done. It's had problems since, but for different reasons...

<comment><USER11> Every time I look at Hoon I think "this looks like the same sort of cliff- steep startup followed by 'woah' as vi", but I can never quite get past the cliff as yet.

<comment><USER3> That's exactly what we want you to think. :-)

Don't worry, we'll put up some ropes...

</comment></comment></comment></comment><comment><USER12> Awesome.

'For example, %= sounds like "centis" rather than "percent equals." Since even a silent reader will subvocalize, the length and complexity of the sound is a tax on reading the code.' This is great. Clever how some of the sounds are reminiscent of existing readings.

<comment> david-given "Since even a silent reader will subvocalize..."

Actually, no. I don't.

<comment><USER3> "Subvocalize" has a literal meaning (micro-activation of the vocal cords) which good silent readers avoid. But you're still activating the vocal areas of the brain [0]. If you read much poetry, you'll see that the connection between reading and sound is pretty inseparable.

[0] [http://www.ncbi.nlm.nih.gov/pubmed/23223279](http://www.ncbi.nlm.nih.gov/pubmed/23223279)

<comment> david-given I'm afraid I'm having a great deal of trouble understanding your point here.

> "Subvocalize" has a literal meaning (micro-activation of the vocal cords) > which good silent readers avoid.

Right; so I'm not subvocalising.

> But you're still activating the vocal areas of the brain...

Well, sure. I see the symbol 'cat' and both the memory-complex representing a cat and the audio complex representing the spoken version of the symbol will be activated. That's how memory associations work. The written version of the symbol and the spoken version of the symbol will be strongly associated, because they represent the same concept.

But that doesn't mean I have to wait for the audio to finish playing before I move on to the next symbol. That's a misconception of what's actually happening.

(Plus, of course, hardly anyone reads a word at a time. It's nearly always complete phrases. Frequently not even in the right order.)

> If you read much poetry, you'll see that the connection between reading and > sound is pretty inseparable.

Well, no. Poetry is mostly intended to be read aloud; it's _supposed_ to be subvocalised. It's unrelated to prose (or computer programs).

<comment><USER3> It definitely doesn't mean you have to wait for the audio to finish playing. It does mean that your brain _thinks_ the audio. Which has a lot of consequences, including the energy it takes to think...

Most people do read poetry silently, in the same way they read prose (I don't literally subvocalize), and the sound still is everything. Try reading these two poems silently:

[http://www.mcgonagall-online.org.uk/gems/the-tay-bridge- disa...](http://www.mcgonagall-online.org.uk/gems/the-tay-bridge-disaster) [http://www.poetryfoundation.org/poem/174183](http://www.poetryfoundation.org/poem/174183)

<comment> david-given > It does mean that your brain thinks the audio.

I'm sorry, that's simply not true. At least for me. It may be true for you.

From the things you've said, I suspect you're a word-at-a-time reader, treating words as a sequential symbol stream, processing them as if they were speech. This is just one of the several different styles of reading. Others exist.

I am, as I mentioned above, a phrase-at-a-time reader. I take in multiple symbols at a time, and not necessarily in sequence. If I had to think through the audio of a phrase, this simply wouldn't work. It also means that I would be unable to read symbols that didn't have an audio equivalent.

Right now I'm working with Smalltalk. One of its operators is ~~. How is this pronounced? Don't know, don't care. It's just ~~. When I perceive it, I don't perceive 'tilde tilde'; it's a ~~.

(Also, if you aren't reading Scotland's worst poet aloud, you are _wasting_ him.)

<comment><USER3> I read more like a page at a time. Some might accuse me of being a page-at-a- time writer.

Compare the way you perceive "~~" to the way you perceive "++". I hear these as "sig sig" and "lus lus". (Or rather, as "slus," because that's a further Hoon abbreviation, but never mind.) You don't hear the former at all; but you hear the latter as "plus plus," don't you?

This is because "tilde tilde" is so heavy your brain doesn't want to do the work of hearing it out. But overriding that connection doesn't save energy, which is why you do hear "plus plus." Your brain has to think the very complicated little thought, "squiggle I don't want to pronounce." It would much rather have a sound.

It's torture enough to read McGonagall silently. Out loud? Who would try that? It's tantamount to suicide.

<comment><USER13> > You don't hear the former at all; but you hear the latter as "plus plus," > don't you?

I really do not. A short silence, both of them. I suppose it depends on how you normally code. I have never had a need for speaking out code and am not well versed in it.

<comment><USER14> I experience reading similarly to you. I will often become familiar with written words before I know how to pronounce them. When I want to say the word for the first time, I will have to pause and think about how it would sound out loud.

This is especially true of code and symbols. For example, consider this poem

> is it already too dark > to play tennis with a racket > i asked? > while I > code with [

and contrast with this one

> The house filled with laughter > from mother and daughter > Both were fiends > > but neither friends

or even better, combine the two

> I never used a ~ > as well as Oscar Wilde

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Interesting stuff, but in my usual 15 minutes of attention-span for things like this, utterly impenetrable. Can anyone who has had the privilege of being invited to the Urbit network enlighten us as to just how useful it is shaping up to be in light of, say, the situation with IPFS by comparison? ([http://ipfs.io](http://ipfs.io)) Because to me, it seems that IPFS may well be ahead in terms of actual applicability right now. Am I mistaken?

<comment><USER16> >Interesting stuff, but in my usual 15 minutes of attention-span for things like this, utterly impenetrable.

It's pretty much designed to be as hard to understand as possible.

Look at the source/demo videos - it seems like it's designed to be obfuscated.

[https://github.com/urbit/urbit](https://github.com/urbit/urbit)

[http://urbit.org/preview/~2015.9.25/materials/part-i](http://urbit.org/preview/~2015.9.25/materials/part-i)

Personally, I can't get over the really made up words.

<comment><USER17> You mean that out of all the things in this combinator [0] flavored abstract rewrite system [1], programmed via a symmetrical [2], forward-inferenced [3] typed language, exposing modula-2 style per-code-block compilation control [4], all designed to support a content centric [5], natively networked [6] global computing environment with sovereignty-hard siloing capabilities [7], the most difficult part to understand is the naming scheme?

Edit: In the early Urbit docs [8] there was a nigh ad nauseam emphasis on the "stupidity" of the project. What the epiphany of careful inspection revealed was that this stupidity was not that of intellectual deficiency, but rather opposition to "cleverness" of the kind that tends to foster (and infest) Urbit's peer group of deep stack [9] rebuilds. One of the most insightful comments I've heard after springing Urbit on unsuspecting PL professionals was (paraphrased): "It [Urbit] does all the things we've said we wanted, in the worst possible way." All words are equally made up until grounded in referents. The question is, are the Worfian shorthands new words provide worth the cost [10] of expanding the symbol table, as compared to the interpretation overhead of translating new concepts into old? Under the burden of internalizing all the content linked below and more, I judge new vocabulary justified.

[0] [http://www.ucombinator.org/](http://www.ucombinator.org/)

[1] [https://en.wikipedia.org/wiki/Abstract_rewriting_system](https://en.wikipedia.org/wiki/Abstract_rewriting_system) (ARS being the most mechanical of the pure computational models outside reversible logic)

[2] [http://tunes.org/wiki/symmetric_20lisp.html](http://tunes.org/wiki/symmetric_20lisp.html)

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

[4] [https://en.wikipedia.org/wiki/Modula-2#Description](https://en.wikipedia.org/wiki/Modula-2#Description) (see Definition/Implementation modules)

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

[6] [http://netcentriccomputing.org/](http://netcentriccomputing.org/)

[7] [https://en.wikipedia.org/wiki/Capability- based_security](https://en.wikipedia.org/wiki/Capability-based_security) (not yet fully implemented)

[8] [http://moronlab.blogspot.com/2010/01/moron-lab-goals- princip...](http://moronlab.blogspot.com/2010/01/moron-lab-goals-principles- rules.html)

[9] I won't say full stack, because the reshaping blade only penetrates OS deep. For a hardware-grounded reset, see good old Loper OS ([http://www.loper- os.org/?p=8](http://www.loper-os.org/?p=8)).

[10] Because words are context dependent, this expansion is only logarithmic with respect to the increase of immediately referable concept space.

<comment><USER16> That's not at all the thing that I have the hardest time understanding, you're right - it's just the thing, along with CY's past, that makes me stop taking it seriously, although it is an interesting idea if it were implemented in a way that didn't attempt to be as arcane as humanly possible.

<comment><USER17> Arcanity is relative to experience, so the ASCII phonemes can indeed be the most stymieing element of this experiment in futurity. However, what do you think of the phonetic numeral system? Compared to other protocols that map identity to a unique point sha256 space, "~hex" is no worse than "46", and "~fantyv-ralpen" is obviously better than whatever is its corresponding number; Urbit's vocalizable number to name mapping is possibly its most obviously correct (to me) and portable innovation.

</comment></comment></comment></comment></comment><comment><USER18> This seems to come up at regular intervals. It's worth noting that the architects of this system are the "facist teenage Dungeon Master[s]" of [http://thebaffler.com/blog/mouthbreathing- machiavellis](http://thebaffler.com/blog/mouthbreathing-machiavellis)

<comment><USER19> That doesn't seem worth noting.

</comment></comment><comment><USER6> Front page with demo videos: [http://urbit.org](http://urbit.org)

<comment><USER17> Currently under delightfully heavy load, it would seem, since I can icmp but not http it.

<comment><USER6> Sorry, whenever we push updates we have a brief period of inavailability. Should be working now.

</comment></comment></comment><comment> a-dub The backup plan is to typeset and publish the mailing list as a collaboratively written science fiction novel in the event that the main project fails...

</comment><comment><USER20> This is a really interesting read. I'm excited for urbit now!

</comment><comment><USER8> The best tagline for the project is what is written on the whitepaper, that a planet in Urbit is "the browser for the server side."

</comment><comment><USER21> The flaw in this white paper is that it starts by explaining the solution instead of the problem. So everyone should start by skipping to the bottom and reading the conclusion:

>In 1985 it seemed completely natural and inevitable that, by 2015, everyone in the world would have a network computer. Our files, our programs, our communication would all go through it.

>When we got a video call, our computer would pick up. When we had to pay a bill, our computer would pay it. When we wanted to listen to a song, we'd play a music file on our computer. When we wanted to share a spreadsheet, our computer would talk to someone else's computer. What could be more obvious? How else would it work? . . .

>The Internet didn't scale into an open, high-trust network of personal servers. It scaled into a low-trust network that we use as a better modem — to talk to walled-garden servers that are better AOLs. We wish it wasn't this way. It is this way.

This is the problem Urbit aspires to solve: _Why does everything suck_? Why aren't we living in the future we were promised in 1985, where everything is easy because all software plays nice together? Why do we have a planetary series of Rube Goldberg machines instead of the fun version of the Borg?

The answer is that we've been building everything on top of leaky abstraction, piling band-aids on top of band-aids instead of just starting with a stable foundation. Urbit's solution is to replace every OS, file system, and communications protocol on Earth with a single application: Urbit.

The project is _meant_ to be the biggest pain in the ass ever. It's an attempt to fix everything that is wrong with computers by rebooting the entire information age.

The beauty is that it doesn't all have to happen at once. Urbit can function like a kernel for all non-Urbit systems: They get to call Urbit to receive its super-reliable data, but it never makes system calls so they can't inject side effects into the shiny new Urbit ecosystem. Over time, if Urbit works as intended, it will assimilate everything else.

Once you understand the stakes, Nock and Hoon no longer look like cruel jokes. It would be madness to expect coders to invest all that effort to learn 'just another language.' It's only pseudo-madness to make the same demands while promising that their code will still work a million years from now, because all computers will still be running Urbit.

Instead of caviling about details like how to pronounce the code when reading it aloud, let's delve into the issues that really matter:

I. Does modern computing suffer from a leaky abstraction problem that needs to be solved?

II. If so, is the solution to build an overlay network that provides a global static functional namespace?

III. If so, is Urbit a viable implementation of that solution?

IV. If so, what is the likelihood of Urbit reaching the critical mass necessary for mass adoption?

The last question is the one that interests me the most. In order to overcome the massive inertia behind legacy computing, Urbit needs a killer app: Something that exploits the new system's intrinsic advantages to accomplish feats that were previously impossible.

So... uh... Any suggestions?

<comment><USER3> A hint: consider the difference between calling web APIs from a cloud appliance controlled by a third party, versus calling web APIs from a personal server controlled by the user.

A new network has no Metcalfe's law effect by definition. So an important early skill is parasitizing existing networks...

</comment></comment><comment><USER22> I've always heard: do one thing and do it right. It's the Unix philosophy, before it was totally disregarded.

Urbit seems to take the total counterpoint of this advice, and I wonder whether it's a good idea.

What I don't get is what it is trying to achieve. The stated goal are too abstract. What are some use-cases? Is it really necessary to scrap the whole OS and languages to achieve these goals?

I do sympathize with the idea of rewriting everything from scratch, and I too feel that "almost everything is terrible" in software-land. But I doubt rewriting everything without having a firm grasp on the underlying issues is the way to go. It it a fun exercise, and inspiring besides, but I'm unsure it can be more than that.

</comment><comment><USER23> isnt this basically the same idea as plan 9, but with some more opinions on "decentralised" networks.

<comment><USER17> To the depths of my familiarity, Urbit is basically the same, to some shade or degree, including but not limited too, the ideas listed here: [https://news.ycombinator.com/item?id=10279931](https://news.ycombinator.com/item?id=10279931)

</comment></comment><comment><USER24> If things are really so screwed up, and we need to recover the dreams of the past, why not "recurse on the idea of the computer", and invest in something like Pharo Smalltalk instead?

</comment><comment><USER25> Reading anything from them always reminds me of TempleOS. There are some hilarious gems if you skim it, like "Urbit is highly intolerant of computation error, for obvious reasons, and should be run in an EMP shielded data center on ECC memory."

<comment><USER26> I always think of TempleOS as well. Both project maintainers have created some impressive and/or interesting technology that is hindered by inflated self importance and being different for the sake of being different. Another common point - HN has a soft spot for both and upvotes most content related to these projects.

<comment><USER3> It'd be interesting to hear a more detailed description of what you'd classify as "different for the sake of being different."

There's certainly plenty of code in this world that's the same for the sake of being the same. It's not terribly interesting to use CGA graphics for the sake of being different. On the other hand, I do wonder whether my children will grow up learning 1970s programming for the sake of being the same.

<comment><USER27> One example is that they flipped the meaning of 0 and 1 in their new language.

>We should note that in Nock and Hoon, 0 (pronounced "yes") is true, and 1 ("no") is false. Why? It's fresh, it's different, it's new. And it's annoying. And it keeps you on your toes. And it's also just intuitively right.

<comment><USER3> I'll give you that one! It's an old mistake and not very costly in practice, but the intuitive rightness isn't worth the pain in the butt. But the pain in the butt also isn't painful enough to match the difficulty of fixing it.

I actually got this bad idea from Unix: !strcmp(), etc. It's certainly easier to overload error codes into a 0=true scheme, although Urbit doesn't actually do that.

<comment> david-given "It's an old mistake and not very costly in practice, but the intuitive rightness isn't worth the pain in the butt."

Why is it intuitively right?

<comment><USER28> "a string can be slack in many ways, but taut in only one"

0 is true, everything else is false. At least that's my intuition.

<comment><USER29> Huh! Pretty similar to my comparison to Tolstoy's quote on happy and unhappy families.

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

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> I think it's important to note that Urbit - a very interesting piece of work that deserves more attention - would've been presented at Strange Loop if not the PC crowd made Strange Loop disinvite Curtis Yarvin (the creator of Urbit) for reasons unrelated to Urbit. Using throwaway for obviously reasons.

<comment><USER3> I obviously find this a very interesting subject. However, I suspect there are better times and places to discuss it...

<comment><USER30> I don't mean to take attention away from the real conversation here. However, there are a lot of people who are unaware of the back story, and this seems like a good place to make people aware of it.

</comment></comment></comment><comment><USER31> JavaScript needed to be able to read text document. Next.

</comment><comment><USER32> I got as far as the first mention of Hoon, and then I thought to myself, "Oh fuck, didn't I read this a year or two ago?" It's all downhill from there.

</comment><comment><USER33> I do computing daily i.e. I use the internet like anyone else, and I use Emacs for feeds, mail, writing, programming little tools in elisp etc. Now after having read this, I cannot see how it be supposed to improve my daily computing routine. I think that it is indeed revolutionary this Urbit thing, in that it is as opaque and unpractically idealistic as any other revolution.

</comment><comment><USER34> "Do users want their own general-purpose personal cloud computer?"

No, they do not.

General purpose computers, as such, are useless and boring. They are only useful when converted into one or more appliances. Modern OSes are very good at this. Cloud general purpose compute exists. Its niche to the community of appliance builders, because nobody has any use for it directly.

<comment><USER8> "in the cloud, all users have is a herd of special-purpose appliances".

The argument of the whitepaper is that our current internet and Unix environment does not allow for anything else than a cloud with lots of special-purpose appliances, but that does not mean this is the desirable situation, neither for the appliance builders nor for their users.</comment></comment>