50 years of Fortran at CERN (2007) - <AUTHOR> http://cerncourier.com/cws/article/cern/30873 <comment><USER3> My first programs were written in FORTRAN II. The language was really quite terrible; I wish I still had some of those programs I wrote, I'd like to see how they looked written before Dijkstra's "GOTO considered harmful".

To me, programming during that time, it seemed like FORTRAN's evolution stalled at a critical period between FORTRAN IV and FORTRAN 77. I'd been exposed to LISP, PL/1, SOBOL, and APL in my university programs and it was frustrating to use FORTRAN IV for non-numerical projects. The last time I did so was around 1974 when I wrote a LR parser generator in FORTRAN IV. The lack of mechanisms for handling structured data made it a messy job.

It was at that point that I came across the source for the Wirth's first Pascal compiler that ran on the computation center's CDC 6400. I learned Pascal by studying that code and I never wanted to go back to FORTRAN (or PL/1).

A few years later the greatly improved FORTRAN 77 became available, but it was too late. C and Pascal were real and gaining ground and Algol 68, CLU, Alphard, Scheme, the Red and Blue languages, and ADA had captured the imagination of the language designers.

<comment><USER4> Err...minor nit...since Alphard was never implemented, it's not really a competitor. Couple of pretty interesting papers came of it tho.

<comment><USER3> Yes, it was a fun time for programming languages, lots of new and ultimately seminal ideas were being explored on the pages of SIGPLAN and conference proceedings. C and Pascal were practical languages and, in some programming domains, Scheme and Ada were too. If FORTRAN 77 came out in 1972 I think it might have stayed in the game, but things were developing quickly. And as you point out correctly, language features were being explored more quickly than they could be implemented.

CLU even more than Alphard is an example of an academic experiment in language design that had a profound influence on the future of real programming languages.

 _Exceptions_ \-- C++ exception handling comes from the ideas found in CLU.

 _Object oriented programming_ \-- The name CLU comes from cluster because Barbra Liskov recognized the importance of compound data structures (objects, but she called them clusters) that supported an explicitly defined interface of functions (methods). These ideas were inspired by Simula (an older simulation language that had support for defining the real-world things, objects, being simulated).

 _Immutable vs mutability_ \-- Strings were immutable, as were other elementary types.

 _Iterators and yield_ \-- First introduced in CLU are now common in modern languages.

 _Call semantics_ \-- like lisp, data is passed by sharing a reference to the data, in contrast to the way FORTRAN or Algol passed parameters. Java and many other languages now use these call semantics, not just Lisp of Scheme.

 _Multiple assignment_ \-- operations (methods) could return tuples that were destructured at the point of call into multiple values. Now common in modern languages.

 _Variable sized arrays_ \-- as I recall, the runtime was intended to handle the autosizing of vectors. I'd never seen anything like this before 1974 (except for LISP's lists).

All these important ideas and more in a language no one programmed in.

Other languages were pushing in new directions too. The Algol68 Revised Report came out while I was in grad school. Wow, the language spec was so interesting that SIGPLAN made it a special edition of their monthly journal. Every concept was completely generalized: arrays could have multiple dimensions and _any number_ of these could be left out while indexing an array value resulting in a multi-dimensional slice. I've still never seen anything like this in a modern language (is it supported by R or Mathematica? I can't remember.) Again it wasn't the implementation of Algol68 that was important (the language as specified was too hard to implement) it was the ideas it suggested to future language designers--in fact, Niklaus Wirth quit the Algol68 design committee with the idea that Algol ought to go in a simpler direction, which led to Pascal.

</comment></comment></comment><comment><USER5> From the article: > Today, Fortran 95 provides all desirable object-orientated and structured programming features, pointers and overloaded operators, and is extremely efficient in the handling of arrays.

The object-oriented features (inheritance and type-bound procedures, for example) were added only in Fortran 2003. Also, since the writing of the article, there has been another revision, Fortran 2008, adding support for parallelism (coarrays).

<comment><USER6> Often, additions to a programming language standard (or for that matter, any standard) reflect vendor specific extensions to existing implementations. When standards committees decide to add new features that lack implementations, those features may be more likely to be off in the weeds or to produce unresolvable positions in regard to its specification.

<comment><USER5> That is what happened with coarrays (which was called F-- before), the object- oriented features, however, were not based on existing extensions. For example, neither the Intel compiler, gfortran, nor g95 supported any of those features at the time of the article's writing, and the NAG compiler provided only partial support[0].

[0] [http://portalparts.acm.org/1280000/1279941/fm/frontmatter.pd...](http://portalparts.acm.org/1280000/1279941/fm/frontmatter.pdf)

<comment><USER6> Both IBM and Cray had nearly all the features implemented per "Data enhancements and object orientation" on page 6.

<comment><USER5> Yes. That document is from 2007, which is three years after Fortran 2003 was standardized.

</comment></comment></comment></comment></comment><comment> dj-wonk I'm interested in the historical and current use of FORTRAN. However, the article wanders off topic and (in my opinion) loses credibility when it dives into opinion.

For example, "Fortran is the language of high-performance technical computing -- even if this is an increasingly smaller segment of today's computing activities."

I grow weary of this form of sentence construction. Saying "X is the language of Y" smacks of marketing, not something that I want to see in a journal such as the International Journal of High-Energy Physics. I don't mind if a writer claims something the best language for high-performance technical computing, but they should at least give some comparison with alternatives and empirical support.

Update: I see this was written in 2007.

<comment><USER7> The thing is, this is not marketing. Performance really does matter in HPC and in quite a few areas the workflow is to prototype in Matlab and write implementations in modern Fortran.

You can write performant code in C/C++, and many do, but Fortran is still the easiest to do so in.

<comment><USER8> > Fortran is still the easiest to do so in.

Let's not get too carried away, what is an example of Fortran making speed easier than C++?

<comment><USER9> Aliasing, for one.

Plus, array's are a first class feature in Fortran. "But Eigen!" you retort. Sure, except this library I want to use uses MTL4, this other library that I need uses uBlas, and this other one uses MKL. Ouch, ouch, ouch.

Pretty much if you can write Matlab you can write very highly performant Fortran without doing anything too special. Dealing with incompatible libraries, templates, and all the other stuff that C++ subjects you to is not 'easy'.

<comment><USER8> What I've learned is that when people say Fortan is faster, they mean for their specific math based usages due to good integrated libraries, and that they often doesn't really know C++.

</comment></comment></comment></comment></comment><comment><USER10> I wrote FORTRAN 90/77/4 at university. It's a pretty horrible language, to be honest. While it keeps getting updated regularly, each one adds a crust of "modern" features on top of a strata of mismatched features previously designed by committee. Its redeeming feature is its native support for matrices, including its ability to transparently parallelise operations on them. It's quick for the same reason JavaScript is quick - a lot of work and money has been spent creating fast compilers.

To me the main reason for its use seemed to be 50 years of technical debt. Ancient, badly-written functions written long ago that have been thoroughly tested but no-one can remember why they work; ancient professors who refuse to learn another language or validate code written in another language. And so the technical debt feedback cycle continues.

<comment><USER11> Fortran is the language of high performance computations because it forces programmers to use static memory layout, and has real arrays. It is easier to emit (SSE-)vectorized assembly from Fortran code than from C. You can of course achieve the same effects in C as you can in Fortran, but by default it requires more knowledge. For example not many people are aware of the "restrict" C keyword, which is absolutely necessary to write vectorizable code.

JavaScript is incomparably slower than Fortran. Also, Fortran has been fast since day 0.

Edit: I've just found out that "restrict" has been added in C99. Which means that even in the 90s there was no good support for parallel/vectorized code in the C standard.

<comment><USER7> You mean day 1, Fortran uses 1-based array indexing (by default, it is configurable for each array declaration!) ;-)

edit: Variable Length Arrays (VLAs) were also not available until C99 for C, while they were part of Fortran since 1990.

<comment><USER12> And in C11, I believe they are now optional. EDIT: Oh, and kudos on the day 1 vs day 0 comment; very funny!

</comment></comment></comment></comment><comment><USER13> During parts of my career, it looked like there was a whole alternate software universe where the foundation was both legacy and spanking new Fortran code with various Tcl/Tk interfaces (often outdated custom versions).

And these days, I'm not quite sure whether they weren't better off…

<comment><USER14> Having worked with both Tcl/Tk (and Perl/Tk) and Java (AWT and Swing), I find Tk is better for most jobs, because it is so simple.

In fact, I am certain that all the desktop apps I've worked with would be much simpler to maintain and distribute were they written in Tcl/Tk.

<comment><USER15> I agree. The simplicity of both made them a major contender for the agent- oriented programming trend that tried to happen in the 90's. If presentation and logic are separated, Tcl/Tk can be seen as a sort of DSL or 4GL for GUI development. That's how I used it.

Now, there's plenty of lightweight, portable, GUI toolkits to use that I can just write a wrapper or code-generator for. Tcl/TK is less necessary than before. Still among simplest, though.

</comment></comment></comment><comment><USER16> Fortran is still big in our company, an engineering consultancy with lots of old gas calculations to support. There's also a variety of old basic programs which I've been asked to support and update.

<comment><USER4> Ask for a raise. :-)

</comment></comment><comment><USER17> This should probably have a (2007) in the title, its only two more years until it turns sixty!

<comment><USER18> Missed that one. Thanks!

</comment></comment><comment><USER3> I just noticed [http://arxiv.org/pdf/1507.03989v1.pdf](http://arxiv.org/pdf/1507.03989v1.pdf) (it's on todays HN). It claims that in Astronomy Python is used over twice as much as FORTRAN and even C/C++ is used more.

<comment><USER19> Nearly all astronomers who use Python are actually using Fortran and C++ - <USER2> python code is mostly wrappers on low-level libraries.

So the claim of "use" is really what the astronmer sees in their programmer- not in the measure of instructions executed.

<comment><USER20> Yes, but from their perspective, it's an implementation detail. LAPACK could have been written in assembly language or APL, and their Python code would work just as well.

Python/Matlab/IDL are important because it is easier to quickly write correct code than in C++/Fortran.

<comment><USER19> Right, but if you say people "use" something, it's disingenous (for a scientific paper) to imply that implementation details don't matter.

Had _I_ written the paper (I'm a scientist, I work with astro data sets at times, and manage Python wrappers for Fortran and C++ libraries) I would have calculated this based on instructions executed, not lines of user-facing code.

After all, if the code the astro people called was Pure Python, they wouldn't use python, as it would be too slow.

<comment><USER21> Reminds me of the 'made in X' fallacy.

      #!/usr/bin/env python
      from subprocess import Popen
      Popen("/usr/bin/some-fortran-binary")
      print("Once again python saves the day.")

</comment></comment></comment></comment></comment><comment><USER22> "Today, Fortran 95 provides all desirable object-orientated and structured programming features"

...for some values of "desirable"

<comment><USER4> F95, forgiving a couple of faddish additions, is a pretty reasonable language. I did some fun things with it, and only hated the process part of the time. So unlike F77 in which one discovered new horrors and general unpleasantness almost continually.

</comment></comment><comment><USER23> Funny to see this and read some of the comments here - at my last job, where I was doing mostly C#, I was asked to help maintain/update some Fortran code that used an Excel spreadsheet with VBA glue as the UI. I didn't find Fortran to be very pleasant to work with, mostly because there seems to be very little online documentation on how the syntax works, and there seems to have been several major changes to the syntax in different Fortran versions.

I remember trying to figure out how to get an array of strings from Excel to Fortran. The farthest I got was getting the combined strings into the Fortran and getting stuck trying to figure out how to manipulate arrays in FORTRAN 90 I think it was.</comment>


It's Time To Pony Up. Why Good Websites Shouldn't Be Free. - <AUTHOR> http://www.newsweek.com/id/208163

<comment><USER2> Right... this might have something to do with it:

<http://www.theatlantic.com/doc/200907/news-magazines>

They're doing a good job at grooming their audience, but I think all that will happen is that they'll accelerate their own downfall.

I'm really sorry for newsweek and all those other publications that are going to die because some of them really have something to contribute but their model has been solidly disrupted, people no longer want to pay for content so you either find a way to accommodate that or you will have to die out. This is not necessarily a good thing but it is inevitable.

</comment><comment><USER3> He cites a single example for his entire article as proof that users don't mind paying for things. Not exactly scientific, is it?

Really, we need to get back to purist capitalist principles for the web: if something provides "value", it should cost money. The culture of free has gone on way too long though, and I suspect users are just too spoiled.

<comment><USER4> Pure capitalist principles do mean that everything has to have a cost. I'm a die hard capitalist but give away source code, and other content for free.

Google gives everything away a lot for free and makes a ton of money, so obviously it's not giving stuff away that the problem -- Its outdated notions of how their business should be operating and what their value add is.</comment></comment>


MongoDB with Spring Data project - <AUTHOR> http://www.javacodegeeks.com/2012/01/mongodb-with-spring-data-project.html

<comment><USER2> Great article actually.. I have been using Spring Data with JPA and a relational dbms. I have also built applications that utilize mongodb.. But never used Spring data with mongo.. Thanks</comment>


Dear HN: please use "flag" more often - <AUTHOR>

http://ycombinator.com/newsguidelines.html says "If they'd cover it on TV news, it's probably off-topic." I'd like you to extend that to "If they'd cover it on Reddit". I'm not saying Reddit's not interesting or worthwhile, I'm saying Reddit already has all this stuff -- there's no point in these two sites being clones of each other.
Examples currently on the front page that are not by any stretch "hacker news": "one man has written virtually every pop song in the last 20 years", "why is the american dream dead in the south". Also suspect: D&D's 40th birthday (sure, nerds care, but does this make me smarter?) and a Roman glass gaming die that's for sale at Christie's (are we Craigslist?).
I know why these articles get submitted: they are interesting, so they get up-voted, and HN has karma points, so people try to get more of them. Merely refraining from up-voting these things isn't enough -- HN has a lot of general audience traffic these days who will up-vote without considering relevance.
And yes, I know crying "this isn't news for hackers!" is basically the same as old fogies who used to cry "this isn't news for nerds!" on Slashdot. But look what happened to Slashdot. You have the power to preserve the relevance of HN to hackers, by flagging stuff that is off-topic, even if it's really interesting. <comment><USER2> Every medium.com story should be added to the list.

<comment><USER3> medium.com articles are already super-heavily punished such that they rarely make the front page.

<comment><USER4> Yet at least once a day a Medium story manages its way to the frontpage.

I'm sticking with the first rule: "If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity." \- it's like the Prime Directive of HN.</comment></comment></comment>


Ask HN: Advice for an 18yo looking to do an internship? - <AUTHOR> I'm looking to do an internship or work experience before I start University mid-feb next year. I'll be studying engineering, but I also really enjoy the software development (both embedded and web) I've done competing in robotics competitions over the years.
How should I go about asking companies about internships? Especially since I haven't even finished highschool yet. Are there things (portfolio, CV, etc.) that I need to prepare before I start asking around?
I'm located in Australia if that helps.
Thanks in advance. <comment><USER2> No idea how it works in Australia, but here in France, you can't do an internship without school support/resources (legal protection, etc.). Can your school help with the legal framework around interships?

You should write your CV though, as it's never time lost. Then send it to whoever might have contacts in the domain you want to work in (physics/math teacher? or ask your future College's Alumni for contacts).</comment>


Lack Of Cybersecurity Talent Could Leave U.S. Vulnerable - <AUTHOR> http://www.crn.com/security/218600240;jsessionid=J5LXG1BWK0OPEQSNDLPCKHSCJUNN2JVN

<comment><AUTHOR> I think this is interesting, because there's very little being done to increase the level of "cybersecurity" knowledge among the students not looking to do malicious things. I personally believe that they should teach _every_ Computer Science student to hack, if only because the malicious ones will learn it anyway and it's important that the non-malicious ones learn it so they can fight back</comment>


Fortnite Can Take ESports to the Next Level - <AUTHOR> https://medium.com/@SliceCapital/fortnite-can-take-esports-to-the-next-level-431e41cbc154 <comment><USER2> First sentence, _If you don't know what Fortnite: Battle Royale is, then you are definitely not a gamer._ ...and closed.

<comment><AUTHOR> You're right, that's a dumb statement. Also false.</comment></comment>


Review my job board - <AUTHOR> http://gowork.at Hello HN community.
Recently we've launched a new IT geek oriented job board.
http://gowork.at/ (Gowork@)
I have shown it to the IRC community and they pointed out some issues regarding the market niche and since we didn't have any posts it became an chicken and egg problem.
We currently trying to solve the niche, but we wanted to be design, web dev job board mostly.
And to start having some jobs post we integrated other job boards listing that could be used in search.
Our main feature currently is: a boolean search engine, that let's users save it and get daily/weekly updates based on that. Which is cool, for instance you might want to get web dev jobs but not PHP related, so you could just setup an search like "web dev -php".
In a nutshell: I would love to know your guys opinion, advices, what we could do to improve it, and things we are doing wrong or not all.
Thanks
BTW: We are giving away free job posts, if you want to try it out free of charge try 'GWFREE' on discount code. <comment><AUTHOR> Hello HN community.

Recently we've launched a new IT geek oriented job board.<http://gowork.at/> (Gowork@)

I have shown it to the IRC community and they pointed out some issues regarding the market niche and since we didn't have any posts it became an chicken and egg problem.

We are currently trying to solve the niche, but we wanted to be design, web dev job board mostly. And to start having some jobs post we've integrated other job boards listings that could be used in search.

Our main feature currently is: a boolean search engine, that let's users save it and get daily/weekly updates based on that. Which is cool, for instance you might want to get web dev jobs but not PHP related, so you could just setup an search like "web dev -php".

In a nutshell: I would love to know your guys opinion, advices, what we could do to improve it, and things we are doing wrong or not all.

Thanks</comment>


Ask HN: Brackets/braces placement on Kinesis Advantage? - <AUTHOR> I'm debating getting a kinesis advantage to help my wrist pain. The only thing that seems off is the placement of [] and {}. Anyone here with the keyboard have any thoughts about it? Are the y hard to reach, does it only seem that way, is it easy to get used to...? <comment><USER2> For me thr Kinesis advantage was a life saver! Thr braces were a gripe for a long time, but like anything you get used to it.

You can remap key locations, with built in programming options on the keyboard. (seriously considering making the CAPS lock a synonym for tab)

I have one very important tip - you need to get rid of pointer input too for a total solution - no trackpad or mouse.

A cannot recommend Karibiner highly enough - I have completely replaced all trackpad mouse movements and clicks with keyboard, and I am about 75-80 percent as fast with keyboard mouse as with TouchPad.

<comment><USER2> My only gripe with the Kinesis is it's thickness and key travel distance. Wish someone would make a thinner lower profile version of this.

</comment></comment><comment><USER3> I've been using a Kinesis Advantage for about 3 years and the placement of those keys is my biggest gripe with the keyboard (apart from the fact that you look like a total dork / wannabe spaceship commander with it - whether that's a pro or con is up to you). I never really got used to the placement, but the keyboard so amazing in all other respects that it doesn't really matter overall.

<comment><AUTHOR> Was it ever an option to remap them?

</comment></comment><comment><USER4> Before you try the Kinesis Advantage, have you tried $15 wrist braces? I used to have terrible wrist pain, and wearing the braces for a few hours a day (and sometimes overnight) made it disappear entirely.

<comment><AUTHOR> Something like this you mean [https://m.podobrace.nl/shop/merken/product/mcdavid-carpal- tu...](https://m.podobrace.nl/shop/merken/product/mcdavid-carpal-tunnel- syndroo-polsbrace-454)

<comment><USER4> Yup, exactly! You can still use a keyboard and mouse while wearing them.</comment></comment></comment>


Why computers suck at math - <AUTHOR> http://www.techradar.com/news/computing/why-computers-suck-at-maths-644771

<comment><USER2> Someone else who can't tell the difference between math and arithmetic.

</comment><comment><USER3> It's just a performance trade-off. For those who need high-precision math there are plenty of options available.</comment>


Google's Go Programming Language: Taking Cloud Development By Storm - <AUTHOR> http://readwrite.com/2014/03/21/google-go-golang-programming-language-cloud-development#awesm=~ozcw5CKDZoh19j <comment><USER2> Go Is definitely something to watch. I have dabbled in it a bit and found it pretty quick and simple to learn. Not as clean to code as Node, but then again I mostly do web development anyway aka I use JS a lot.

There are a ton of projects using Go, having seen them on Github. More so, a lot of big names are implementing it. I'm sure with more use and more tech companies getting into Go, the language will only develop further. Its going to be around for a while.</comment>


Billions Served: Norman Borlaug interview (2000) - <AUTHOR> http://www.reason.com/news/show/27665.html

<comment><USER2> Some of the claims in that article are pretty bogus: _Who has saved more human lives than anyone else in history?_

I'd put 2 other names ahead of his:

Stanislov Petrov - who didn't intentionally decide to _not_ start WW3, he just decided that if it were going to happen, the Americans would have started it differently. <http://en.wikipedia.org/wiki/Stanislav_Petrov>

Fritz Haber - Looking to make money, he came up with a way to make fertilizer from the nitrogen in the air. This is now the process that underlies about half of the agricultural fertilizer production. If this hadn't been invented, the upper limit of human population would be a lot lower than it is now - we'd have got to about 3 billion people before we reached the point where we couldn't feed any more people.

<http://en.wikipedia.org/wiki/Fritz_Haber>

<http://en.wikipedia.org/wiki/Haber_process>

</comment><comment><USER3> _most people have put themselves on intellectual autopilot. Most don't study on their own initiative, but only when they are forced to do so. Even when they study, they choose to study the obvious and conventional subjects_

 _For them, education was about the doors they believed would open because of how they were labeled by institutions, not about making themselves truly better as thinkers_

:-(

<comment><USER4> I believe the fault here, at least in most third world countries, lies with society and associated expectations. My grandmother never approved of my decision not to become an engineer, but go into the hard sciences instead. The quality of education I got there was never a problem (and in fact was really good) and the institutions had a lot to do with that quality.

I know of any number of people who kept trying to become an engineer or a doctor (at least in those days), or chose science in high school cause that's what they were "supposed to do"

<comment><USER3> sadly, we don't learn something because we like it, or we want to learn it. we learn something (anything) because we think 1. it'll increase our job prospects 2. it'll increase our "status" in "society" and 3. it'll help us earn money.</comment></comment></comment>


Software That Copies DVDs to Players Is on Trial  - <AUTHOR> http://www.nytimes.com/2009/04/24/technology/24dvd.html?_r=1&ref=technology

<comment><USER2> When it comes to DVDs I want exactly one thing: a player that goes from closing the tray to playing the feature in less than one second.

No FBI or Interpol warnings in multiple languages, no previews, no disclaimers, no bonus features, no menus. Just. The. Damn. Movie.

If I want any of thatother garbage, I can press the "menu" key at any time and go there.

Copying DVDs? Who cares. Anyone who wants to do this already can, and the legality of such activity probably doesn't bother them. As a consumer I wouldn't spend a penny on this. But I would buy a new player that works like one I described above in a second.</comment>


Why you should turn off push notifications right now - <AUTHOR> http://www.wired.co.uk/article/age-of-interruption <comment><USER2> I keep my phone and MacBook on DND anytime I'm working unless I'm expressly having a conversation in Slack, Messages, etc. It works for me.

I figured out a small hack to make DND mode run in OS X 24/7 which has been great.</comment>


Show HN: Social Crawlytics API  - <AUTHOR> https://socialcrawlytics.com/docs/api

<comment><AUTHOR> So you know, the API was designed to be simple and easy to get started with. We try to accommodate the most used methods, though if there's something you feel should be added, please let us know!

Our API is stateless, meaning there's no sessions or cookies to manage, you just need to supply your account token and key with each API request you make.

Happy hacking!</comment>


Ask HN: Paying overseas founders - <AUTHOR>

How do startups pay their overseas founders? Can a founder without a working visa be paid in a US account? I have an incorporated US startup that finally grew to the point where we feel comfortable paying ourselves, but in the meanwhile my F1 visa and my post graduation practices time (in which I could legally work in the US and had a SSN from my on-campus work) expired and I had to leave. My bank account remained open to pay off my credit card debts. Could I legally receive my payment in that account? If not, which other options do I have? <comment><USER2> It's illegal to receive any US money without a US work visa. That said, it's a pretty grey area if you're working remotely, but by law you are supposed to be paying tax to the US for any money earned from the US (even if you aren't in the country).

You could just set up a bank account in whatever country you're in & just get paid to that account. Paypal is really expensive, so I wouldn't recommend that, but you can look at alternatives like Xoom & TransferWise.

If you're going to be on US soil anytime soon, I know others use Charles Schwab which has some kind of international account where you can withdraw money at atm's all around the world with no fees. I think you'd need to be in the US to open an account though.

<comment><USER3> > you are supposed to be paying tax to the US for any money earned from the US > (even if you aren't in the country)

Just note – this can be overridden for some cases in US-<your_country> income tax treaty. For example certain kinds of remote work can often be taxed in the country where the remote worker is located, not US.</comment></comment>


Methodist University Hospital Confirms Steve Jobs's Liver Transplant - <AUTHOR> http://daringfireball.net/linked/2009/06/23/methodist-u

<comment><USER2> This is interssting because there was an article in yesterday's NYT talking about liver transplant wait times, and how the rich could travel to places where they could avoid line ups.

It mentioned this very hospital as having one of the shortest waiting periods.</comment>


[Apache Sanselan] Demystifying how Sanselan determines image format - <AUTHOR> http://www.ashishpaliwal.com/blog/2009/07/apache-sanselan-demystifying-how-sanselan-determines-image-format/

<comment><USER2> Half-sentence summary: It's the magic numbers, silly!

<http://en.wikipedia.org/wiki/Magic_number_(programming)>

The same was that almost everyone would do it.</comment>


Own Your Awesome: Modesty Is A Dirty Word - <AUTHOR> http://synecdochic.dreamwidth.org/401060.html?nc=40

<comment><USER2> That's pretty far-fetched. On the subject of downplaying your accomplishments when complimented:

"This behavior, and the statements that arise from it, is a performative act of emotional violence against the self-assessment tools and skills of others, and disproportionately, against women."

I feel like I've peeked into her mind and it's a foaming vat of frustration, self-doubt and victimhood.</comment>


The Mathematical Cartoons of Larry Gonick - <AUTHOR> http://www.msri.org/ext/larryg/index.htm <comment><USER2> Larry is also the author of my son's favorite history book: The Cartoon History of the Universe[1]

1- [http://en.wikipedia.org/wiki/The_Cartoon_History_of_the_Univ...](http://en.wikipedia.org/wiki/The_Cartoon_History_of_the_Universe)

</comment><comment><USER3> He also did The Cartoon Guide to Physics and probably a few others in the series: [http://www.amazon.com/Cartoon-Guide-Physics-Larry- Gonick/dp/...](http://www.amazon.com/Cartoon-Guide-Physics-Larry- Gonick/dp/0062731009) These are very popular in some homeschooling circles.</comment>


Lisp: A Language for Stratified Design (1987) [pdf] - <AUTHOR> http://dspace.mit.edu/bitstream/handle/1721.1/6064/AIM-986.pdf;jsessionid=9B6B8F279FDAC150B9DCA19858ECB6A6?sequence=2 <comment><USER2> SICP super-condensed -- this was my intro to Abelson & Sussman when it came out. So I ordered their book, which took a month to arrive, quite a valuable month, because I spent some of it trying to develop the ideas compressed into this article, for myself. You're better placed to absorb and appreciate an idea like lazy lists after an independent crack at the same problems.

</comment><comment><USER3> If you like what you read, make sure to read "Structure and Interpretation of Computer Programs," by the authors of this paper. You can even get video lectures online! [1]

[1] [http://groups.csail.mit.edu/mac/classes/6.001/abelson- sussma...](http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman- lectures/)

<comment><AUTHOR> Link to HTML version of SICP:

[http://mitpress.mit.edu/sicp/full-text/book/book- Z-H-4.html#...](http://mitpress.mit.edu/sicp/full-text/book/book- Z-H-4.html#%_toc_start)

</comment></comment><comment><USER4> [pdf] tag please.

<comment><USER5> And a [barely readable] tag.

<comment><USER6> Leaning on Google for web-based PDF rendering:

[https://docs.google.com/viewer?url=http://dspace.mit.edu/bit...](https://docs.google.com/viewer?url=http://dspace.mit.edu/bitstream/handle/1721.1/6064/AIM-986.pdf)

The PDF contains images from a scan done in the mid-90's. Elements on some pages are rather "smudged" -- particularly on the example figures (code and diagrams) that are appended.

I looked a bit but did not find a clearer copy. Would anyone happen to have one? (I.e. one that does not derive from this particular scan done by MIT.)

P.S. There is also a Postscript version available, but it is from the same scan and has the same deficiencies.

<http://dspace.mit.edu/handle/1721.1/6064>

<http://library.readscheme.org/page7.html>

<comment><USER2> It should be in <https://archive.org/details/byte-magazine> somewhere -- I forget which issue. That's where I saw it originally, on paper.

<comment><USER6> Well, the paper carries a date of August, 1987.

Volume 12 of Byte is 1987. Number 10 of that volume is September. Publishing dates typically lead calendar dates by up to a month or more.

Unfortunately, the next issue available, per the archive listing sorted by date, is 12:13, which identifies itself as November. (Perhaps one of their special issues came out in the intervening timeframe, in addition to October.)

I don't see it listed in the table of contents for September nor October. I'm about out of time, at the moment, but I might return to this, or maybe someone else will look at the next few months.

[https://archive.org/search.php?query=collection%3Abyte- magaz...](https://archive.org/search.php?query=collection%3Abyte- magazine&sort=-date&page=1)

\----

P.S. 12:14 is a "Special Issue". The next issue available in the archive is March, 1988.

It's too bad the archive is incomplete.

Nonetheless, an interesting stroll down memory lane. And I saw more than one article title I may be interested in (re)reading.

<comment><USER2> OK, I searched a little more, it's said to be Feb. '88, which seems to be missing, alas. I'd gotten the impression it was a nearly complete collection.

</comment></comment></comment></comment></comment></comment><comment><USER7> I like how the best way to waste time in a meeting in 1987 was to repeatedly press the cos button on a pocket calculator

<comment><USER8> Until you hit the number where cos(x) = x?

<comment><USER9> Exactly, that's what a "fixed point" is.

Fun fact about fixed points #1: Put a sheet of paper on a desk. Notice the precise area of the desk's surface that it covers. Now ball up the sheet of paper however you wish, without tearing it. Put it down again in such a way that every part of that sheet is somewhere over the original area that the paper occupied. Then there is at least one point on the paper that is precisely above its original location.

Fun fact about fixed points #2: Some functions, even simple ones suitable for a desktop calculator, do not reliably approach a fixed point when applied repeatedly to their own output. You can see this in action at Wikipedia "Cobweb plot" (<http://en.wikipedia.org/wiki/Cobweb_plot>) for the function known as the "logistic map", y = r _x_ (1-x). Varying the initial value of x (really, x-subscript-zero) and the parameter r can cause the map to converge to a fixed point, to enter a repeating sequence of any length, or to remain in a finite range without ever repeating. This last behavior is known as "chaos".</comment></comment></comment>


Show HN: React Boilerplate and Structor – React UI Builder - <AUTHOR> https://github.com/ipselon/react-boilerplate-clone <comment><USER2> What puzzles me the most, that nobody managed to create highly customizable editor for websites. People have two extremes – create everything from scratch, or use some hardcoded solutions, mostly for people without any programming knowledge.

So the whole niche is empty – for the people who have programming knowledge, but want this task done quickly and with best practices.

This exact solution seems to be too complicated. It is promising, I agree, but without careful consideration of composability we might end up with another monster. Also, I'd like to notice that I think it should be extremely simple, and code should be hidden completely; though the idea of "marketplace" is amazing, because all components, basically, already exist.

<comment><USER3> I have thought about this topic the same way. But what is that "ideal" solution ? What is the middle ground ? Perhaps a widget/component based drag/drop but customizable HTML/CSS if needed ?

</comment></comment><comment><USER4> I recently started a project with React Boilerplate. I like its defaults and the discipline it imposes from the start. There is a lot to learn but you can get started by looking at example code included in the project. Would I gain much by adding Structor to an existing project?

One thing I miss from react-rails is error messages with full stack traces and references to source code locations. Is there a way to get this with Boilerplate?

<comment><AUTHOR> Please update structor npm module: npm uninstall -E -D structor && npm install -E -D structor

Sorry for the inconvenience.

</comment></comment><comment><AUTHOR> Please update structor npm module:

`npm uninstall -E -D structor && npm install -E -D structor`

Sorry for the inconvenience.

</comment><comment><USER5> I'm getting a "weird error 8" when trying to install. What are its dependencies?

<comment><AUTHOR> Did you follow this instruction [https://github.com/ipselon/react-boilerplate- clone#getting-s...](https://github.com/ipselon/react-boilerplate- clone#getting-started)?</comment></comment>


Bug or Feature? Unintentionally Intentional Behaviors - <AUTHOR> https://people.xiph.org/~xiphmont/demo/daala/random.shtml

<comment><USER2> This story I think very neatly points out the difference between verification and validation -- and why it's important to have both of them in a testplan for anything new.

In short, verification asks the question: "does it do what we designed it to do?" For instance, if you have a reference encoder of some kind that is a verbatim translation of a specification, and a high-performance encoder that is designed to squeeze every last drop out of the system, you can verify the high-performance version by comparing the output to the reference; if they're the same, then you know that the high-performance version, at least on some level, works as designed.

If verification compares the design against the implementation, then validation asks the question: "is the design what it needs to be?". The story that xiphmont told here is a validation issue: the implementation is perfectly correct, but it's the design that isn't what he'd hoped for! Although verification often takes more of the time than validation, in my experience, validation often seems to take quite a lot more creativity than verification.

Thanks to Monty for writing this up, and providing such an illustrative example of the difference! It's a useful distinction to have, especially when looking at errors that escaped testing and made it to production.

<comment><USER3> I've had a lot of these problems where everything is correct but nothing works as intended. Turns out, numerical mathematics excels at making programming more about validation than verification.

Breaking the continuum into pieces breaks your symmetries. For example on a finite rectangular grid, a sphere is not rotationally invariant. Even if your maths is valid in the continuum, for the implementation, you still need to prove that it is valid (i.e. fulfills all desired properties) on a discrete grid.

I have zero experience with video compression, however, the author states that the issues get less severe when the video is rotated by 90˚. I guess the compression algorithm is designed to work irrespective of orientation. Therefore, my humble guess is that they failed to implement the desired symmetry of the continuum in the compression algorithm that acts upon discrete spatial coordinates. Unfortunately, there's no way to recover all symmetries from the continuum on a discrete grid. You always get some kind of artifacts and you can only work to reduce them for the case you are considering.

</comment></comment><comment><USER4> For anyone that wants to get started hacking on Daala, we keep a list of easy, good first bugs here on GitHub.

[https://github.com/xiph/daala/issues?q=is%3Aopen+is%3Aissue+...](https://github.com/xiph/daala/issues?q=is%3Aopen+is%3Aissue+label%3Aeasy)

It's a really fun project to hack on!

</comment><comment><USER5> I assume this article is written for people who already know about Daala. I had to search on the name to learn it's a video compression technology. After that the article made more sense, but a 2-3 sentence introduction at the start of the article would help people like me.

<comment><USER6> Point taken, short intro added.

</comment></comment><comment><USER7> This article needs to be read by any executive trying to push aggressive ship dates.

It's hard to explain why development is not always easy but I think this provides a pretty sobering example.

</comment><comment><USER8> I see these two links submitted yesterday (the 2nd very briefly on front page) but no discussion:

[https://www.ietf.org/mail-archive/web/video- codec/current/ms...](https://www.ietf.org/mail-archive/web/video- codec/current/msg00235.html) [http://www.ietf.org/proceedings/92/slides/slides-92-netvc-0....](http://www.ietf.org/proceedings/92/slides/slides-92-netvc-0.pdf)

Realistic that there could be an industry consensus next generation video codec (like Opus for audio) with Daala as basis?

<comment><USER9> I hope it will work out. It worked for Opus for WebRTC as a mandatory codec, though I'm not sure if Opus was proposed as mandatory for the audio tag (I think it should).

Xiph used preemptive approach and refuted all accusatoins and patent attacks on Opus as soon as they surfaced, which helped its acceptance in IETF. They plan the same tactic for Daala which hopefully would kill all the FUD. That's in contrast with VPx where Google waited for lawsuits instead of defending it right away and refuting any false accusations.

However IETF acceptance doesn't mean that the likes of Apple will actually start using it. But making it mandatory for the video tag would be a big victory, since those who refuse to support it will be under pressure to follow the standard.

<comment><USER10> _> I'm not sure if Opus was proposed as mandatory for the audio tag (I think it should)._

[https://www.w3.org/Bugs/Public/show_bug.cgi?id=18932](https://www.w3.org/Bugs/Public/show_bug.cgi?id=18932)

It was CLOSED WONTFIX.

<comment><USER9> _> Status: Rejected Change Description: No spec change. Rationale: See Ian and Adrian's rationale in comment 2 and comment 3._

 _> #2: Working groups can't force a browser to implement something. Are all the browser vendors willing to implement it? That's what matters._

 _> #3 Microsoft doesn't believe HTML5 needs to specify a mandatory to implement codec. The market is quite capable of ensuring that popular formats are supported on the web. Opus did not exist when ISSUE-7 was closed. Who knows what formats might be more popular than this by the time HTML5 gets to Recommendation, or after that. It's also not clear that there will be widespread adoption of Opus for the purposes that <audio> is currently used.

This does not mean Microsoft is for or against supporting Opus with <audio>, just that the spec doesn't need to say anything on this._

Rationale is invalid, since in other instances standard is enforcing something (same WebRTC). And of course MS was brought as the main antagonist. Some apparently just hate when the Web has interoperability.

<comment><USER10> Well, there are other ways to tell them that this interoperability is important: [https://wpdev.uservoice.com/forums/257854-internet- explorer-...](https://wpdev.uservoice.com/forums/257854-internet-explorer- platform/suggestions/6513488-ogg-vorbis-and-opus-audio-formats-support- firefox) (no registration required to vote).

<comment><USER9> Thanks for the link!

</comment></comment></comment></comment></comment></comment><comment><USER10> This is the latest in a series of posts on Daala: [https://people.xiph.org/~xiphmont/demo/](https://people.xiph.org/~xiphmont/demo/)

</comment><comment><USER11> Years ago we discussed the idea of penalizing errors more if they stick around. So a difference of +2 might be acceptable for a frame or two, but a _consistent_ +2 over several frames should be severely penalized due to the fact that the human visual system is much more likely to notice an artifact that lasts 300 ms versus one that lasts 30. Whereas 10 frames alternating +2 with -2 would be acceptable.

Perhaps that sort of logic is rolled into the rate distortion metrics of Daala? But if so, I suspect this bug would not be.

<comment><USER10> Well, one has to be careful here. In a static portion of a scene, a consistent error likely to look much better than an error that flips between being too large and too small in alternate frames, since the latter will show up as noise or flicker that was not in the original. That can be more objectionable than simply being slightly wrong. Notably none of the metrics we use for evaluating Daala have any means of measuring this.

The better approach, I think, is some form of "temporal RDO", where you spend more bits on places that will be good _predictors_ of future frames. We discussed the idea in a Theora update in 2010 [0]. x264 implemented it even before then (under the name "mbtree" [1]). It is not yet implemented in Daala, as we do not have two-pass rate control or lookahead yet. It's possible to do one-pass, no-lookahead versions by estimating future prediction efficiency based on the past, but you want one with full lookahead to compare against to make sure those estimates are doing the right thing.

I am not sure temporal RDO would save us here, because the issues described only occur in areas of the frame that are being updated. It still might have, in this case---these things are relative---but we could construct cases where it would fail to do so.

[0] [https://people.xiph.org/~xiphmont/demo/theora/demo9.html](https://people.xiph.org/~xiphmont/demo/theora/demo9.html)

[1] [http://www.x264.nl/developers/Dark_Shikari/MBtree%20paper.pd...](http://www.x264.nl/developers/Dark_Shikari/MBtree%20paper.pdf)

</comment></comment><comment><USER9> I pity Daala got delayed to 2016, but on the other hand it should be noticeably better than competition in order to succeed, so it's good they are taking their time.

</comment><comment><USER12> I don't know what it is, but the xiph.org blog posts always seem so well written and interesting to me. Probably that I perceive the subject matter as magic :)</comment>


Calendar defragmenter launches with backing from Accel and Greylock - <AUTHOR> https://techcrunch.com/2019/06/17/clockwise-nabs-11m-series-a-to-make-your-calendar-smarter/ <comment><USER2> Great product. Amazing how much time companies waste on inefficient meetings. Looking forward to seeing this in the wild.

<comment><AUTHOR> Thanks! We built it because we had the problem!

</comment></comment><comment> yoz-y So how does this work with regards to travel time, room availability, work time and so on? Is the first person to "defragment" their calendar the winner?</comment>


Thoughts on EveryTalk.tv: An experiment to collect & watch conference talks. - <AUTHOR> http://www.akshay.cc/blog/2012-08-08-everytalk-the-story-so-far.html

<comment><USER2> One thing. Currently you only basically have web programming talks in the system. Your site name implies that there would be every talk, not just programming talks.

I would also like to see the talks categorized little bit more better than just Featured, popular, recent, events.

One good thing would be to let users to submit talks into the system, which would free your time from finding talks which actually do not interest you personally.

Terrific idea. Beautiful web design. Awfully executed, because I think you built this for yourself and not for others.

</comment><comment><USER3> This is a terrific idea and nicely executed. Anything that abstracts away from video discovery on Youtube is a good thing.

I like to watch this sort of talk in the bath and I have to work pretty hard to avoid the 4min lightning talks, the blurry mumblers regurgitating a blogpost from their bedroom and the 2009 v0.1 talks. Every time I have to change video there's a strong chance of the laptop going in the tub.</comment>


Ask HN: Where would I go to learn about automatic printing? - <AUTHOR>

I'm pitching in my school's business plan competition next month and my startup idea includes a feature that would require automatic printing for standard (8.5 x 11") paper and envelopes. The text would be submitted by a user through my website. I was wondering if there is preexisting software that can accomplish this? <comment><USER2> Something like <http://www.peecho.com/> or <http://www.fotomoto.com/> might be a good fit.</comment>


Webfaction app memory quota increased to 256MB for everyone - <AUTHOR> http://blog.webfaction.com/2011/12/our-biggest-holiday-present-yet-app-memory-quota-increased-to-256mb-for-everyone/

<comment><USER2> This is such perfect timing for me. I've been bumping into their 80MB memory limit a lot over the past few weeks after launching a new site (they were actually letting me get up to about 120 before killing nginx). I was figuring it was finally time to migrate over to linode and then this! Thank you so much webfaction!

To anyone thinking about jumping in, webfaction has been the best shared hosting provider I've ever dealt with. Lots of preset options, SSH, ability to install stuff from source in your home dir, great email hosting.

<comment><USER3> Seconded for every part of your message. I've been a happy webfaction customer for a couple of years now and I'm consistently impressed with the stability of their service, the competence and helpfulness of their technical staff, and the excellent value for money.

</comment></comment><comment><USER4> This is a massive boon to a lot of my apps, especially ones with low traffic but long lived processes (I'm looking at you Django & Rails).

Webfaction is definitely one of the better hosts out there, the perfect middle ground between $4/mo "unlimited" hosting and a Linode VPS.

<comment><USER5> With the new RAM allocation, webfaction is actually cheaper than Linode and webfaction includes the sysadmin to boot!

</comment></comment><comment><USER6> I love webfaction. I'm building my app solo and I'm not a linux expert so when the shit hits the fan, they're a good last resort to help me figure out where I screwed up. Great customer service.

<comment><USER7> They are good option when you start from some of their templates, but what if you wanna install other stuff that's not in their list? They don't have a package manager and that's a great obstacle for any custom solution. But I agree, their service and customer support are great.

<comment><USER3> You can always download, unzip, and configure-make-install into your home directory.

</comment></comment></comment><comment><USER8> It is quite a boost from 80MB to 256MB. Too bad the MongoDB is still not exempt from memory usage like MySql and Postgresql.

</comment><comment><USER9> Been a customer for a few years and love them. They really know their stuff and are one of the rare shared hosting providers to actually encourage to go and compile things you need. I am surprised to find not many more people using them.

The control panel takes a bit of getting used to and so is the restriction on database names (they need to start with 'yourusername_'), but those are trivialities for the awesome service.

For the Pythonistas here, IIRC, they are a Python shop. I have long stopped hosting production sites on my VPS because of them.

</comment><comment><USER10> good. but what happens after the holiday season?</comment>


Gemfury A/B testing their landing page - <AUTHOR> http://www.gemfury.com/37s

<comment><USER2> Definitely impressed with how quickly they got this page out there. It's a good example of someone seeing a very limited window of opportunity to do something that gets them noticed -- and actually taking it. I'll bet the designer felt a rush as he designed and coded the page as quickly as possible, for fear that we might have already forgotten about the thing which this is about. Certainly paid off.

<comment><USER3> Thank you. This has been a lot of fun. It took about 2 hours from inception to the first iteration. You're right, I was worried that Curebit will capitulate before we're done and would take much humor out of it. Luckily, it still did pretty well with the crowd, even though we published this after their apology.

</comment></comment><comment><USER4> I could see it being funny as a standalone parody if it wasn't attached to your company. But it seems that it's an attempt at publicity for gemfury. And since you're using an image of DHH, I think it's in poor taste. You may not get the reaction from the crowd you were looking for.

<comment><USER5> Or at the very least, host the images on your own server.

</comment></comment><comment><USER6> They say "please don't take this seriously" and pretend it's a parody. Yet... the product is real, and the "see plans and pricing" button still takes you to a payment page. So because they're promoting their site on HN instead of on Techcrunch they think it's okay? This is like building a knockoff MacBook with an Apple logo on it, and pasting a "parody" sticker on it.

I guess the GemFury folks just wish they could get as much publicity as CureBit did, even if it's mostly negative.

<comment><USER3> Thank you for the suggestion. We've fixed the "See Plans and Pricing" link to give a more appropriate response.

</comment></comment><comment><USER7> I don't know how I feel about this stunt, but I've been using gemfury for about a month and it's really cool. Makes deployment super easy.

<comment><USER3> Thanks for your help with beta testing the service. Glad you're not letting this little bit of fun affect your opinion.

</comment></comment><comment><USER8> Clever. Great way to get your name out there!

<comment><USER3> Thank you. It beats writing a dry "Introducing Gemfury" blog post.

</comment></comment><comment><USER9> Very clever. I liked it. It's nice and refreshing to see this as we put our pitchforks away.

<comment><USER3> Thanks for the support. Judging by other comments, the pitchforks are never fully put away on literal-net :)

</comment></comment><comment><USER10> this is of low taste, i'm impressed with the ability of people to try to use any situation. And using the DHH pic is really lame.

</comment><comment><USER11> Ouch? Im not sure thats what the current debate really needs.

<comment><USER11> My karma seems to be swaying up and down due to this comment. The page itself is funny but i dont think you are helping anyone but yourself with the page, which is very creative but in bad taste.</comment></comment>


The Technium: From Mass to Mesh - <AUTHOR> http://www.kk.org/thetechnium/archives/2011/04/from_mass_to_me.php?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+thetechnium+%28The+Technium%29 <comment><AUTHOR> Although the book focuses on the business end of technology and is heavy on jargon, there are some interesting topics in this short book review that I think HN would find interesting.

* One trend is "tryvertising," where, instead of advertising, companies place products in people's daily lives. In some cases, people pay a small fee to get samples of new products, and then give feedback to the manufacturer. For only five euros, a Barcelona-based outfit, esloúltimo, allows customers to try out five products for two weeks, including a variety of food, household, and tech products. Tryvertising might be used to listen to a potential market and hone the offer, or simply to determine the market's preference for owning, as opposed to just using, new tools and services.

* Zipcar is a near perfect example of a successful Mesh business. It doesn't make, sell, or repair cars. It shares them. Zipcar is primarily an information business that happens to share cars.

* There are seven keys to building trust in the Mesh: 1. Say what you do—manage expectations and revisit them frequently. 2. Use trials. 3. Do what you say. 4. Perpetually delight customers. 5. Embrace social networks and go deep. 6. Value transparency, but protect privacy.</comment>


Is a federated Twitter even possible? - <AUTHOR> http://venomousporridge.com/post/30043951343/is-a-federated-twitter-even-possible

<comment><USER2> Back in the day, 2007 and 2008 there was live running federation between Twitter and Jaiku. I remember i was sitting in the room when Ralph and Blaine got it working, at 4am at a foo camp.

Unfortunately Jaiku was bought by google and they spent a long time with it offline only to come out as Google Buzz which didn't take off.

Many of the early twitter engineers like Blaine Cook and Alex Payne pushed hard for twitter to be more open and federated, but lost that argument and left or were pushed out. It's a business not a technology decision which makes twitter centralized.

</comment><comment><USER3> 551 words spilled on a simple question, with a simple, obvious answer: E-mail.

* Immediacy: if a post has been made by someone I follow, I can see it in my timeline right away (or close enough that I don't notice the difference). "E-mail"

* Chronology: posts always appear in order by time posted. "E-mail". Chronology as the author imagines it doesn't even occur for Twitter, likely their machines' timestamps are fuzzy +/- perhaps up to a minute or more.

* Monotonicity: timelines grow only from the top; older posts are never retroactively inserted. So have your client mark a message by the time it's received, provide a second sort order. Ugh. "E-mail"

There are genuine technical challenges to implementing a robust many-many federated messaging system, this post mentions none of them.

<comment><USER4> A billion dollars to the first company that builds a federated twitter on top of existing gmail accounts. Go!

<comment><USER5> For a 1% downpayment I will start tomorrow and deliver this year, email in profile.

<comment><USER4> Nice try. If you are successful, you won't need me to pay you. The world will.

</comment></comment></comment></comment><comment><USER6> It's both possible and necessary. Think about it - even a centralized service like twitter or facebook will have many distributed & disparate services that need to work together to provide a feed. Hence, there probably already is some kind of federation going on, you just don't know it.

Source: I work @ LinkedIn on these types of problems.

<comment><USER7> Author here: a few people have raised this point. Perhaps I should have made a distinction between "federated within the same data center" and "federated across the internet." They are two entirely different problems.

</comment></comment><comment><USER8> If it was impossible for a federated network, it would also be impossible for Twitter. They can either guarantee that messages _only_ show up at the top, or that messages _always_ show up in order (meaning older posts get inserted into the middle of the timeline, as you eventually receive them).

<comment><USER9> Why couldn't the user decide how to view message?

You could easily allow a user to see messages ordered by "send time" or "received time". You could even add an "unread" flag to messages, so that unread messages show up first, then migrate to their proper locations in order.

Ya know... kinda like email.

<comment><USER8> Sure, of course they could. The point is that you can't do both at the same time.

<comment><USER10> You can if you use vector clocks.

@sp332 You can prevent that by buffering messages. The less you tolerate messages appearing in-between messages you've seen before, the more you buffer. If the latency between your host and the host of someone you follow is high enough that it's taking more than a few seconds for you to get the message, they're effectively down. Late is better than never.

<comment><USER8> Vector clocks are only a partial ordering. You'd still have old events popping into the middle of your timeline.

</comment></comment></comment></comment></comment><comment><USER11> Isn't OStatus exactly this, or does it fail one of his criteria?

</comment><comment><USER10> <http://en.wikipedia.org/wiki/Lamport_timestamps>

Edit: More information on how to actually use Vector Clocks (which are sort of like multi-way Lamport Clocks) in a real system: [http://basho.com/blog/technical/2010/04/05/why-vector- clocks...](http://basho.com/blog/technical/2010/04/05/why-vector-clocks-are- hard/)

</comment><comment><USER12> Is the web federated? Everyone hosts their own sites and there are several browsers -- I don't see why we can't have a social media version of this.

<comment><USER13> The web is not "federated": site A does not communicate with site B. Contrast with SMTP or XMPP which require federated servers to communicate with one another to establish dialog between two users. All of them are decentralized though.

<comment><USER14> The routers do, though. Through BGP, AS's communicate location information to the routing infrastructure of other AS's. 15 years ago we saw the decline of "everybody knows everything" as the routing tables of core infrastructure simply became too unwieldy.

</comment></comment></comment><comment><USER15> As the post says, with sufficiently slow servers it's impossible to maintain chronology plus monotonicity, and as it says, since chronology is really only important within a conversation, the best solution is to ensure each reply has an in-reply-to field (which tweets already have), then ensure that the original tweet is fetched before displaying the reply, and accept only approximately chronological ordering for "threads". But... that doesn't mean the UI has to change to look threaded, or that you should see an entire conversation if you're following the person who started it. That's a crazy leap. With such an algorithm it can still look exactly like Twitter and most people won't notice the difference.

As an alternative, by the way, since these posts are so short, you could simply include the entire thread with each reply! A few kilobytes won't kill any servers.

Also, one of the blog comments raises a good point: IRC has the same problem and it works fine.

</comment><comment><USER16> Isn't that what RSS was? I could make a post, and have it syndicated to whoever wanted to listen to me.

<comment><USER10> RSS doesn't guarantee global ordering, and has very high latency (because of polling). Both of these can be overcome, but require a new protocol.

<comment><USER17> PubSub solves the problem of immediacy.

<comment><USER18> ... and introduces the problems of scalability and reliability.

(Not that those problems aren't solvable with PubSub, but it does add a lot of complexity.)

</comment></comment></comment></comment><comment><USER19> Usenet was federated and seemed to have these properties.

<comment><USER20> Depending on where you were connecting from, there could be serious delays in usenet. Like, some servers synced once a day kind of delays.

<comment><USER21> It's important to note though that hardware muscle and bandwidth were both much, much, much more scarce and expensive back then.

</comment></comment></comment><comment><USER22> Most email IMAP servers provide both Date Sent and Date Received properties for each message, allowing the client to sort by either. Even in active mailing list threads, I've found that it's not that common for messages to get too out of order.

Assuming federated social services keep track of Date Received, it'd probably be okay to just sort by that.

</comment><comment><USER23> _your node can just wait until it's received the latest content from every other node before displaying anything._

"Every other node" just means the nodes where the people you follow are hosted, not every node in the network. For most people, that would probably be a very small number.

</comment><comment><USER24> My hunch is that it's technically possible to go not just federated but radically distributed. However, there's more money to be made in centralization, creating defensible toll booths. And right now the sorts of developers and protocol/system architects who _could_ make a radically distributed alternative are now fully overemployed doing other lucrative or beneficial things.

So it's a little harder technically, and lot less lucrative, to make a radically distributed alternative. And whatever the abuses of the centralized proprietors, they're still not changing those tradeoffs -- most users and even platform participants can still make-do under centralization.

A big tech bust freeing more talent to work on ideological (rather than pecuniary) projects, or enough heavy-handedness from the centralized proprietors, could change that balance.

<comment><USER10> You're right. Gnutella was developed in 2000, eDonkey in 2000, Freenet in 2000, BitTorrent in 2001.

</comment></comment><comment><USER25> I think Twitter also has users distributed on different servers, making it effectively federated.

</comment><comment><USER5> It hurts a little when the author mentions Usenet - and then doesn't realize that yes, of course it could trivially emulate twitter.

Regardless I don't find the notion of a federated twitter particularly interesting anyway. The future is P2P.

</comment><comment><USER26> Yes. <http://dsandler.org/brdfdr/>

</comment><comment><USER27> Personally, I'm willing to lose monotonicity. I mean, it's only Twitter. If I don't see every single message because I didn't scroll back far enough, I don't really care.

</comment><comment><USER24> I doubt the single global ordering is as important as the author suggests. If nothing is in practice delayed for more than a short period, then either ordering-by-arrival or ordering-by-declared-time-with-'seen'-indicator both mostly work. It's whatever you get used to.

And I've seen all sorts of micro-failures in Twitter's provision of global ordering: gaps in my display timeline in one client but not others; tweets seeming to appear below the 'topmost' position when revisiting the stream; difficulty reloading recent history that was already local at one point.

A distributed/federated system might be a little fuzzier on some ordering behaviors... but make up for that in other dimensions.

</comment><comment><USER28> I think IRC does this type of mass node interconnection quite well.

</comment><comment><USER29> FIDOnet

<comment><USER12> I'm so old that remember when the nickname for that was "Fight-o-net"

</comment></comment><comment><USER30> status.net already done.

identi.ca etc.

</comment><comment><USER31> _"violating monotonicity means you can't assume you've seen everything once you've read to the top of your timeline."_

if that turns out to be such a problem,

1.) you can simply assume that everything fresher than 5 minutes is subject to change, so you ignore it until it's at least 5 minutes old.

2.) whatever site or app you're using could simply mark unread messages, and inform you of out-of-order messages.</comment>


Disk drive shipments rebound from Thai floods - <AUTHOR> http://www.computerworld.com/s/article/9231799/Disk_drive_shipments_rebound_from_Thai_floods_

<comment><AUTHOR> Once again title reversion. Compare to the original:

 _Hard drive production 100% recovered, but prices to remain high until 2014_

Which one is more informative at a glance?

<comment><USER2> >Which one is more informative at a glance?

Wrong question. Which one are you more likely to click on?

<comment><USER3> But we're not talking about news-pushers, the problem is some kind of overzealous mod/bot on HN that has a grudge against customized story titles.

</comment></comment></comment><comment><USER2> Is it just me or is the date for recovery always Current Date + 1.5 years?

Anyway...I bought a SSD yesterday & feel that soon the only people who need HDDs will be people with massive media collections (ignoring servers etc). Even things like Steam libraries on SSDs are starting to become feasible.

<comment> mansoor-s Or people who can't shell out the money for SSDs

<comment><USER2> >Or people who can't shell out the money for SSDs

I was talking about the SSD vs HDD decision. Not about people who don't have the money to do either.

<comment><USER4> SSDs are still considered 'luxury' items, like $1000 graphics cards. Don't forget that a 60GB SSD costs roughly the same as a 1TB HDD, and people do like bigger numbers.

People in the market for new PCs would typically start off with a HDD, before shelling out more money for an SSD.

<comment><USER2> >people do like bigger numbers.

Ah yes of course. I'm prone to seeing tech decisions from a more technical perspective only. I see what you mean though, the less technically sophisticated people probably drive more of the demand based on numbers alone.

</comment></comment></comment></comment></comment><comment><USER5> To be honest... relatively high HDD prices combined with very low SSD prices make for a really interesting and progressive storage market! I'm glad to see the $/GB gap close significantly. One could make a very convincing case to buy at least a 128GB SSD with any desktop build.

</comment><comment><USER6> Prices are already down and it definitely isn't 2014 yet. 3T is about the sweet spot right now, it's never been much cheaper than it is today. 2T is a bit more expensive than before the floodings, but a part of that is that there is simply less production of them (which has switched to 3T models).

<comment><USER7> It's sad to see the slowdown in the increase of HDD sizes (and I don't feel that it was only due to the flooding, since it was already occurring to a degree before that). It used to be that there was some absurdly huge HDD available for $1000, but now we don't see anything more than 4 TB, in the $300-500 price range.

<comment><USER6> 4T is a pretty large amount of data though.

I think what will happen is that more and more funds will move to SSD research and improvements, pretty much the same way it happened around the time that the GMR was discovered and first marketed.

There was an apparent slowdown in drive capacity increase and then, when the GMR based drives hit the market we were suddenly swimming in drives of 100's of megabytes.

That tech is getting older and the whole solid state movement seems to have the future. So this may be the last generation of storage media based on spinning magnetic platters. SSD still has a bit of catching up to do, but the writing is on the wall for hard drive makers.

Imagine to have to sign off on a mulit-year, multi-billion plan to create new factories that will have no application in a future iteration of the technology. That would be a very tough business decision. I'm happy they got as much production capacity online as they do.

On the plus side of all this: the last generation magnetic media, at 4T or even beyond will be sold at rockbottom prices to keep those factories alive as long as possible.

<comment><USER8> Seagate has demoed HAMR a tech which might allow them to get to 60TB and may start showing up in 6TB consumer drives within a few years. Other research is being done on adding sodium chloride to platters and IBM is researching magnetic storage at the atomic level. So long as magnetic storage can stay ahead of semiconductor fabrication then it will have it's place.

As far as someone making a decision to build a factory for commodity hardware manufacturing, that same issue occurs with NAND which is quickly seeing profit margins plummet. E.g. a 50nm NAND plant 4 years ago is no longer competitive today. This is probably why Intel jettisoned their NAND manufacturing.

</comment></comment></comment></comment><comment><USER9> From what I have seen hard drives _are_ pretty much back to pre flood prices now in $/GB terms, there has just been 18 months of price progress gone.

Meanwhile SSDs have done a hell of a lot of catching up.

<comment><USER10> I don't think that's true. They have come down but not to the absurdly cheap level they were before the flood.

As an anecdote, I purchased a 2 TB hard drive just a few months before the flood for $60 from Newegg. Now, the cheapest 2 TB drive on Newegg is $100.

So, they have come down but still haven't recovered. This is why I haven't been able to bring myself to buy another 2 TB drive because I know I'd be paying a 50% premium over what I paid last time.

<comment><USER11> That's not just the flood. Hard disks are basically a Dupoploy now, so with less competition they are raising prices.

</comment></comment></comment><comment><USER12> Is this showing that the PC death is overrated or that the HDD producer's monopoly works as planned?

<comment><USER13> "PC death" is a marketing fad.

<comment><USER14> No, not marketing. Growth has been flat. The market relies on growth. From an investors point of view if you aren't growing then someone else is so they should divest from your company and go to something else.

</comment></comment></comment><comment><USER15> maybe it's just me but the prices still seem high and availability low...case in point the new WD Reds are all out of stock. And all the manufacturers are now consolidated into seagate and WD...a bummer since I liked hitachi and samsung drives a lot.

</comment><comment><USER16> it's just a computerworld article ... Seems like their previous deal with slashdot is over (since it got acquired) because I see a lot of these links on HN recently

<comment><USER17> Did computerworld have an advertising relationship with slashdot?</comment></comment>


Think you're dedicated?  Meet the inventor of BulletBall and BulletBall Extreme - <AUTHOR> http://www.snotr.com/video/1133 <comment><USER2> All he has to do is paint the balls with funny cartoon characters and start selling them in Japan. Kids can collect all 150 different balls. They'll be a hit there, and in a year and half after launch they'll be an even greater hit in the U.S..

</comment><comment><USER3> Interview with the BulletBall guy. He is much better off than TV suggests.

[http://www.realitytvmagazine.com/blog/2006/03/30/american- in...](http://www.realitytvmagazine.com/blog/2006/03/30/american-inventor- passes-on-bulletball-but-keeps-the-table/)

<comment><USER4> What part of the article indicates that he is well off?

<comment><USER3> >After spending 20+ years (these were BulletBall years) as a manager making millions for major corporations across America, I decided in 2004 to "step out of the box" and work towards realizing my own dreams.

</comment></comment></comment><comment><USER5> I believe him, Bulletball is going to be a success. Only it will be as the title of a mockumentery that the man unwittingly authorizes. Hours of film of the mentally tortured game inventor are edited into an 112 minute runtime box office smash, the man having signed away his rights for a small shooting fee, ostensibly for allowing them to document the rise of his sport, gets virtually nothing. In the end our tragic inventor takes his own life several weeks later with a shotgun recently purchased at a pawnshop, none of the hostages were harmed.

</comment><comment><USER6> Come on, this is just bullshit. How the heck does some spend 26 years and a small fortune on putting together a simple table and buying some balls?

My 14 year old nephew could have build him that table for 10 bucks and some ice cream...

<comment><USER7> I'm not impressed, but after reading this article I have some respect for the guy. At least he went through lawyers, patents, and manufacturers. However minute, he must have done some homework about table size, ball size/weight/bounciness/color, and he's spent 100K on tours for his market research. If anything at all, he's got guts to make something that looks ordinary into something "professional."

That said, I still don't get the difference between BB and BBE, nor the need for one. Having watched the video, visited the website, and read this interview, he seems to have internalized the answers to that question like a tape recorder.

<comment><USER8> I had the same question a while ago and found that the only difference between BB and BBE were the rules.

</comment></comment></comment><comment><USER3> Well, that was depressing.

<comment><USER9> No, it isn't. The guy is putting on a very effective act. There's no way he's spent 26 years "developing" bulletball. I'm sure he made that up (as well as other details) in order to add emotional appeal to his game. In fact, he's had some real success as a result of his unusual marketing skills:

[http://www.itstrulyrandom.com/2008/02/26/theres-a-new- game-c...](http://www.itstrulyrandom.com/2008/02/26/theres-a-new-game-called- bulletball-which-is-not-nearly-as-intense-or-harmful-as-it-sounds/)

 _Griffin has joined forces with the Rehabilitation Institute of Chicago, Veterans with Disabilities, and the Disabled-Athlete Sports Association to stage the first annual "Bulletball Tournament" which will feature the former Ms. Wheelchair America._

The long term prospects for an obviously stupid game aren't good, but still...

</comment></comment><comment><USER10> Considering this some more, I think this guy is brilliant. He understood that for TV, what was needed was a melodramatic story. By playing up the 'insane dedication' angle, whether they loved or hated his invention, he ensured maximum memorable/emotional impact.

And thus he's getting secondary news coverage, like here.

I suspect he wanted that far more than their money, because if we assume (like he does) that Bulletball is fun to play, the real key to its success will be increased awareness.

</comment><comment><USER11> The point isn't that the idea was bad. Anyone could see that.

This was a demonstration of a level of passion and perserverence you rarely see any more.

I'd like one good idea from this board and 3 people like him. Nothing would stop us.

<comment><AUTHOR> Exactly why I posted it.

</comment></comment><comment><USER12> Coincidentally, Nathan Myhrvold independently conceived of BulletBall three years ago in a roundtable with 7 PhD's. Boy, were they surprised when they tried to file for the patent. I guess it was an invention whose time had come.

</comment><comment><USER13> I found this interesting because I own the domain name bulletball.com

<comment><AUTHOR> That's ironic in an Alanis sort of way.

</comment></comment><comment><USER14> I am Marc Griffin, the inventor of Bulletball. Just wanted to say hi and glad to know people are still talking about Bulletball.... I guess the "act" was emotional enough afterall :) Go to DUSTWEB.com and there is even a video version of the game being developed! any questions and I can be reached at email@example.com

P.S. Obviously I didn't go out and commit suicide after the judges ripped me apert on national tv. But it wasn't fun to go through either.

</comment><comment><USER15> Peter Johns sums it up perfectly: "You can lose everything, but whatever you do, don't lose your mind."

</comment><comment><USER10> The game doesn't look that bad... a sort of mix between air hockey, ping-pong, and handball. Though, just looking at him crouched over to play makes my back hurt. And enthusiastic players slapping away with their hands and forearms might cut or bruise themselves quite often on the table edges.

And, it's got some problems as a bar or arcade game -- every point results in the ball rolling away on the floor somewhere to be retrieved, and there's no clear path to making it coin-operated.

<comment><USER16> Well, you can pay to get balls to play with.

<comment><USER13> Yea, like darts.

</comment></comment></comment><comment><USER17> I live in a van down by the river!

</comment><comment><USER18> Who thought up the name snotr.com? :/ Kind of an interesting name...

<comment><USER19> well, if you look at it from a certain perspective, snotr could lend a natural backward progression from flickr, eh?

</comment></comment><comment><USER13> I finally got to the bulletball website. It looks like a fun game.

</comment><comment><AUTHOR> A friend sent this to me. I thought it was a great lesson for entrepreneurs.

If I could channel that kind of determination...

If the above link doesn't work, try YouTube: <http://www.youtube.com/watch?v=WOOw2yWMSfk>

The official site: <http://bulletballgames.com>

<comment><USER3> I emailed and told him that hitslog is messing up his site and Google Analytics is better; it took 3 minutes to load his site.

<comment><USER20> Let's hope finding out he has a broken website isn't what pushes him over the edge.</comment></comment></comment>


Plan to Turn Asteroids into Spaceships Could Spur Off-Earth Mining - <AUTHOR> http://www.space.com/33079-turning-asteroids-into-spaceships-made-in-space.html <comment><USER2> Instead of lifting a lot of mass out of your gravity well and accelerating it, it does make a lot of sense to take advantage of this "free" mass and energy. You get some measure of radiation shielding as well. If we have thought of this, then certainly if there are any other intelligent space-faring species out there, then they have thought of it also. Perhaps we will find a surprise out there one day, as we scan asteroids and comets that fly by.</comment>


It Is Surprisingly Hard to Store Energy - <AUTHOR> https://www.gatesnotes.com/Energy/It-Is-Surprisingly-Hard-to-Store-Energy <comment><USER2> Entertaining that Gates finds something so fundamental as the nature of something that wants to move does not like being contained a surprising idea.</comment>


Ask HN: How to get better at reading source code? - <AUTHOR> I've got a 2500 line Python file I'd like to understand thoroughly. Here are some questions I have:
Where should I start?
What questions should I ask the code's maintainer, if she is a busy person?
I've been using grep to search for places where methods from this class have been called from other classes; is there a better tool?
Are there any formal resources that teach you how to read/understand someone else's source code?
It's just been going really slow and I wonder if there are ways I could be understanding faster. <comment><USER2> You don't mention whether you can run the code, whether it works as intended and your experience level vs. the authors'.

I've never seen any formal resources and progress will be really slow at first but will accelerate as you keep chipping away at it.

I've found that commenting sections with explanations and questions helps. Sometimes I rename variables with names that make more sense to me.

If the code is very idiomatic it helps to understand why things are done a certain way. I look at a lot of vendor libraries that are poorly written and sometimes it easy to assume that because it comes from someone else it's written in a smarter way, when the opposite is true.

I work mostly in statically typed languages that allow creating call trees - not sure if that's workable for Python or not - but there may be tools more advanced than simple grep.

</comment><comment><USER3> At the risk of sounding uncool, if I was stuck I would flow-chart the gosh- darned thing.

I once did this for an engineering subsystem with more than 10,000 lines of FORTRAN. It took me more than a month. We were relocating a flight simulator from Italy to Spain where it would go through testing and customer acceptance before being put back in service.

By the time I was done, I could debug the system almost as if I had written it myself. It made me look like a freaking genius.

The point is _not_ about flowcharts being wonderful. It just forces you to trace the path of execution through the code, and figure out what each bit is trying to do. The tangible documentation (i.e.: stack of flowcharts) that you end up with is great for building your confidence, and convincing your boss that progress has been made.

<comment><USER4> You mean manually create them? Or is there a generator tool you could suggest?

<comment><USER3> Yes, I mean manually create them.

Again, the flowcharts themselves are completely useless when you're finished. It's the process of preparing them that forces you to start digging through that little mountain of code.

</comment></comment></comment><comment><USER5> My personal preferred strategy is to try and understand some of the important call sequences. So something you might like to try is to put some trace at the start of every function in the file. Whilst you are doing this, look for callbacks that are being passed into the class as parameters, and put trace in any of those that you find too.

Now, run the application/process, and see which functions are called in response to which actions. You may not see all of the functionality, but this will show you at least a few of the key parts, such as initialisation, and hopefully a few of the nominal use cases.

</comment><comment><USER6> I recently had to take over a few thousand lines of code, spread over 5-10 files. Really, what works for me is following the code from start to finish, and a very high level. Basically, mapping the order every function is called and getting a quick idea of what that function does. Many times the function name alone is enough. From there, you know where to look when you want to understand some specific functionality in depth.</comment>


Lebanese Intelligence Turned Targets' Android Phones into Spy Devices - <AUTHOR> https://www.nytimes.com/2018/01/18/technology/lebanese-intelligence-spy-android-phones.html <comment><USER2> Fascinating to see stuff like this from a tiny country. The playing field is level in people's ability to build or acquire cyberweapons.</comment>


Ask HN: What is the hardware of Hacker News? - <AUTHOR> I'm curious about the hardware used to run Hacker News. My guts tell me that despite its popularity it is running on modest hardware, but I'd like to confirm. <comment><USER2> It's (edit: almost) the same since Nick posted [https://news.ycombinator.com/item?id=9222006](https://news.ycombinator.com/item?id=9222006).

<comment><USER3> I'd be curious what AWS/DigitalOcean setup would be able to run HN. Any educated guesses?

<comment><USER4> Playing around with the calculator, you're roughly on track with an r3.x4large - most of the Linux options happily bundle far less RAM.

Getting 9TB of EBS on top of that puts the bill at $1516 per month. None of that accounts for traffic, of which we know nothing about.

The thing is in an Amazon world, you could optimise the setup for an Amazon deployment. For example, you'd probably move parts of that data, like database snapshots, onto S3.

Those costs are still nothing to sneeze at, and very likely suboptimal.

<comment><USER5> It just goes to show that cloud prices are somewhat of a ripoff if you have the knowhow to use CDNs and setup a single server in a colocation center. That machine can be built for less than 5k.

<comment><USER6> Of course -- if you know your traffic well ahead of time. If you start growing quickly, it's not quite as simple. (And if you don't have the traffic/growth anticipated, you wasted a bunch of money).

You also aren't accounting for redundancy. If the machine totally blows up, how quickly can you build another? Or do you spend +5k to have a second sitting as a standby? If the hardware does fail (whether it's a single drive in RAID or the whole system), who fixes it (or deals with getting it fixed)? For that matter, is the person who built or sourced the hardware's time worth $0?

Cloud IS more expensive, but it's not as simple as comparing to the up-front cost of one piece of hardware.

<comment><USER5> This is true but cloud can still be a redundancy mechanism for a colocated server.

</comment></comment></comment></comment></comment></comment><comment><USER7> I'm curious about the total byte size of all HN content.

<comment><USER8> The mirror I keep of all HN items (posts, comments, jobs, polls, etc.) in JSON format is at 5.32GB uncompressed.

<comment><USER7> Cool! Did you mirror everything from the API? Does it go back to the first test posts or whatever? :)

<comment><USER8> Yeah, it came from the API which goes back to item id 1. It's all here if you are interested: [http://silo.lukeheuer.com/mirrors/news.ycombinator.com/](http://silo.lukeheuer.com/mirrors/news.ycombinator.com/) Post items are organized by month so you can check out the byte size progression over HN's lifespan.

</comment></comment></comment></comment><comment><USER9> IIRC, 2 servers - 1 production, 1 standby, running FreeBSD.

Detailed specs have been written before, try searching.

</comment><comment><USER10> Hrm it's behind a web app firewall (server:cloudflare-nginx) so harder to tell.

</comment><comment><USER11> My bet is on AWS, but I'm also rather curious about this.

<comment><USER12> You're rather mistaken my friend. Hacker News existed a long time before AWS. It has 2 servers - 1 production, 1 standby, running FreeBSD.

FreeBSD is the OS of choice for them.

<comment><USER13> Perhaps I misunderstand your remark, but AWS (2006) predates Hacker News (2007). According to Wikipedia, that is.

<comment><USER14> EC2 was only in limited beta back in 2006. It wasn't in full production until 2008.

</comment></comment></comment></comment><comment><USER15> While we are at it: what language is HN written in?

<comment><USER16> I believe it is Arc, a lisp dialect that Paul Graham developed

[http://www.paulgraham.com/arc.html](http://www.paulgraham.com/arc.html)

<comment><USER17> Is Arc used for anything else besides powering HN?

<comment><USER18> Not really, it is still being "developed."[O] But some HN clones or forums built like HN use it.

[O] [http://arclanguage.org](http://arclanguage.org)</comment></comment></comment></comment>


Inbugz 1.0 (FogBugz iPhone Client) Released - <AUTHOR> http://calftrail.com/inbugz.html

<comment><AUTHOR> Disclaimer: I am the main developer of Inbugz.

Inbugz 1.0 is intended to cover basic features of FogBugz. However, this also means that there are plenty of features in the works (search is coming, for example), so we'd appreciate any feedback.</comment>


Kivy Tutorial: Pong in  - <AUTHOR> http://kivy.org/docs/tutorials/pong.html

<comment><AUTHOR> Any feedback on the tutorial or rest of the docs greatly appretiated. We're trying to improve the docs as much as possible.

Also, our game programming contest (<http://kivy.org/#contest>) is still open until Jan 31. and if you enter a game, you can win android tablets, github subscriptions , t-shirts etc..</comment>


Lens – open-source IDE to control your Kubernetes clusters - <AUTHOR> https://k8slens.dev/ <comment><USER2> Previous discussion 17 days ago:

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

</comment><comment><USER3> Glad to see this here. I used to work at Kontena, the original creators of Lens, and it's nice to see some of their products live on. The quality of code and UX was top notch, the container orchestration / k8s space is just rough to compete in commercially.

<comment><USER4> I just started using lens a couple of weeks before the kontena announcement. I'm glad the project lives on

</comment></comment><comment><USER5> Pretty similar except for multi-cluster support, but I'd also call out [https://octant.dev](https://octant.dev) as a pretty great cluster GUI.

</comment><comment><USER6> Also found this recently, seems to be in the same space but looks a bit less powerful (but it also seems very new):

[https://infra.app/](https://infra.app/)

<comment><USER5> Also closed source and appears to plan on having a pricing model later on.

</comment></comment><comment><USER7> From the about section I see:

>"Lens was originally developed by Kontena, Inc. Today, all IPR is owned by Lakend Labs - a collective of cloud native technologists and geeks committed in preserving and making Kontena developed software available for all."

Does anyone know is Kontena no longer around? I went to their site(kontenna.io) and it was just two links one to to Pharos and one to Lens.

<comment><USER8> It appears they've shut down and most of them joined a company called Mirantis.

<comment><USER7> I'm sad to hear that, they seemed to be working on a couple of cools things(Pharos being one.) Mirantis just feels like a company trying to buy as much Kubernetes stuff as it can in order to not be known as an Openstack company any more.

</comment></comment></comment><comment><USER9> A somewhat similar product that helps visualise application configuration and troubleshoot issues

[https://kubevious.io/](https://kubevious.io/)

</comment><comment><USER10> HN hug of death? Website down for me right now

</comment><comment><USER11> That UI really reminds me of discord.

</comment><comment><USER12> So, basically, DCOS?</comment>


Graham vs. Buchheit: All else being equal, should startups seek out hard problems or avoid them? - <AUTHOR>

<comment><USER2> I don't disagree with anything PB says. I say to do hard things if they benefit the user proportionately. He says not to do hard things just because they're impressive. Since in practice impressing people (including oneself) is the main reason people do hard things that don't benefit users, these two principles yield the same advice.

<comment><AUTHOR> I suppose I took PB's post more broadly than it was intended, then. If he was only talking about solving hard problems that don't benefit the user proportionally, I see that there's no contradiction [and have a clear answer to the question of when to follow which advice ;-)].

Thanks for the clarification.

</comment></comment><comment><AUTHOR> paul says that the way to build successful products is to avoid hard problems:

<http://paulbuchheit.blogspot.com/2007/04/secret-to-making-things-easy-avoid- hard.html> <http://news.ycombinator.com/comments?id=16409> <http://news.ycombinator.com/comments?id=17040>

That made a lot of sense to me. But on the other hand, pg's "How to Make Wealth" makes a good argument for precisely the opposite view:

"Use difficulty as a guide not just in selecting the overall aim of your company, but also at decision points along the way. At Viaweb one of our rules of thumb was run upstairs. Suppose you are a little, nimble guy being chased by a big, fat, bully. You open a door and find yourself in a staircase. Do you go up or down? I say up. The bully can probably run downstairs as fast as you can. Going upstairs his bulk will be more of a disadvantage. Running upstairs is hard for you but even harder for him. What this meant in practice was that we deliberately sought hard problems. If there were two features we could add to our software, both equally valuable in proportion to their difficulty, we'd always take the harder one."

<http://paulgraham.com/wealth.html>

Of course, no piece of general advice is right in all cases. But what should you look for, in a given situation, to know whether it's better to seek out the hard problems or better to avoid them?

<comment><USER3> Don't seek problems -- seek solutions. Avoid all problems :)

One of the hardest things for a big company to do is move fast. Startups typically have very limited resources, so the only way to move fast is to not spend very long on any one problem, and that's generally going to mean avoiding problems that are hard. What I'm really advocating here is that you look for the easy 90% solution that seems almost the same to the user but only take you 1% as long to implement.

<comment><AUTHOR> Thanks, Paul! Between your reply and pg's, I understand your point a lot better now, I think.

</comment></comment></comment><comment><USER4> I say down with such vague philosophical arguments:)</comment>