Design Principles Behind Smalltalk (1981) - <AUTHOR> https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html <comment><AUTHOR> I read the closing remarks:

        Natural Selection: Languages and systems that are of
        sound design will persist, to be supplanted only by
        better ones.

and thought of Bob Martin's _What Killed Smalltalk Could Kill Ruby_ [1]. The technical merits of Smalltalk are such that few claims "to do objects better" are taken seriously. But the lesson of Smalltalk is that "better" isn't just in the technical details. It lives in the model of community that it's speakers adopt. People speak C and JavaScript because they rode along free with Unix and the browser. Even in it's darkest days, Lisp tagged along in AutoCad and Emacs. These languages had practical purposes that let them compete outside of the "what language should I build my next project in" marketplace and outside the segment of professional software developers.

Smalltalk was killed by its business models. Without runtime licensing, providing a REPL meant that every application would come with a free copy. Not providing a REPL meant knee-capping the application.

[1]: [http://www.youtube.com/watch?v=YX3iRjKj7C0](http://www.youtube.com/watch?v=YX3iRjKj7C0)

</comment><comment><USER2> I've never thought about creativity in this way:

        If a system is to serve the creative spirit, it must be
        entirely comprehensible to a single individual.

As a UX designer and investor, I'm constantly worrying about creeping complexity in interfaces and companies. Cluttered thought and execution has always been the enemy for me, but always in service of better conversion, execution and flow. The limits complexity brings to creative potential...that's a new articulation for me and an exciting one to think about.

</comment><comment><USER3> The key ideas were message passing, isolation and polymorphism, not a hierarchy of classes - it is just one lesser aspect. Drop it, and you would have Erlang.)

Notice how original insights were so fundamentally different from this Java we have now.)

<comment><USER4> I don't see it that much difference and I used VisualWorks for Smalltalk at the university, right before Java was announced to the world.

Given my experience in OOP frameworks since the early 90's, I would say if Smalltalk had won, we would nowadays have SmalltalkEE.

<comment><USER5> Java was heavily influenced by Smalltalk but written by and for old C/C++ hackers. Java's success meant Smalltalk's demise.

<comment><USER6> Not quite, the influence was mostly indirect.

Java was most heavily influenced by Objective-C, Patrick McNaughton was really into NeXTSTEP and almost left Sun for NeXT but was given a carte blanche by Scott McNealy to create something new. Championed by James Gosling and Bill Joy, Stealth/Green/Oak/Java pivoted in a bunch of different directions, but very few of the developers were C/C++ guys, in fact, the project was largely a reaction to Sun's dependence on C/C++.

Sources:

[http://cs.gmu.edu/~sean/stuff/java- objc.html](http://cs.gmu.edu/~sean/stuff/java-objc.html)

[http://www.blinkenlights.com/classiccmp/javaorigin.html](http://www.blinkenlights.com/classiccmp/javaorigin.html)

<comment><USER7> Of course, ObjC was very heavily influenced by smalltalk, but wanting to create something compatible with C led to some basic divergence, with C's "closer to the metal" level than smalltalk.

Of languages still in use, I think ruby is probably the most influenced by smalltalk. I don't know if I've read Matz actually revealing this (maybe I just haven't googled hard enough, or maybe it's there in Japanese somewhere), but the influence is pretty evident from the outcome.

<comment><USER4> Groovy also has its share of Smalltalk influence.

But no language can really claim the Smalltalk spirit without a similar work environment.

<comment><USER7> Yeah, doesn't Groovy come about as trying to make something ruby-like though? I think it gets it's smalltalk influence through ruby, but I dunno.

I was never actually a smalltalk user, it's work environment is not the attractive part of smalltalk to me, in fact it makes me shudder in horror to not be able to use an ordinary text editor to edit code, ordinary unix tools to search it, ordinary source control to store it and diff it as text, etc. -- to need custom language-specific tools for all of these things. Although I understand actual smalltalk users did like it and miss it.

<comment><USER8> > doesn't Groovy come about as trying to make something ruby-like though?

Groovy's changed its direction many times. It was started by James Strachan in 2003 as a better Beanshell, with closures from Ruby and collections syntax from Python added. Its present PMC chair Guillaume Laforge came along in 2004 and changed its direction by focusing on the Ruby side only, translating Ruby's libraries into Java for Groovy, with the intent to build a JVM clone of Rails and chip into its market share. Tech lead Jochen Theodorou in 2005-2006 helped build the meta-object protocol that Grails also uses. Groovy's direction changed again in 2011 when Cedric Champeau duplicated the functionality of Alex Tkachman's Groovy++ addin for Groovy 2, enabling static type inference and compilation, thus becoming a language to compete with Java instead of complimenting it as before. And in 2014 Groovy suddenly branched out into targeting Android.

To top it all off, Groovy lost its sponsership and changed it governance only this year, so who knows what changes in direction that will all bring. The backers of the two primary apps using Groovy seem to be at odds with each other, viz, the Grails consulting group at OCI, and Gradleware which employed some of the retrenched developers.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> > _Messages: Computing should be viewed as an intrinsic capability of objects > that can be uniformly invoked by sending messages._

"Computing ... as an intrinsic capability of objects" \- I'd call this the basic misconception of OOP.

<comment><AUTHOR> Why would you call it that? I don't understand.

<comment><USER9> We typically divide programs into data structures and code. The problem with combining them into objects is that there is often code that does not correspond to a single data structure.

"Kingdom of nouns" talks at length on the subject. But basically, "object" as "code plus one data structure" is not a design panacea.

<comment><USER10> Of course it's not as bad in SmallTalk as it is in Java, to use those two as stand-ins for dynamic vs. static typing and I would change your comment to "The problem with combining them into _classes_ is..."

In SmallTalk I would write code that operates on any object that can respond to some set of messages so the coupling is much looser.

</comment></comment></comment></comment><comment><USER11> This seems to get posted once a month if not more. It's a great historical document, though.

</comment><comment><USER12> Please fix the typo in the title. It does not appear in the original article.</comment>


For Inventor of Eudora, Great Fame, No Fortune (1997) - <AUTHOR> http://www.nytimes.com/library/cyber/week/012197eudora.html <comment><USER2> He did just fine:

[http://blog.fawny.org/2015/07/04/stevedorner/](http://blog.fawny.org/2015/07/04/stevedorner/) "Qualcomm Contrary to rumour, Qualcomm, which had bought Eudora early on from the University of Illinois, had always treated him well, he says. ("I am very happy to correct that impression. I was not shafted by Qualcomm. Qualcomm did very well by me." And actually, Steve worked for that company for over 20 years.) He doesn't have to work anymore – "and that is a blessing – it's a blessing, it really is. It's nice not to have that pressure. On the other hand, I've been retired now for little more than a year, and I do look around and question why I'm not being productive.""

</comment><comment><USER3> My first job in tech was on an ISP helpdesk starting in 1999. The most common setup for our customers was: Windows 98 or 95, Internet Explorer and Outlook Express.

It became unofficial but conventional practice for most of the staff, that after you'd spent enough time trying to help a customer get Outlook Express working without success, to recommend they install Eudora.

It wasn't pretty, but it just worked.

Eudora was a perfect example of a product that did one thing but did it right.

Whilst Microsoft was building Windows, IE and OE to be deeply integrated with one-another, Eudora just sat there minding its own business, doing a really great job of handling your mail.

I still think about this now when building products.

It's so often tempting to think the answer to your product problem is to add more features or integrate it with some other app or system.

But I always have Eudora as a reminder of the value of doing just one thing but doing it really well.

<comment><AUTHOR> Woz liked it, too:

"Wozniak was a Eudora user for the longest time," Steve says. People gave Wozniak shit for it. He used Eudora, Steve says Woz replied, "because I can put anything on the damn toolbar." Eudora could put any menu item with any modifier combination into a toolbar button. Now nothing else can or will. The message from today's software, Steve says, is "You do that a lot? Too darned bad. Not gonna go on the toolbar."

<comment><USER4> 'Anything' included scripts. I used this heavily when I was moderating mailing lists — F5 Accept, F6 Reject.

</comment></comment></comment><comment><USER5> Alas it happens all the time.

See Gary Kildall (MS-DOS originated from from his CP/M but he never saw a dime of royalty) and Phil Katz (PKZIP, note how the Zip file format uses "PK" as magic number).

I've always wondered if the bitterness of having lost their big occasion caused them to die prematurely, the former in a biker bar brawl and the latter of alcoholism at the age of 37.

<comment><USER6> > _Alas it happens all the time._

In the field of computing, I think the greatest contribution to the world vs least fame & fortune goes to the inventor of the World Wide Web.

It's sad that outside of the computing world, Tim Berners-Lee is unknown. Asking your dentist, aunt, or barber about who they think invented the web leads to some amusing replies.

I've actually done this and after telling them about Berners-Lee, I found the following themes to be common:

(1) Incredulousness that it was one person. People either think it had to be a big company or that it somehow "evolved" into existence (you know, the way television or photography just kind of happened without any particular persons being involved /irony).

(2) Belief that he chose to not accept the money. That is, he could have made a fortune if he wanted to, but for unspecified reasons he didn't want the money. I've tried to explain that the web wouldn't have succeeded if he tried to charge for it (even assuming that CERN let him charge for it), but there's a popular belief that great work always gets rewarded unless one explicitly opts out of the reward.

AN ASIDE: I think that in all human endeavor, the record for _greatest contribution to the world vs least fame & fortune_, where the inventor is truly known, should go to Cai Lun (also spelt Ts'ai Lun), the inventor of paper. He's a real person and historically well-documented as the actual inventor of paper:

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

<comment><USER7> What's even more a shame is that many people in the computer industry don't respect TBL's invention and accomplishments either!

I'll borrow a phrase from Paul Graham and call it the "middlebrow critique" of the web. Typically people think the design is naive and inefficient -- they think it should involve a stateful protocol, a turing-complete VM, or be more "statically typed". They also tend to believe in "global truth" and neglect backward compatibility / graceful upgrades.

I've heard a variety of accomplished engineers -- including my coworkers at Google, whose riches were built on the web -- express these kinds of sentiments.

I think the real disconnect is that TBL thinks about people just as much as he thinks about computers. He thinks about the ecosystem -- the whole rather than the parts. The inventions and design principles were not an accident; you can read about them in his book "Weaving the Web".

<comment><USER8> The whole stateful/stateless choice isn't intuitive unless you've at least read discussions about a few protocol designs/implementations which made these choices. It isn't about intelligence.

No wait, I might be wrong here -- this _ought_ to be obvious for people so young that they grew up doing web programming? Do educated developers really say that?

(I haven't followed the rfcs for quite a long time, so I probably do lots Dunning–Krugers myself now. :-) )

Edit: I remember when WWW took over from Gopher. I thought "Damn, a superior alternative that won't win because a first-come implementation already filled the niche." Then came Mosaic which could show pictures -- and WWW took over. I was happy and disgusted at the shallowness. :-)

<comment><USER9> One of my favorite Internet artifacts is Marc Andreessen's proposal for the IMG tag -- note he used all caps.

[http://1997.webhistory.org/www.lists/www- talk.1993q1/0182.ht...](http://1997.webhistory.org/www.lists/www- talk.1993q1/0182.html)

</comment></comment></comment></comment></comment><comment><USER10> This article was written in 1997. In 1999 Qualcomm stock went up 26 times (2600%). If he were still at Qualcomm (Edit: Wikipedia reports that he was with Qualcomm till at least 2006)... Back then companies were still generous with options and principal engineer at Qualcomm was quite senior.

<comment><USER11> That's a little misleading. Every tech stock in the world sky rocketed in 1999, and then they all tanked.

Qualcomm topped out at $88 a share in 1999, and was under $14 in 2002. Still up 3.8x, but nowhere near 26. It's increased since then, but even right now it's only $48.

<comment><USER12> You don't have to wait until retirement to sell shares.

<comment><USER11> Obviously. People also don't typically sell shares right at the top of a bubble, either. Look at the graph on Yahoo. The shares were $88 for like a day. Very unlikely he made 26x.

</comment></comment></comment></comment><comment><USER13> I've been using Eudora since 1995. Lack of UTF-8 support is causing problems now... I'll be moving to another client soon. Recommendations more than welcome!

<comment><USER14> If you're running Windows, try Pegasus Mail[1], it's a contemporary of Eudora, but is still maintained, and supports UTF-8. Releases are pretty infrequent of late, but email is still email, so things still work. :)

[1] [http://www.pmail.com/](http://www.pmail.com/)

<comment><USER15> I actually bought a copy of that years ago, or rather paid for a manual which was the way you supported the author in those pre-Millennial days.

I tend to use sylpheed on Linux at home now when I need an off-line client.

</comment></comment></comment><comment><USER16> Alas! I used Eudora well into the OS X days, by which time it was abundantly clear there would be no further development thereon. I still rather miss it - I loved the way I could open a new window, and have it be completely ready absolutely immediately, rather than first having to consult a lengthy database.

Around 2002 or so, I finally conceded, and went with OS X's own Mail. Not nearly the same, but - adequate, and viable for the future.

I was also touched to see mention of CUSeeMe. Ah, how we all nearly avoided Skype!

</comment><comment><USER17> Kudos to Eudora. Brings back memories. I am 33 years old, but it seems like eons ago.

Anybody else remember:

        Kai's Power Tools (smear and smudge images)
        Hotline Communications (Warez)
        Real Player (Arrggg so much nerd rage)
        Claris Home Page (remember DHTML)
        ICQ (the original Slack)
        Winamp (awesome media player)
        3dMark (graphic card benchmark)

<comment><USER18> I'd add Napster to that list too. Pretty revolutionary for all the wrong reasons!

Paint Shop Pro and WinRAR as well. :)

</comment></comment><comment><USER19> I loved the quote by the founder of CU-SeeMe, good to see they are still around (chuckle):

[http://www.wpine.com/](http://www.wpine.com/)

</comment><comment><USER20> "Waste cycles drawing trendy 3D junk"

Always wondered if that was indirectly aimed at me....

<comment><USER4> "Help stamp out flying e's"

And of course <x-eudora-setting:319=32>

</comment></comment><comment><USER21> I started using Eudora when I first got to college. It was my way of keeping in touch with my old friends who I moved far away from.

I can still remember the .wav file that played when I got mail (and spam was not as common those days so it was always happy mail).

</comment><comment><USER22> I used to work for an ISP back when anybody could start one. We shipped new customers a single 3.5" 1.44MB floppy with some shareware to get them started: a dialer program, a browser and Eudora on it... _one_ floppy.

</comment><comment><USER23> Thanks, Steve Dorner. I liked Eudora a lot.

And now I always remember what happens when you chop off a branch while sitting on it (a question on Eudora's help menu).

</comment><comment><USER24> Loved Eudora back in the day</comment>


Using bacteria to make self-healing cement - <AUTHOR> https://www.thestructuralengineer.info/news-center/news/item/589-using-bacteria-to-make-self-healing-cement <comment><USER3> >Being mixed with concrete and distributed evenly throughout it, they can lay there in a dormant state for up to 200 years; only when the concrete cracks, air and moisture awaken the bacteria which use the calcium lactate as a food source and start to produce limestone, sealing off the cracks in 3 weeks' time. The technology, currently able to seal cracks of any length but only up to 0.8 mm wide, was a finalist for the European Inventor Award 2015, an initiative of the European Patent Office (EPO).

That's brilliant. I wonder what the cost increase would be for including this solution v. the cost of traditional repairs.

<comment><USER4> The article says it costs about twice as much.

> Currently the cost of this new technology is still considered prohibitive, > as it is twice the cost of regular concrete manufacture (70-80 € / m3), > making it only viable for projects where leakage and corrosion are > particularly problematic, such as underground and underwater structures.

What's funny to me though is that they consider this cost prohibitive despite the expected theoretically longer life without replacement or maintenance.

<comment><USER5> How often do you think most concrete structures (with only minor cracking like in the article) undergo serious rehab? Maybe once in their service life.

Also, when planners are choosing between alternatives, net present value (NPV) is calculated which takes into account predictable maintenance, so the cost of future repairs is already considered in these decisions.

Civil engineering is also not computer engineering. There is no agile development and you have to get it right the first time. The industry as a whole is not quick to adopt new technologies without seeing them proven in the field relatively thoroughly.

<comment><USER6> > Civil engineering is also not computer engineering. There is no agile > development and you have to get it right the first time.

Eh, that's a little overstated. You'd be surprised how many buildings and bridges have major refits when it becomes obvious that their design didn't live up to expectations.

<comment><USER7> There's a youtube video about a hybrid version of that, some famous civil engineer forgot a tiny detail in a massive project. Student of his raised the issue, he actually listened, and managed to plan a last minute redesign/overhaul without anybody knowing (at first).

<comment><USER5> It's the Citicorp tower you're talking about.

<comment><USER7> most probably, and thanks to you, I found the video again

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

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Fun Fact: Much of the Great Wall is still in very good condition thanks to its amazingly resilient mortar. The secret ingredient: sticky rice.

[https://www.telegraph.co.uk/news/worldnews/asia/china/778584...](https://www.telegraph.co.uk/news/worldnews/asia/china/7785842/Great- Wall-of-Chinas-strength-comes-from-sticky-rice.html)

<comment><USER9> I love hearing about possibly competitive low-tech solutions.

</comment></comment><comment><USER10> <puts down Cat's Cradle>

"Are you double-dog sure this stuff can never get out in the wild?"

<comment><USER11> There is absolutely no way this could possibly go wrong.

<comment><USER12> While I'm sure I agree with you, this comment reads like some famous last words!

</comment></comment></comment><comment><USER13> The materials scientist Mark Miodownik discusses this and other miracles of modern, well, materials science in his marvellous book "Stuff matters" ([https://books.google.com/books/about/Stuff_Matters.html?id=_...](https://books.google.com/books/about/Stuff_Matters.html?id=_5yUAwAAQBAJ)). I found it fascinating—though, fair warning, the material on cement was by far the most fascinating to me.

<comment><USER13> By the way, I just discovered he's got a new (to me) book, my copy of which is titled "Liquid rules" (apparently a later printing of a book originally just called "Liquid") ([https://books.google.com/books?id=7p_FwQEACAAJ](https://books.google.com/books?id=7p_FwQEACAAJ) ).

</comment></comment><comment><USER14> What's cool about this is could it save the cost of making expansion joints?

Edit. What I mean is you could do really big pours instead of sections. Think a mile long sidewalk with no sections.

<comment> munk-a I don't believe so - those expansion joints exist IIRC to account for the fact that cement is quite temperature volume stable... but it isn't temperature inert. The seasonal temperature swings cause expansion and shrinking of cement and, especially on the scale of a bridge, those slight volume changes add up.

I imagine this tech would allow shrinkage during the winter to be automatically repaired if it manifested as hairline gaps - but when summer rolled around you'd get a severe amount of buckling the cement expanded... then those buckles might partially repair - be reinforced when gaping occurred in winter - then buckle even more come next summer.

</comment></comment><comment><USER15> I would like to understand the science behind how bacteria can live under the 50 gigapascals of pressure that one would find in the base of a skyscraper.

My intuitions currently tell me that finding life underneath such mechanical stress is comparable to finding life inside the lava of a volcano or on the surface of the sun.

<comment><USER16> Well, there are bateria living on chemical energy deep down in the oceans near volcanoes, that's not far from your example.

<comment><USER17> There are actually bacteria living in rocks thousands of feet below the surface.

</comment></comment></comment><comment><USER18> Ancient Romans had kinda similar technology, although chemically not bacteria based.

[https://www.nature.com/news/seawater-is-the-secret-to- long-l...](https://www.nature.com/news/seawater-is-the-secret-to-long-lasting- roman-concrete-1.22231)

</comment><comment><USER19> Wasn't it discovered that these bacteria are what make "Roman Cement" so much better then modern 'Portland Cement'? (or was I supposed the RTFA?)

<comment><USER20> The primary difference between Roman and modern cement is that Roman cement does not have reinforcing steel in it and cannot support loads that put it under tension stress. This reinforcing steel is what fails with age - <USER2> develop, let in air, and corrode the steel. No steel, and what you have is basically a shaped rock, and that can last a really long time.

The downside, of course, is that not being able to resist tensile loads severely limits the designs you can make with concrete. Reinforced concrete is _significantly_ more useful than unreinforced concrete.

<comment><USER21> I wonder if it would be feasible to replace the steel reinforcement rods with ceramic? No iron no rust.

I also wonder if concrete might bond better with ceramic. My understanding is that concrete does not bond well with steel.

<comment><USER20> It'd be a material engineering feat to get the required plasticity and tensile strength out of ceramics. The plasticity is probably more worrying in practice - the failure mode of rebar rusting is usually visible to inspection and slow enough that action can be taken to ensure that the structure remains safe. The failure mode of a brittle reinforcing member suddenly failing is much more worrying from a safety perspective.

<comment><USER22> In structural engineering we call this plasticity "ductility", but you're exactly right. We want ductile failures not sudden brittle ones, and that can only be achieved with yielding reinforcing. Ceramics generally will fail brittly, or cause the concrete to crush if the member is over-reinforced.

</comment></comment></comment></comment></comment><comment><USER23> Sounds like a great material for floating arcologies.

</comment><comment><USER24> "I'm beginning to think I can cure a rainy day!"

</comment><comment><USER25> please apply date [2017] to title as the article is old

>Friday, 12 May 2017 01:00cat</comment>


'Oumuamua: A Hydrogen Iceberg? - <AUTHOR> https://www.centauri-dreams.org/2020/08/18/oumuamua-a-hydrogen-iceberg/ <comment><USER2> In a short story I'm writing, things like this are sent every few hundred years to stars with life. Your species is invited to the galactic community once you can spot it, catch it, and utilize the tech without killing yourself.

<comment><USER3> You may want to read Rendezvous with Rama by Arthur C. Clarke. That's basically the plot.

<comment><USER4> As I recall the first two books are pretty good, after that the novel series kind of goes off the rails.

<comment><USER5> As _I_ recall, the original novel is vintage Clarke of the better kind, and then the rest are [co-]authored by some entity named Gentry Lee and basically unreadable.

<comment><USER4> You are right... In this case I think it might be a good example of how serious scientists are not always the best fiction writers.

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

<comment><USER5> Shame on me. I never knew, and I never bothered to look it up.

<comment><USER4> It is not an unreasonable assumption to make, there are a lot of novel series where the 3rd, 4th, 5th novels are ghostwritten by some third party hired by a publishing company that owns the rights, to cash in on a well known novel's name and author.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Worth noting co-author Avi Loeb produced the headline-making Alien-origin hypothesis paper of a couple of years ago.

i.e. context: the paper summarised in the OP is his counter to a "hydrogen iceberg" challenge/alternative to his original "alien" paper.

[https://www.wikipedia.org/wiki/Avi_Loeb#%CA%BBOumuamua](https://www.wikipedia.org/wiki/Avi_Loeb#%CA%BBOumuamua)

<comment><USER7> Paper: [https://iopscience.iop.org/article/10.3847/2041-8213/abab0c/...](https://iopscience.iop.org/article/10.3847/2041-8213/abab0c/pdf)

</comment></comment><comment><USER8> There are so many questions and so little data.

Oumuamua as the space junk of an extra-terrestial society naturally appeals to me even if it's not a legitimate guess (I understand that technological artifact is only a legitimate guess if all other options are exhausted, Ok).

One question would be whether the "axiom of mediocrity" implies that Oumuamua's flyby of the sun was not the object's first flyby. Logically, if objects that can survive a million encounter with stars exist, they would seem a million times more common than objects that could survive one. Which would also be why you'd be more likely to find space junk than a working space craft.

<comment><USER9> Would an advanced star-faring society make a spacecraft out of anything other than objects that are already moving? Asteroids and such. This way you don't have to lift any mass out of a gravity well.

<comment><USER10> I absolutely don't know much, so question here:

Why is it assumed that a "star faring society" must originate from a place of significant gravity?

I can understand heat and some way to gather the required chemicals (primordial ooze) together is required. But does it require much gravity really?

<comment><USER11> Well, life as we know it relies on carbon (energy storage), oxygen (energy activation) and liquid water (oxygen and chemical transfer).

Setting aside the quandary of sufficient mass to support life evolution and development from 0 => faster-than-light (or some other interstellar) travel, there's the problem of liquid water. The lower the pressure it is under, the more quickly it will evaporate or even boil. Not only that, but dissolved gasses within the water will also boil out.

So, we're left with either imagining some means of having a large quantity and volume of mass configured in a way that maintains pressure without gravity, OR identifying an alternative set of chemicals for the properties that carbon, oxygen and water currently fulfill.

Water is especially useful due to being a dipole, and there are several other known compounds that are as well, but they are significantly more complex. I'm definitely not super informed in this area, but my understanding is there really aren't other options that are readily found in nature in regular quantities.

<comment><USER12> I've read a sci-fi story set on a cold planet where methane was fulfilling the role of water. There were methane rivers, seas, it was falling in rain, and it was the basis for all the chemistry.

It sounded reasonable, but I'm not good enough with science to know if it was legit.

<comment><USER11> One thing i overlooked earlier is water's propensity to form acids and bases, which support all sorts of useful biological functions. Methane's hydrogen atoms are tightly bound and methane itself is has no dipole moment- meaning it may have the same physical phases as water, but I am skeptical that it could fully support life as a substitute.

...not to mention that you also have to do away with an oxygen rich atmosphere as well...

</comment></comment></comment></comment></comment></comment><comment><USER13> The main question here is not whether Oumuamua was a hydrogen iceberg, but rather whether hydrogen icebergs are possible.

Solid hydrogen is terribly difficult to study [1]. Solid hydrogen does not exist at pressures below 100 GPa (i.e. 1 million times higher than the atmospheric pressure). These pressures occur deep inside Jupiter, for example, but how do you get the "hydrogen iceberg" free?

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

</comment><comment><USER14> Betteridge law strike again

<comment><USER15> Does it? The article seems to bear out the headline: That the matter is an active question.

<comment><USER14> According to 2020 in science (the Wikipedia article) Astronomers report that the interstellar object ʻOumuamua (1I/2017 U1) is not likely to have been composed of frozen hydrogen which had been proposed earlier; the compositional nature of the object continues to be unknown.[127][128] So?</comment></comment></comment>


Proof Market: Submit Coq proof, get paid with Bitcoin - <AUTHOR> https://proofmarket.org/ <comment><USER2> Hm. Seems like it would make more sense for 'buyers' to submit btc along with the problem, which the market could then hold in escrow and release as soon as a proof passing the verifier was submitted. No need to trust anyone but the escrow service, between btc and machine proofs.

<comment><USER3> Depends on who you want to put the burden onto, the buyers or the sellers. If a buyer has to pay up front, especially with a marginal service like this, they're exposed to opportunity cost (maybe they were going to do something else with that money, although interest rates don't really exist for Bitcoin yet) and counterparty risk (why do you trust this website to hold onto your bitcoins and not be hacked?). If this market never takes off - as is one's default expectation - it'd not be pleasant for buyers to have paid up front.

<comment><USER4> I can mix both approaches. The buyer and other people can stash up bounty, which the first prover gets. I have not implemented this lest "bitcoin stolen from Coq proof exchange".

<comment><USER5> Way to avoid arbitrary risks and complications!

<comment><USER4> I added risks and complications. A feature called "bounty" is now available. Anyone can add bounty for a problem. The sum goes to the next solver.

</comment></comment></comment></comment></comment><comment><USER6> I like the idea, however it appears as if the buyer has to wait until the seller has done the work before sending them payment.

How much confidence could the seller (i.e. the person doing the proof) have about the buyers ability to pay before they embark on completing the work?

A much better approach would be the buyer puts up the problem they want a proof for and then pays an escrow service, that way you can have more confidence that payment will be completed.

</comment><comment><USER7> This is a bit ordinary, since it is fundamentally just an escrow service.

What would be really cool is to find a way to "lock" the bitcoins so that only a correct proof in Coq of the given theorem could unlock them. Kind of like holomorphic encryption.

<comment><USER8> Bitcoin does have a (non-turing-complete) scripting language built in for ensuring that transactions meet arbitrary requirements. I wonder what subset of proofs could be verified in that environment.

<comment><USER9> The language doesn't support loops; in terms of flow control, you get if statements and that's it. So probably not much of interest.

</comment></comment></comment><comment><USER10> Escrow implementation details aside, I love the idea of paying for information with a system that provides a method for communicating information securely between two parties. One of the more overlooked features of Bitcoin allows for message signing: [http://bitcoin.stackexchange.com/questions/3337/what-are- the...](http://bitcoin.stackexchange.com/questions/3337/what-are-the-safety- guidelines-for-using-the-sign-message-feature/3339#3339)

With a signing method, you can simultaneously prove someone created information containing a solution to a problem and the fact someone else paid them for the information.

</comment><comment><USER11> This seems like a cool idea. What I like about it is the way that it assigns a quantifiable value to mathematical proofs, and incentives their production.

Assuming proofs are valuable (which I believe they are), then by creating a market we can learn an approximation of what they are really worth to people.

Also I like that it is another outlet for mathematicians to profit from their skills. The options for pure math as a career are fairly bleek right now (fuck the nsa, academia maybe, not many research jobs in industry). I could see this market as a way to incentive more pure math research.

</comment><comment><USER12> I don't know if Coq with nested universes is known to be inconsistent yet, but I suppose that for this to work someone must always bankroll `inconsistent : forall a : Set, a` at something significantly higher than any other proof on the market and the system should reject repeated proofs.

</comment><comment><USER13> This sort of 'market' could surely be used for many other use-cases.

<comment><USER14> It actually can't -- a fundamental characteristic of this marketplace is that the work can be automatically verified [1].

As part of my PhD work, I created a service for crowdsourcing the verification of Java programs which relied on the same characteristic: [http://homes.cs.washington.edu/~mernst/pubs/veriweb- oopsla20...](http://homes.cs.washington.edu/~mernst/pubs/veriweb- oopsla2012-abstract.html).

One limitation of these crowd-sourcing approaches is that, in practice, validation ("are we trying to build/prove the right thing?") is as important, if not more important, than verification.

[1] this might not be quite true yet, since a solution of "admitted." would pass the Coq checker.

<comment><USER12> Is that something a grep couldn't fix?

<comment><USER14> Yes, a grep could locate that.

<comment><USER12> It's more a question of if there are any other known inconsistencies in Coq that could be used to trivially generate proofs which are artificial under human scrutiny but OK by an automated proof market.

<comment><USER14> You'd run into a problem if you let workers introduce assumptions (since introducing a contradiction lets the worker prove anything).

With Coq, you don't have a problem of unsoundness. The problem you have is that the difficulty / time it takes to write a proof is often very sensitive to how you've written your assumptions and formulated the claim. You'd likely want to add a mechanism to the marketplace to reward workers for suggesting ways to improve the problem formulation.

For my Java project, we were using ESC/Java2 under the hood which is unsound in a lot of ways. We definitely observed workers taking advantage of these (either intentionally or not).

</comment></comment></comment></comment></comment></comment><comment><USER15> This project might be harmful because of overjustification effect. [1] If there was some site 15 years ago that offered payment for writing an article on a given subject, would the number of contributors to wikipedia and thus the number of articles drop?

Also, it is unclear how to fit formalization of huge projects like classification of simple groups or IUTech in "reward for a proof" approach.

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

<comment><USER4> There is a similar site [1] without external incentives (actually Proof Market is based on this). This site has active audience posting problems and proofs. Possibly Proof Market ends up in another example of overjustification.

[1] [http://as305.dyndns.org/aps/](http://as305.dyndns.org/aps/)

</comment></comment><comment><USER16> This is fascinating to me. A couple comments and links.

Here is a course on proof theory that uses Coq [1]. It is actually the course that Vladimir Voevodsky took when he was trying to understand proof and type theory [2], [3]. While writing the midterm paper, he discovered homotopy type theory [4]. More details on the bitcoin scripting language can be found in the excellent blog post by Michael Nielsen[5].

If the escrow model is implemented, you can actually imagine the mathematical proof market maker acting like a bank, loaning out or otherwise investing bitcoins while the world waits for a verified proof; say, of the abc conjecture [6a] or the goldbach conjecture [6b]. This might be one small way to disrupt Wall St [7a], [7b]. In particular, such a market, when more highly developed, provides skilled mathematicians and scientists incentives to work on math and ( computer ) science problems in an open source format that benefits everyone - since everyone can look at and learn from their proofs - rather than quantitative trading in a closed format that actually causes long term social harm and political instability [IMHO]. I am thinking here of Goldman Sachs and Renaissance Technology founded by James Simons. Imagine if an incentive structure existed that encouraged all these smart folks to work on what is essentially verifiable open source software [8].

[1] [http://www.cs.princeton.edu/courses/archive/fall09/cos441/in...](http://www.cs.princeton.edu/courses/archive/fall09/cos441/index.php) [2] [http://blogs.scientificamerican.com/guest- blog/2013/10/01/vo...](http://blogs.scientificamerican.com/guest- blog/2013/10/01/voevodskys-mathematical-revolution/) [3] [http://www.heidelberg-laureate-forum.org/event_2013/](http://www.heidelberg- laureate-forum.org/event_2013/) [4] [http://homotopytypetheory.org/book/](http://homotopytypetheory.org/book/) [5] [http://www.michaelnielsen.org/ddi/how-the-bitcoin- protocol-a...](http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol- actually-works/) [6a] [http://www.nytimes.com/2012/09/18/science/possible- breakthro...](http://www.nytimes.com/2012/09/18/science/possible-breakthrough- in-maths-abc-conjecture.html) [6b] [http://xkcd.com/1310/](http://xkcd.com/1310/) [7a] [http://cdixon.org/2013/12/31/why-im-interested-in- bitcoin/](http://cdixon.org/2013/12/31/why-im-interested-in-bitcoin/) [7b] [http://cdixon.org/2010/01/23/how-to-disrupt-wall- street/](http://cdixon.org/2010/01/23/how-to-disrupt-wall-street/) [8] This is a pipe dream.

<comment><USER4> This gives very broad perspective. I want to cite this comment when I talk about the site. I have never thought about disrupting Wall St, but I do share your pipe dream.</comment></comment>


Things I learned from OpenSSH about reading very sensitive files - <AUTHOR> https://utcc.utoronto.ca/~cks/space/blog/programming/ReadingSensitiveFilesLessons <comment><USER2> There is quite some irony here - I was always taught to code by using standard libraries because they've been tested to destruction and back in ways I'd never be able to work out, and that rolling my own was destined for failure. As far as good practise goes, OpenSSH seems to tick all the right boxes. This article seems to criticise this, but the deeper meaning is that the standard C library is not designed with security in mind.

There's no inherent problem with the approach taken (not like OpenSSL reinventing several wheels and causing things like Heartbleed). In fact, the article's conclusion that the OpenSSH team should have rolled their own memory management code rather than use tried, tested and approved libraries doesn't sound like a good recommendation to me.

<comment><USER3> > In fact, the article's conclusion that the OpenSSH team should have > rolled > their own memory management code rather than use tried, > tested and > approved libraries

That's not the conclusion I draw from the article.

I rather read it as warning that even innocent and quite common operations like realloc() or using buffered I/O can have security implications, so one need to be extra extra _extra_ careful when writing code that handles sensitive data. In other words, security can be even harder than security professionals think.

<comment><USER4> I agree with you. And while I don't think there's any secure way to use realloc(), I would like to remind people that stdio does give you control over the internal buffer (setvbuf()), which you can potentially set to a buffer that can't get swapped to disk and which you can zero out at the appropriate time. You can also call fflush() to be sure that the data in stdio's buffer can be zeroed even before the file is closed.

</comment></comment></comment><comment><USER5> > Part of how they are so easy to overlook is that we are trained to think in > terms of abstractions, not the details underneath them.

This is a problem in direct proportion to how leaky the abstractions are. C's abstraction over memory is comically leaky, so indeed, if you're using it, you need to think about the details underneath it.

But the solution isn't for everyone to forget about abstractions, it's to use better-made abstractions.

For memory in particular, it's been understood what it takes to have a safe abstraction for quite a long time now, and numerous widely-available languages provide one. Use one of those instead of C.

<comment><USER6> Could you be more specific on what you have in mind here?

As far as I can see, if something like Heartbleed exists, you can't rely on "safe memory abstractions" at a lower level, because Heartbleed let the attacker look at the internal memory of those abstractions. They quit being abstractions; their raw memory is open to the attacker.

Or is your claim that safe abstractions would have prevented Heartbleed (and all other possible attacks that let the attacker read memory)?

<comment><USER5> For Heartbleed, you need an abstraction like "container that i can write bytes to and then read the same bytes from" which has the leak "sometimes you can read other bytes too".

In C, the memory abstraction the language gives you has that leak, so it's really hard to build a container on top of it that doesn't have that leak.

In safer languages, the memory abstraction doesn't have that leak, because bounds are checked, and new byte buffers are initialised to zero. You can still build an abstraction which _does_ have that leak - say, by writing your own reusable byte buffer class which doesn't check bounds or zero on reuse - but at least you have the option of getting it right.

In an even safer language, the type system might make it impossible to make that mistake, or the library might supply a safe implementation of that abstraction already.

Remember, Heartbleed is not about the attacker doing some kind of Jedi memory trick to read your secrets: they are relying on _your own code_ to read things it shouldn't. If the abstractions your program is built on don't allow that, then there's no way for it to be used to that end.

<comment><USER7> >In C, the memory abstraction the language gives you has that leak, so it's really hard to build a container on top of it that doesn't have that leak.

>In safer languages, the memory abstraction doesn't have that leak, because bounds are checked, and new byte buffers are initialised to zero.

Most of the implementations of these safer languages are in C, so clearly there's a way to do this correctly in C.

</comment></comment></comment></comment><comment><USER8> The bug is in the compiler, not OpenSSH. The OpenSSH developers explicitly erased memory with memset. GCC decided to remove those lines without any warning. There's the bug. (Here come the language lawyers...)

What's the difference between GCC deleting parts of your code, and an attacker hacking into the source code repository and deleting those parts of the code?

The C standards committee addressed the problem in 2009 with memset_s. [0] The GNU developers reject patches and state they hope this feature is never implemented. [1]

The bug fix is to stop using GCC for sensitive code. Use CompCert instead. [https://github.com/AbsInt/CompCert](https://github.com/AbsInt/CompCert)

[0] [http://www.open- std.org/jtc1/sc22/wg14/www/docs/n1381.pdf](http://www.open- std.org/jtc1/sc22/wg14/www/docs/n1381.pdf)

[1] [https://sourceware.org/ml/libc- alpha/2014-12/threads.html#00...](https://sourceware.org/ml/libc- alpha/2014-12/threads.html#00506)

<comment><USER9> Pretty much every claim you just made is wrong, but at least you provided the sources to demonstrate such. In short, dead store removal is not a bug, it is explicitly allowed. C11 Annex K is optional, and the rejection was not based on this feature, it was based on other problematic requirements imposed on a conforming implementation.

</comment></comment><comment><USER10> This of course is all true and important. But there's an alternative here - keep private data unreadable. I believe if you use smartcard authentication via gpg-agent, ssh simply has no access to your key. The only thing that could be leaked is the session key (which the other side could get via standard exchange anyway).

I moved to yubikey some time ago and don't regret it.

<comment><USER11> The downside of Yubikey is that if it was manufactured before April and you used OpenPGP card mode, anyone who manages to steal your Yubikey could use it to log into your servers without needing to know your PIN/password because PIN authentication was completely broken and bypassable on the earlier Yubikeys. YubiCo also heavily downplayed the importance of this issue, claiming in their announcement that it didn't matter because anyone who got hold of your Yubikey could get hold of your PIN anyway. See [https://developers.yubico.com/ykneo- openpgp/SecurityAdvisory...](https://developers.yubico.com/ykneo- openpgp/SecurityAdvisory%202015-04-14.html)

<comment><USER10> Every system had, has, or will have issues. That's why you have multiple layers of protection from cpu rings to user training. Sure, they had issues, but I'll still take hardened box, with ssh, with yubikey over ssh on its own. I don't trust any of those layers, but each provides more difficulty in exploitation.

(Also, this still doesn't provide the key itself. That means even with the vulnerable yubikey you can only spoof connections while it's plugged in)

<comment><USER11> It means that anyone who can swipe your Yubikey for a couple of minutes or even just wave an NFC-enabled phone past it can SSH to your server and then at their leisure convert that connection into a persistent backdoor. How often do you check your .authorized_keys? Your list of running processes? Your .bashrc for a line redirecting sudo to a small binary that logs your password for later use? Arguably this even made it less secure than a normal USB key with your SSH key on it encrypted with a strong passphrase.

</comment></comment></comment></comment><comment><USER12> I remember people groaning (and I was probably amongst them) about DJB for being unnecessarily paranoid for implementing his own IO functions instead of using stdio (for Qmail for example).

</comment><comment><USER13> I think the real answer to this sort of problem would be to set up a unit test that involves making a full memory dump and scanning it for private key material. The traps here are just too subtle to try to catch all the failure- to-zero bugs in any other way.

</comment><comment><USER14> Some people used to claim that you should never use your own crypto code because the libraries are designed by people infinitely smarter than you who thought of everything.

That is starting to ring hollow to me.

<comment><USER15> "you should never use your own crypto code"

The sentiment behind that is to keep out those that don't know how to code. If everybody followed that advice there wouldn't be crypto code.

If you have the ability to create good code and are confident you can understand the maths of cryptography then by all means contribute to the community. If the past year has taught us anything it's that the crypto community needs more good engineers.

<comment><USER16> The sentiment should be "write your own code, but don't use it without independent audit". There's another recent discussion about it here: [https://www.reddit.com/r/crypto/comments/418nyl/write_crypto...](https://www.reddit.com/r/crypto/comments/418nyl/write_crypto_code_dont_publish_it/)

<comment><USER17> People write their own toy kernels or malloc()s all the time, and there's never the assumption that they would actually try to use them for real, and the security implications are just as real there as for toy crypto.

</comment></comment></comment></comment><comment><USER18> Zeroing buffers is insufficient: [https://news.ycombinator.com/item?id=8277928](https://news.ycombinator.com/item?id=8277928)

</comment><comment><USER19> Funny thing. I just thought it was yet another memory leak, that could be avoided by higher level code handling dangerous network data.

But if all the lessons the author took are that secure code should be lower level than this, well... I can not agree with it.

<comment><USER11> Higher-level code is just an abstraction layer over the lower-level workings, and if that abstraction layer doesn't clear memory properly there may be no way to fix that without bypassing it altogether.

<comment><USER5> If the abstraction layer doesn't let you read memory that's left over from some previous use, then it doesn't matter (for this vulnerability) if it clears it or not.

<comment><USER20> Except, it does.

Remember RowHammer? [https://github.com/IAIK/rowhammerjs](https://github.com/IAIK/rowhammerjs)

<comment><USER5> Rowhammer is a great demonstration that the memory abstraction in almost all languages _does_ let you statistically modify the memory of other processes on appropriate hardware!

I don't think rowhammer lets you read memory, though; does it? There are certainly some cache timing attacks that do, though.

<comment><USER20> I'm not sure, but it's a great demonstration that, just because the abstraction limits direct access, it can not limit indirect access.</comment></comment></comment></comment></comment></comment>


Is this Accelerator a Scam? - <AUTHOR> http://onetraction.com/payaccelerator.html

<comment><USER2> We believe that any "REAL" accelerator will NEVER ask for upfront cost, let alone most will never accept entrepreneurs/companies without meeting them firsthand...

</comment><comment><AUTHOR> I don't really know what to think.

We have just been contacted by them, the way they work seems pretty scammy. Like they have accepted us without meeting us and they ask us to pay upfront costs.

</comment><comment><USER3> Yes.</comment>


Data Stories: Interview with Hilary Mason of Bit.ly - <AUTHOR> http://blog.gnip.com/hilary-mason-interview/ <comment><USER2> I think it's really cool to see interviews with woman in tech who are unabashedly passionate and proud of the work they do. (Disclaimer: I work for Gnip)</comment>


Show HN: Research on addictive tendencies - <AUTHOR> https://whatamidoingthisfor.com/ <comment><AUTHOR> The project is to learn experiential context of addictive tendencies and active addictions. It collects labels of substances or behaviors (ie. #sugar or #shopping) and labels of experiences hoped for (ie. #energy, #relax) and disturbing ones (ie. #sadness, #loneliness).

The project was quite successful in Polish and the results are interesting ([https://mikolajczyz.pl/ogolne/wstepne-wyniki-badania- wizuali...](https://mikolajczyz.pl/ogolne/wstepne-wyniki-badania-wizualizacja- piotr-migdal/) or [https://mikolajczyz.pl/ogolne/uzaleznienia-wyniki- badania/](https://mikolajczyz.pl/ogolne/uzaleznienia-wyniki-badania/)).

</comment><comment><AUTHOR> I will very much appreciate feedback (especially about if it is intuitive and understandable).</comment>


Citigroup internal report states US is not a democracy [pdf] - <AUTHOR> http://jdeanicite.typepad.com/files/plutonomy-1.pdf

<comment><AUTHOR> Part 2 of the report: <http://jdeanicite.typepad.com/files/plutonomy-2.pdf>

tl;dr: The US is not a democracy, the rich rule the nation by being hyper- consumers (a plutocracy economy, or a plutonomy).

Most of the Eurozone is not a plutocracy, and the difference between stocks and the housing marking keeps the rich rich.

If the housing market were to cool while the stock market accelerates, and the Eurozone economy to also slow behind the US, the rich would get even richer as a result.

The report is from 2005.</comment>


Java Code Challenge: Shortest Code and Lowest Latency - <AUTHOR> http://minborgsjavapot.blogspot.com/2018/11/shortest-code-and-lowest-latency.html <comment><USER2> Wow the CTO of Speedment posted a challenge and the "winner" used Speedment? Who would have thought... Also when it comes to code golfing this is a BS experiment. If you don't count the library LOC then I can just create SpeedmentSucksLib that literally just uses the code that "won" and now my solution is 1 line:

        SpeedmentSucksLib.doTheThing()

Also we just are going to ignore import/main class LOC's? Really this is a terrible article and it leaves a bad taste in my mouth re: speedment.

<comment><AUTHOR> Your proposed "solution" is hardly a general solution. The winner used a java.util.stream.Stream class which is a standard Java class. The rules ([https://www.speedment.com/code-one/](https://www.speedment.com/code-one/)) stated that import/main class rows were not counted. But even if they did, they would impact any solution about the same.

</comment></comment><comment><USER3> I was trying to understand how this was so much efficient and how did he manage to generate this will so little code. Where was his query retrievals ? Where did those classes magically appear. How did he retrieve the data so fast.

Then i read the first line, he is the CTO of Speedment.

So he had to add maven dependency to his project generate ton of code, to create his objects, retrieve all them and do the computation in the Speedment optimized functions.

So with his goal to use as less code as possible, he had to add third party library that added tons of code that he did not count in the lines of code that was written.

Seems a bit like self promotion and unfair to be honest.

</comment><comment><USER4> There is something I don't understand. They say that the winner used Speedment. If I understood the example on github correctly, Speedment also uses SQL internally. So, why is the same query over JDBC so much slower than with Speedment?

Could it be that Speedment avoids the nested select and does the calculations of the statistics by itself? Would that mean that I should use Speedment only when the result set is very small? How would the performance look like if the task were to calculate the average film length of 10000 films from a table of 100,000 films?

<comment><AUTHOR> Speedment uses in-JVM-memory technology so, once the tables are moved into the JVM, streams are served using content and indexes directly from off-heap RAM.

</comment></comment><comment><USER5> This article is probably not worth reading. There's little point in comparing an in-memory Java stream-based approach against JDBC--without even the intellectual honesty to use something like in-memory SQLite.

<comment><AUTHOR> It would be interesting to do a benchmark between Speedment and in-memory SQLite. I will put that on my list. Thanks for the tip.

</comment></comment><comment><USER6> Does the winning solution read from a database? Otherwise this is an apple-to- oranges comparison. If it does, the connection code certainly isn't shown.

<comment><AUTHOR> It reads from memory, not the database. It is true that querying a database vs. using in-JVM-memory snapshots are not the same. They both have different properties. The case at hand was to analyze immutable data where working with snapshots makes sense. If, on the other hand, the case was to work with data in a highly transactional application, then snapshots make little or no sense.

</comment></comment><comment><USER7> I like the idea, but when the winner is calling a 3rd party library it becomes meaningless marketing.

</comment><comment><AUTHOR> Hi all! Nice to see your engagement. I understand your concern about self- promotion but the contest was open and contestants were free to choose any tool, not just Speedment.

I have contributed to open-source speedment stream ORM for many years and have now added in-JVM-memory acceleration. I am still curious to see if your guys can come up with something better.

Give it a real shoot using whatever you can think of. If you can beat it, I promise to write another article about it. Sounds fair?

NB: Setup code adds about 5 extra lines, similar to other tools.</comment>


Apple Warms Up to Hackers, Plans Presentation at Black Hat - <AUTHOR> http://go.bloomberg.com/tech-blog/2012-07-24-apple-warms-up-to-hackers-plans-presentation-at-black-hat/

<comment><USER2> Apple owes a lot of its comeback to hackers and open source advocates. It's good to see them participating.

They certainly need to maintain goodwill with open source hackers to continue succeeding. Their current locked-down culture seems somewhat antithetical.

I would argue however that that same locked-down culture is actual the logical outcome of the security ideal hackers promote.

<comment><AUTHOR> "I would argue however that that same locked-down culture is actual the logical outcome of the security ideal hackers promote."

Why do you say that? It sounds like you're suggesting that "security through obscurity" is the logical end goal, but that seems to be at complete odds with the normal "full disclosure" mode most security researchers promote.</comment></comment>


Ask HN: Are people willing to 'sign up' also willing to pay? - <AUTHOR>

I've done some basic A/B testing with a landing page for my product. My google ads are getting low click-through rates, around 0.15%. However, of those viewers 10% are clicking on 'Sign Up'.<p>There is certainly an interest/need, but how do I know if people are willing to pay? <comment><USER2> ask them for money.

<comment><AUTHOR> But I don't have anything to sell at this point, is it dishonest to say 'buy for 10$' then when they click say sorry we have nothing to sell.</comment></comment>


Ask HN Creatives: Anyone involved in direct mail stuff? - <AUTHOR>

I launched MailFinch just about six months ago and we're now pushing ~20K pieces of mail each month. For now, it's basic letter-sized documents and booklets...<p>For those of you involved in direct mail of some sort, what are the standard types of media that you're working on these days? (postcards, letters, booklets, brochures, do they require return envelopes, etc?) <comment><USER2> I get a lot of postcards (reminders/events/promotions).

BTW is that 20k paying pieces ?

<comment><AUTHOR> Well, the vast majority of them are paid pieces -- I haven't checked where we're at for this month but usually ~99.5% of all mail volume is paid (not trials).

As for getting all those postcards, I need to find some way to figure out who's behind them. :)

FWIW, my goal is to see if I can get some customers that would be willing to pay some sort of fee while I ramp up the hardware to actually deliver that sort of service.</comment></comment>


Which Fish: With fish stocks under pressure, which are okay to eat? - <AUTHOR> http://whichfish.org/

<comment><USER2> SeafoodWatch already has a pretty solid iPhone and Android app that does this[1], but I'm all for more options and having raw JSON available.

[1] [http://www.montereybayaquarium.org/cr/SeafoodWatch/web/sfw_i...](http://www.montereybayaquarium.org/cr/SeafoodWatch/web/sfw_iPhone.aspx)

<comment><USER3> You can also get the same information online here:

<http://www.edf.org/page.cfm?tagID=1540> (eco best / worst)

<http://www.edf.org/page.cfm?tagID=17694> (health best / worst)

You can even get a pocket guide that goes into your wallet that you can take out whenever you go into a sushi restaurant or fish market. Here in NYC there are a lot of hedge fund managers with serious neurological problems from eating sushi every day for years. They manage billions of dollars in assets but their hands twitch like they have parkinsons.

<comment><USER4> Thanks a lot for posting the pocket guide. I like pretending to know what I'm doing when I eat sushi, and that guide will help to artificially limit my options so it looks less like I'm choosing at random (and eating healthier to boot!).

</comment></comment></comment><comment><USER5> I usually only eat what I can catch. And if I can catch it, well... that fish just won the Darwin award because I suck at fishing.

<comment><USER6> You can't tell just by having caught it. If it already had a lot of children and propagated its genes it's not very eligible for winning.

</comment></comment><comment><USER7> A title of "..which are sustainable" would be clearer. The article concerns the sustainability of the fish and not the goodness of them as a food. There is for example no mention of the problems of eating catfish farm raised in China (high levels of toxins).

<comment><USER8> Yes, this was my impression/confusion exactly. Even seeing "under pressure" at the top, I still thought the list was fish that are safe to eat, in light of or despite pressures.

It would be good to have a second list along side, fish that are safe to eat. Or just one list, safe and sustainable.

</comment></comment><comment><USER9> I eat fish 3 or 4 days a week but I almost never eat any of the fish listed as "not okay". Cod is the only exception. Price seems to regulate this list pretty well.

</comment><comment><USER10> Why are various farmed fish listed as "not okay to eat"? Certainly farmed fish can't be under pressure like wild fish. Is it because of the environmental practices of the farms? I see us farmed raised catfish is listed ok, but apparently asian farmed catfish isn't?

<comment><USER11> Farmed fish are often fed unsustainable fish! It's just laundering unsustainability.

<comment><USER10> wow, really? Are you pulling my leg?

<comment><USER12> Nope. It's sadly true.

</comment></comment></comment></comment><comment><USER13> Farmed salmon as a good choice? Think you better check that one out, unless it is in an inland pond (rare), farmed salmon is a pretty bad choice. Also having only a single listing for "cod" over-simplifies things. Many diverse fish are marketed as cod, and some of them are quite sustainable. Sablefish aka Black Cod from Alaska is a delicious buttery treat and quite sustainable.

</comment><comment><USER14> This is a silly list. Not because fish aren't important, but because there's no way to take action on this list. Studies have shown that a huge amount of fish is mislabelled. Yes, pick up a piece of xxxx from a seafood market and the odds are that it's not xxxx.

<http://www.nytimes.com/2011/05/27/science/earth/27fish.html>

Consumers have no effective way to verify what they're eating. This is a situation where there is either government action or no action; no private personal actions can be successful, barring the creation of instant cheap at- the-restaurant-table DNA analysis.

<comment><AUTHOR> That's a very interesting link, but saying that we might as well not bother because there's labeling issues is rather overstating the problem. The perfect is the enemy of the good.

<comment><USER15> Did you even read the lede?

>Scientists aiming their gene sequencers at commercial seafood are discovering rampant labeling fraud in supermarket coolers and restaurant tables: cheap fish is often substituted for expensive fillets, and overfished species are passed off as fish whose numbers are plentiful.

The link states that overfished species are being intentionally mis-labelled. I would say that, yes, we might as well not bother if the seafood industry is going to pull these kind of shenanigans, absent some sort of regulation from the government (an unpopular sentiment here).

<comment><USER16> _absent some sort of regulation from the government_

Surely there must be laws against this already. I have a hard time imagining that claiming that you're selling X when you're in actual fact selling Y is legal. If no one is being prosecuted it must be because the government doesn't care enough, not because they lack laws to prosecute under.

<comment><USER17> It depends probably but I'm sure some areas the name of different foods are imprecise. Does caviar mean all fish eggs? all black fish eggs? Beluga, Ossetra or Sevruga sturgeon eggs? What about True cod. ect.

</comment></comment></comment></comment></comment><comment><USER18> One odd thing about this list:

There are 6 instances where species are listed as okay to eat if they are from the US while not okay to eat if they are from elsewhere. There are 0 instances where the opposite is true.

# yes Barramundi (US/Europe/Australia) # yes Barramundi (Closed Production) # no Barramundi (Other)

# yes Catfish (US Farmed) # no Catfish (Other)

# yes Crayfish (US) # no Crayfish (Other)

# yes Herring (Norway, Iceland, North Sea, US) # no Herring (Other)

# yes King Crab (US) # no King Crab (Other)

# yes Northern Prawn/Pink Shrimp (US and Canadian) # no Northern Prawn/Pink Shrimp (Other)

There seems to be some bias towards US fisheries in this list.

<comment><AUTHOR> Yes, there is, due to a lot of the data being sourced from the Monterey Bay Aquarium, whose data is US-centric. If you look at the detail view of eg crayfish ( <http://whichfish.org/detail/crayfish_us.html> ), the issue is that the other sources have no data, so I had to use the likely overly US-centric view.

<comment><USER19> Which is a pretty big issue. Local sources matter. For example the King Crabs in the Barents Sea are really invasive and are spreading like wildfire. In Norway they are trying to hinder it's advancement and reducing it's population. Russia however, is currently more protective. After all they introduced them in the first place.

</comment></comment></comment><comment><USER20> Four Fish by Paul Greenberg - tackles this very subject. I recommend it. [http://roundvalleyfishing.com/2011/06/15/book-review-four- fi...](http://roundvalleyfishing.com/2011/06/15/book-review-four-fish-by-paul- greenberg/)

</comment><comment><USER21> Any list that opens with

no: All Bottom Trawled Fish no: All Fish caught by Longline

loses me right there. I don't know how different types of fish are caught, and I'm not going to reearch it before making each purchase.

<comment><USER22> I don't where you buy your fish, but my fish counter has a fishmonger behind it who is eager to answer questions. Any good fishmonger will know when the fish came in, how the fish was caught and a good number of them will know if they are sustainable.

</comment></comment><comment><AUTHOR> Since mercury levels are obviously something people are very concerned about, I will look into adding them to the information. Does anyone have good sources for mercury levels of different kinds of fish?

</comment><comment><USER23> Blue Ocean Institute makes a similarly up-to-date sustainable and healthy seafood database accessible via text message. Text FISH to 30644 to try it.

</comment><comment><USER24> I read this as, "with the price of equities in the fish market dropping, which fish are safe to eat, presumably because those companies will be more lax with health codes?"

I was way off.

</comment><comment><USER25> "Which are okay to eat?" implies how much mercury is present, but it seems this question is from an environmental perspective.

<comment><USER26> The environmental perspective is the most important. The truth is the oceans are dying and overfishing has created colossal dead zones.

The best option that should be on this list is to not eat any fish at all.

<comment><USER2> > _The best option that should be on this list is to not eat any fish at all._

Your logic fails for the following reasons:

\- not all fish are from the ocean

\- not all species of fish are in fact overfished. There is no Sardine crisis.

\- Fish consumption is linked to increased IQ including in babies and children

\- Piscetarians have lower rates of heart disease than both vegans and occasional meat eaters

\- Promoting abstinence over harm reduction is generally a very silly and inefficient way to do things

<comment><USER26> Just for the record, fish consumption is linked to increased IQ in children because of the presence of Omega-3 Fatty Acids.

Did you know though that both Flaxseed and Walnuts are both better, cheaper, and less environmentally damaging sources of Omega 3s than fish? Soybeans and Tofu are also pretty good sources.

I'm cool with people consuming less, not merely abstaining from eating fish. But for those out there who are willing to (and there are many such people in the tech community), it really is the best option.

<comment><USER2> > _increased IQ in children because of the presence of Omega-3 Fatty Acids. > Did you know though that both Flaxseed and Walnuts are both better_

The fatty acid in both Flaxseed and Walnuts you are referring to is alpha Linolic acid (ALA), whereas fish contains Eicosapentaenoic acid (EPA) and Docosahexaenoic acid (DHA). Out of these, only DHA is found in the brain. If DHA is not present in the diet, ALA can be converted into it, but only at an extremely low rate of efficiency [1]

The only reliable vegan source of DHA I am aware of is certain types of algae. Additionally, by consuming extremely large quantities of nuts you will typically be overloading your copper to zinc ratio.

[1] <http://dx.doi.org/10.1186%2F1476-511X-8-33> "Are all n-3 polyunsaturated fatty acids created equal?"

<comment><USER27> ALA is adequately converted to DHA, you didn't read the article you linked. Studies on rats are far from conclusive... but then why claim it's a human- health fact?

"While there is discrepancy in ALA conversion rates in rats, these studies imply that dietary ALA could sufficiently supply the brain with DHA in the absence of exogenous DHA intake."

This is consistent with all other research I've read, debunking this myth has become a hobby.

<comment><USER2> > _you didn't read the article you linked_

Is this a joke? The article specifically states:

> _It is not enough to assume that ALA exerts effects through conversion to > EPA and DHA, as the process is highly inefficient in humans._

> _with higher levels of ALA, no net rise in the level of circulating DHA > occurred [2,3]. For example, feeding 10.7 g/d of ALA from flaxseed oil for 4 > weeks failed to increase low DHA levels in breast milk of lactating women > [4]. Some estimate that only 5–10% and 2–5% of ALA in healthy adults is > converted to EPA and DHA, respectively [5], while others suggest that humans > convert less than 5% of ALA to EPA or DHA [6]. The International Society for > the Study of Fatty Acids and Lipids (ISSFAL) recently released an official > statement on the conversion efficiency of ALA to DHA. They concluded that > the conversion of ALA to DHA is on the order of 1% in infants"_

Now let's examine the actual context of your quote:

> _"While there is discrepancy in ALA conversion rates in rats, these studies > imply that dietary ALA could sufficiently supply the brain with DHA in the > absence of exogenous DHA intake. It is important to note that the hepatic > DHA synthesis rates observed for rats do not extend to humans [44]. The > higher rates reflect a more efficient ALA elongation process in mice and > rats"_

It specifically states that ALA->DHA is only a phenomena that occurs in rats and not humans.

> _Studies on rats are far from conclusive... but then why claim it's a human- > health fact?_

Exactly my point. The human studies clearly state it is not reliably converted, and you are claiming it IS based on a rat study. The whole article I linked is based on the assumption it is NOT, and from the perspective that we should be examining the health benefits of ALA independently from the health benefits of fish oil.

<comment><USER27> Let me clarify: Inefficient conversion of dietary ALA to DHA is neither correlated nor causative to anything.

My point is that ALA provides adequate, not elevated levels of DHA, and there's no evidence to the contrary.

Now let's examine the actual context of my quote:

> ALA is adequately converted to DHA

I think it's worth mentioning where you make a false statement, directly after citing inefficient conversion rates in humans.

>It specifically states that ALA->DHA is only a phenomena that occurs in rats and not humans.

Which is it, inefficient or non-existent in humans?

This statement: >It is not enough to assume that ALA exerts effects through conversion to EPA and DHA, as the process is highly inefficient in humans.

... Says exactly nothing about healthy levels of DHA. It is non sequitur. It skirts the issue, it avoids the topic, the statement tries to make a huge jump in unreasonable unproven logic. This paper shows nothing but the therapeutic effect of DHA/EPA on diseased people.

There is no evidence to suggest inadequate DHA is produced from dietary ALA in otherwise healthy humans. Not in this paper, nor any I've seen.

<comment><USER2> > _Inefficient conversion of dietary ALA to DHA is neither correlated nor > causative to anything_

It's correlated with being a human, but the significance of very inefficient conversion versus trivial conversion is simply that it prevents us from claiming they are metabolically identical goods.

> _Which is it, inefficient or non-existent in humans?_

Inefficient. 'ALA->DHA' shorthand was meant to token the previous idea of "efficient endogenous ALA to DHA conversion" and not initialize a new false one.

> _no evidence to suggest inadequate DHA_

I think you're missing the point by intentionally or unintentionally rephrasing this in terms of avoiding a negative. Let me requote the initial context by jeremymims:

> _Just for the record, fish consumption is linked to increased IQ in children > because of the presence of Omega-3 Fatty Acids. Did you know though that > both Flaxseed and Walnuts are both better, cheaper, and less environmentally > damaging sources of Omega 3s than fish?_

My primary point is that one cannot rationally assert that the numerous _positive_ IQ benefits scientific literature attributes to consumption of fish and fish oil are somehow equally or better attributable to walnut and flax consumption. The evidence indicates differing methods of action and a need to consider their health benefits independently.

<comment><USER27> > The evidence indicates differing methods of action and a need to consider > their health benefits independently.

Fair enough. I learned a thing or too here, so thanks.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> Bzzzzz. Sea bass is often really Antarctic toothfish, a species which, while certified as 'sustainable' is anything but. See <http://www.lastocean.co.nz> for details on a campaign to protect the Ross Sea, one of the World's last almost untouched wild places.

</comment><comment><USER29> Sooo, why is this top link on HN? Am I missing some nifty tech embedded in the site, or is everyone here just interested in fish?

</comment><comment><USER30> How about everyone just leaves the ocean alone for a while?

Eat jellyfish.

</comment><comment><USER31> This renders very well on my android phone. Thanks.

</comment><comment><USER32> Can't eat beef because of mad cow and the heavy medication used in breeding; same goes for pigs and chicken and all other mass-produced meat. On top of that you have the question of animal cruelty and the questionable necessity of killing animals to eat them attached to it. Plus it is generally not that healthy to eat it all the time and you shouldn't eat meat more than once or twice a week or so.

Can't eat fish for all the mercury and lots of them being close to extinction and it kills dolphins and damages the oceans.

Can't eat eggs or milk, again for cruelty and various possible diseases or other contamination.

And vegetables and fruits? Well, practically all of the mass produced ones never EVER saw any soil or real sunlight but artificial gel to grow on and were picked by poor and heavily underpaid and downright exploited people from (and typically in) poor countries under inhuman conditions and bought by the rich nations for next to nothing. (here is to you, militant vegetarians!) On top of that they are heavily laden with chemicals of all sorts and chances are when you get to buy them, they are far from being fresh.

Plus for practically all the food mentioned above: production heavily, grossly outranks what actually ends up being bought... so we just dump it, burn it or do FSM-knows what with it. We certainly do NOT give it to the starving people in this world because it would cost too much.

And if you go organic and local farmers only? Apart from few choices, you have even less inspections and regulations to protect your safety because you don't know what they are selling, what it grew on and how clean and safe to eat it is. And some of it just taste absolutely horrible.

This is just pathetic... the whole food industry, front to back, top to bottom. If you go by the warnings on what to avoid, what is dangerous for your health and what is immoral and wrong to eat, we better come up with a way to get by on nothing but sunlight and water quickly.

But then again, fresh water supplies are currently being bought up by Big-Food to make lots and lots of money and water in bottles is very often not as clean as one might hope and certain chemicals from plastic bottles could basically work like estrogen in your body.

<comment><USER10> _And vegetables and fruits? Well, practically all of the mass produced ones never EVER saw any soil or real sunlight but artificial gel to grow on_

Wait, what? You are going off the deep end here. I assure you that the exact opposite is true - practically all mass produced produce touches soil and uses real sunlight. The economics don't support your premise at all. Have you never been to rural areas? I assure you they are not lined with industrial warehouses and artificial lighting systems.

 _And if you go organic and local farmers only? Apart from few choices, you have even less inspections and regulations to protect your safety because you don't know what they are selling, what it grew on and how clean and safe to eat it is. And some of it just taste absolutely horrible._

At some level you need to take on a certain amount of responsibility. My locally grown produce mostly comes from people I know. They don't need a ton of regulations and inspections to keep me safe - social contracts do. We've been doing it this way for thousands of years. The regulations and inspections mostly became needed when you got so far removed from your food source. Also life isn't 100.00% safe, c'est la vie.

<comment><USER33> "Have you never been to rural areas? I assure you they are not lined with industrial warehouses and artificial lighting systems."

You are aware that Farmville != rural areas in the real world? There are movies and books depicting the industrial rising of cattle (for example "Eating Animals" does a nice, graphics job). You can spot the "pink lakes" which result from the waste output of industrial pig farming on Google Maps. But these are indeed not the areas you would visit on a weekend trip to the countryside, because these areas reek for miles.

Just because some chickens still roam outside, doesn't prove that the majority of them does.

The article about pig farming was on HN years ago, but I can't find it atm. But Google provides a lot of info "factory farming".

<comment><USER4> The things you are saying are true about livestock. The commenters above are talking about fruits and vegetables specifically. It makes sense to me that a dirt patch and sunlight out in Ohio are cheaper than setting up hydroponics plants.

<comment><USER33> Missed that, sorry :-(</comment></comment></comment></comment></comment>


Cycle of Reincarnation - <AUTHOR> http://www.hacker-dictionary.com/terms/cycle%20of%20reincarnation <comment><AUTHOR> It's not just hardware: this also applies to software, occupations, business models, and probably governments.

In particular, I'm thinking of "full stack programmers" and DevOps right now.</comment>


Which programming language should I learn? - <AUTHOR> http://nickzarr.com/blog4/2011/07/which-programming-language-should-i-learn/

<comment><USER2> Learn C/C++, it will definitely help you a lot!</comment>


Ask HN: Is there an app to view savings account bank statements? - <AUTHOR>

Hi
I felt I should post this from a new account.
I'm investing some money in a mix of term deposits (at varying rates and terms), funds, and sometimes bonds. Sometimes, in small bits, I add money to my savings through the year.
I'm looking for an app that will allow me to enter the data from the statements, and maybe enter data when I make an investment (of any type), and will show me basic data about it. Is there anything better than excel to do this?
I'm considering making my own app, as I really can't find anything good in this market! <comment><USER2> would mint.com fit?

<comment><AUTHOR> This is true, mint seems to do what I need!

The problem is it communicates directly with the bank, and doesn't let me add data manually. Since I make on average one or two transactions per month, this wouldn't be a problem, but mint doesn't allow it! I'm still stuck :/</comment></comment>


Ask HN: When was the last really transformational idea in programming languages? - <AUTHOR>

This question came up in another thread (http://news.ycombinator.com/item?id=470838) and got me thinking. Smalltalk dates from the early 70s; Lisp, APL, and Forth are all earlier. When was the last innovation that can truly be called fundamental?
We're not talking language features here. Obviously a great deal of refinement and elaboration has taken place since 1971. To qualify, an idea has to be deeper than that. It needs to have the paradigmatic quality that the above do. (Edit: I'm not looking for historical arguments so much as asking what ideas people feel have this quality.)
The only other candidate I can think of off the top of my head is Backus' 1977 work on FP, which certainly struck me as fundamental when I read it, though now I'm not so sure.
Others? <comment><USER2> The ability to securely dynamically load and execute arbitrary untrusted code within the same address space as trusted code, ala the Java bytecode verifier. I'm not certain whether the creators of Java invented this idea, but they were certainly the first to popularize it.

</comment><comment><USER3> When was any? I find these sorts of things crumble in your hands, because as soon as you pick a candidate you find yourself thinking "but that was just a variant of such-and-such earlier idea."

<comment><USER4> I think that such transformational ideas, although possibly variations on previous ideas like you say, can have a certain distinct paradigmatic quality that the OP is referring to. I would offer up Miranda (1985) as an example: non-strict, purely functional.

<comment><USER4> It appears that Turner has languages in this paradigm dating back to 1972 with SASL. Are there others?

</comment></comment></comment><comment><USER5> Alan Kay has been asking this question for a long time now. His "Viewpoints Research Institute" is doing some interesting work in this direction.

<http://vpri.org/>

One of their projects is to see if they can build a complete software stack -- from the OS through the GUI and networking/graphics libraries to end-user software -- all in 20,000 lines of code total.

They have already made some major progress in the past few years. I highly recommend reading (or skimming) their progress report from last year. In addition to being quite impressive, it also has several cool ideas that I had not seen directly before:

<http://www.vpri.org/pdf/tr2007008_steps.pdf>

<comment><USER6> I really applaud they're effort, and I'm an incredible fan of Alan Kay, but I think they're jumping the gun. They weren't required to change the stack. It's helpful, sure, but I think they should have waited until they hit beautiful enough technology that would require such a change (as beautiful enough technology will).

And focusing on code size is possibly misleading, as code size does not exactly equal orthogonality.

<comment><USER5> I have to disagree on all counts. In roughly reverse order:

 _focusing on code size is possibly misleading_

It's not the best metric, but it's close enough in this case. The whole problem is that large commercial (and some open-source) systems are in the _millions_ of lines of code. What is all that code doing?

 _code size does not exactly equal orthogonality_

One implies the other, at least in the way they've phrased the problem. Their goal is to build _everything_ using only 20,000 lines of code. This means they have a strict overall budget and therefore cannot afford any duplication anywhere.

 _They weren't required to change the stack_

You can't go from millions of lines to 20,000 by making incremental changes. The whole system from the ground-up has to be rebuilt with the code budget in mind.

 _they should have waited until they hit beautiful enough technology that would require such a change_

They would be waiting forever. At some point, you have to dive in. Nothing good ever gets built without several iterations. Combine this with the fact that frameworks and languages are best built simultaneously with the applications that will use them (so that the levels of abstraction are correctly tuned), and I think their approach is perfect. By being forced to consider all levels of the stack, they achieve all of these goals.

Incidentally, they're not hoping to get the system built in one go. They're "building [at least] one to throw away", as Brooks said. They are building a rough version of the system (over-budget on lines) to see where the problems are. Then, they will use this first system to build the real thing.

At its heart, this project seems like an ideal way to do research into computing systems. Take on a daring project which will require many innovative ideas -- some small, some large -- while making sure that you're always tied to reality by having concrete goals and need to have some sort of a working system at all times.

<comment><USER6> Thanks, Apu. I understood that these were their reasons and I certainly find them valid; we're talking about an amazing group of people here.

What I was trying to say was: to be brave, That it wouldn't be about waiting forever. Jumping in is important but keep a wide perspective and be able to throw it all out, over and over again. What they're looking for isn't going to come incrementally from code size. They've been given a golden chance here and I think they should consider being brave enough to lose site of shore -- to go for broke. I think the Alan of the 1970's would have done that.

</comment></comment></comment></comment><comment><USER7> type inferencing as used in haskell et al, that's a fairly recent development - early 90's/late 80's?

Category theory is another perhaps - it's from the 40's but it's application to programming is new - 80's perhaps?

<comment><USER8> I suspect the Hindley-Milner type inference algorithm probably showed up in the early 80's, since ML had it, and I was taught Standard-ML in the 84ish timeframe.

Of course there may be pre-ML work predating even that.

</comment></comment><comment><USER9> Most really fundamental ideas are only recognizable in hindsight, after people have built other ideas on top of them. If I remember the early/mid 80s correctly, the hot language was BASIC because it came with most microcomputers and would supposedly enable a new generation of hobbyist programmers. (Which it did, but they grew up to program in C++, Python, and JavaScript, not Basic.)

There're a lot of really interesting ideas going on in the programming language research community right now. Subtext, Epigram, associated types, Goo(ze) (which unfortunately seems to have been abandoned), JoCaml, STM, etc. Unfortunately, it probably won't be possible to judge the worth of these ideas for another 20 years.

<comment><USER10> There is a demo video of Subtext here: <http://www.subtextual.org/subtext2.html>. It looks like it would be fun to play with. Too bad we can't download it yet.

<comment><USER11> you can download the code for that demo: <http://subtextual.org/subtext2.zip>

</comment></comment></comment><comment><USER12> Operational semantics has transformed language theory quite a lot in my opinion. It has set a new precedent for precision in describing programming languages. I would hope that more new languages began to pick that idea up. And then to use formal machine verified methods for verifying its meta-theory.

</comment><comment><USER13> The question reminds of the notion of processes and channels in Occam with constructs for parallelizing based on Tony Hoare's CSP theory.

<comment><USER14> It's a good thing I read the thread before commenting because that was _exactly_ what I was going to write!

Naturally you've got my vote.

Let me add a bit of history to reduce the 'me too' content: There was an interesting hardware development at the same time which was specifically tailored to these channels, the 'transputer' by INMOS.

The whole upshot of this idea was that processors and a bit of support structure would live on a small dimm like package that you could stick into a base platform to create a mini cluster on a card.

I think this idea was well ahead of its time and that eventually we'll see something very much like it as our future hardware architecture. After all the current trend towards clustering and miniaturization all point in that direction.

<comment><USER15> You might be interested in XMOS (<https://www.xmos.com/>), a start-up ran by David May formerly the architect of the Transputer and the designer of Occam at INMos, who are creating new parallel processors based around a parallel variant of C called XC.

</comment></comment></comment><comment><USER16> I'm not a language connoisseur so don't know if this meets your paradigmatic quality test and it's kind of old, early 80's, but significant indentation as popularized but not invented by Python. [http://python- history.blogspot.com/2009/02/early-language-de...](http://python- history.blogspot.com/2009/02/early-language-design-and-development.html)

I believe it is a large factor of why Python has/is gaining mindshare in technical but non-programmer fields, education, science. If true and continues seems transformational to me.

</comment><comment><USER17> One place where big new ideas are badly needed is in robotics. No existing language is a good match for programming continuous, dynamic movement. I've been working on a bunch of techniques to make it easier, but they're not ready for general use yet.

</comment><comment><USER18> Monadic models of computation, in Haskell etc?

</comment><comment><USER8> Practical implementations of languages based on lambda calculus and graph- reduction.

KRC, SASL, Miranda. Simon Peyton-Jones was a key driver of some of this work, and obviously he's still a major force behind Haskell.

</comment><comment><USER6> I've been working on something for a while that I think could represent a fundamental shift in constructing software. It's essentially an environment that takes collections of nodes and assembles them into self-defined constructs. Since there's nothing more than these simple key-value nodes, anything that is created is a matter of cloning an existing node, removing one, or setting the nodes state. There's no textual syntax besides operators in expressions. I haven't published the results yet, but if you're interested in finding out more, feel free to email me.

</comment><comment><USER19> I would say the programming aesthetics really do count for something. This has influenced Python, Mathematica, Arc, Fortress, and the list goes on. Yet it's fairly new.

</comment><comment><USER20> Don't know how transformational it has been yet, but I feel the idea that all side effecting code needs to be specifically noted by the programmer, a la Haskell, will one day be seen as a watershed.

We're only at the very early stages of the parallelisation of hardware, but as that trend intensifies, I can't imagine compiling efficient code without explicit compiler knowledge of what code might side effect.

</comment><comment><USER21> What's funny is that even all the latest trace-compiling (V8, TraceMonkey) and JIT-ting (lots of others) implementation technologies for dynamic languages date from the early 80s (the Schiffman-Deutsch JITting Smalltalk compiler, specifically).

Though there was also a fair bit of Self optimization work going on at the same time--don't know if Alan's and Peter's work was the very first of its kind.

</comment><comment><USER22> Two things that I'd probably call just features of OO languages, but seem significant:

\- Type-safe generic programming

\- Introspection

<comment><USER23> Typesafe generics have been in ML from the get-go (1970s) from what I remember. People like to talk about how type inference is useful, but it's really the generic polymorphism that makes it shine.

I was hacking together an Arc interpreter in Haskell the other day, and after refactoring some of the hairier monadic code, I was horrified to see that the type signature for a particular function was twice as long as the function body. And that's _with_ the compiler figuring it out for me... I don't know what I'd have done if it was C++ instead.

<comment><USER9> It's really amusing (in an oh-my-God-I'm-fucked way) to try and debug type errors in Happy-generated parsers. There have been times when the _type_ of the function (not even the whole error message) has been a page long.

C++ STL code can be similarly (un)fun.

<comment><USER22> Intel's C++ compiler produces much more readable error message, I find. Though, almost perversely, I've gotten used enough to GCC's cryptic template error output that I'm more comfortable with it.

</comment></comment></comment></comment><comment><USER7> What about javascript's dynamic object model, where the objects can be changed at run time? I don't think this was possible earlier on, can't remember if this was possible in smalltalk or self?

The idea of the DOM?

Both mid 90's

<comment><USER24> Javascript's design owes a lot to Self. Modifying an object's slots in realtime was pretty much the whole point of Self and what lead to the concept of a prototype language. (Well, technically, I think Self was simply an implementation of the already-existent prototype language idea... but is an idea actually useful before there's an implementation of it to test theories with? Chicken-egg... :))

The DOM (as in Document Object Model defined by W3C) has nothing to do with Javascript - it's just an API originally designed for accessing the various parts of HTML. It was set up so that it could be implemented for almost any language. In fact, had it actually used some of the more advanced (Self- inspired) features of Javascript within the definition of the DOM, the DOM may not have been such a pain in the ass. :)

What Javascript did manage to do that was very important is that it ended up becoming not only the most installed programming language of all time, but unlike BASIC, it's actually a pretty damn good language under the covers. So if anything, the fundamental innovation of Javascript within every browser has basically yielded another BASIC-like inspiration to a whole new generation of programmers. Except this time, their intro language was much more abstractly powerful.

</comment></comment><comment><USER25> Somewhere/Sometimes comes the point where fundamental ideas just evolve or merge's. Democracy is one of these examples, just from a other domain. Future improvements would be massive parallelism and languages would evolve on this.

</comment><comment><USER26> How about regular expressions as an essential part of a modern, general purpose language (rather than a separate mini-language)?

</comment><comment><USER27> Model checking.

</comment><comment><USER28> Inversion Of Control principle and Dependency Injection - 2002-2005. That is single possible answer.

<comment><USER29> Is there a difference between IoC and callbacks? In any case, I don't think it can be said to be -quite- that recent.

</comment></comment><comment><USER30> XSLT. Hahahahahaha!</comment>