Moore's Law and the Origin of Life - <AUTHOR> http://www.technologyreview.com/view/513781/moores-law-and-the-origin-of-life/ <comment><USER2> Another day, another panspermia article. So transistor density and publication frequency follow a very strict exponential rule and that rule can in turn be used to trace the time elapsed to their origins. Most systems though don't follow such a rule, and if they do they generally don't at the extremes of the graph (near the beginning and after a long time).

That said, the estimated 9.7 ± 2.5 billion years for life to evolve is at least within an order of magnitude correct, which makes it pretty cool. Also, we don't know how long abiogenesis takes and through which stages (presumably: many) the whole thing has to go until even the most basic building blocks as we know them today are set up. So you can add X billion years on top of that estimate while you're at it.

Does that prove anything? Absolutely not. But even without evoking the tiring panspermia hypothesis this result is interesting, because the result is not completely off. It means that, within a certain period at least, the complexity of life _does_ follow this exponential rule. Clearly, the formula needs to be tuned (based on evidence, not on open-mouth extraterrestrial finger-pointing), but it's a great start. I would venture that a more detailed genetic analysis of relatively recent organisms might result in a curve that is much more accurate.

Assuming something will always double within a certain interval is not detailed enough as a model for this.

<comment><USER3> What's so tiresome about panspermia?

<comment><USER2> There is usually not a lot of actual science involved. The motivations for presenting panspermia papers are in most cases philosophical in nature and it shows. This paper, too, implies that's what happened even though the accuracy of the model is highly dubious for a number of reasons.

Compare that to when Hubble first attempted to calculate the age of the universe by measuring the history of its expansion. It was quite a similar method: simply roll the equation back in time to where the universe's size was zero. He got a result that was lower than the geologically known age of the Earth, in fact we now know he was off by a factor of ten! Refreshingly, people didn't jump to conclusions though and in time everything fell into place. Hubble had fallen victim to a systematic measuring error. We are also now pretty certain that the expansion of the universe was not always linear. Hubble's method is still valid and impressive, but the tools and models needed to be refined. It's easy to see that the same applies to this finding.

</comment></comment></comment><comment><USER4> Those complaining about extrapolation may like to read the paper, rather than the article... [https://docs.google.com/viewer?url=http://arxiv.org/pdf/1304...](https://docs.google.com/viewer?url=http://arxiv.org/pdf/1304.3381v1)

There's discussion of measuring DNA complexity; issues in extrapolation (there's evidence suggesting recent increases are hyperexponential, which would push back the origin of life even further); section 8 notes function complexity has increased much faster with the "mind" (as in what birds and mammals have) which is not reflected in DNA complexity (chimp-human encephalization rate is x100 faster).

I _love_ the fresh perspective of not tying the origin of life to the origin of earth - nice and non-geocentric!

<comment><USER5> The rise of life doesn't have to be a universally unique event. It can easily rise in isolation on Earth, and in numerous other places that obey the laws of organic chemistry.

</comment></comment><comment><USER6> I liked this comment on the article. This is the kind of feeling I had while reading it:

 _"Lets take 5 data points and project backwards 3x the range of the observed data. Science! Regression!! There's no way this could be wrong, right?"_

</comment><comment><USER7> Ach, this is terrible. Genome size is influenced by a number of factors, including:

\- Generation length (faster-reproducing organisms tend to have smaller genomes)

\- Transposons (sections of DNA that use cellular machinery to copy themselves to multiple places in the genome; they're usually viruses that got incorporated into the host germline some time in the past)

Genome size isn't anything like a direct measure of "complexity" or "development"; some plants have genome sizes that are orders of magnitude larger than the human genome.

The worst part is that they take genome size sampled in the present day across multiple organisms, and then they assume that some of those present-day genomes represent genomes from particular points in the past. So the x-axis in the regression is basically a guess.

I'm not a statistician, but I imagine that fitting an exponential distribution can make the x-intercept sensitive to data errors.

<comment><USER8> > Genome size isn't anything like a direct measure of "complexity" or > "development"; some plants have genome sizes that are orders of magnitude > larger than the human genome.

What makes you think those plants aren't more genetically complex and developed than we are? A lot of our complexity is non-genetic.

> I'm not a statistician, but I imagine that fitting an exponential > distribution can make the x-intercept sensitive to data errors.

You mean exponential growth, not an exponential distribution, and exponential growth never hits the x-axis.

<comment><USER7> > What makes you think those plants aren't more genetically complex and > developed than we are? A lot of our complexity is non-genetic.

The real problem is that "complexity" and "development" in the context of evolution aren't well-defined. So the way that they place genomes on the x-axis is really arbitrary.

> You mean exponential growth, not an exponential distribution, and > exponential growth never hits the x-axis.

Right, exponential growth. And yeah, the horizontal line that they're extrapolating back to isn't the x-axis, it's the y=1 line. The point remains: roughly speaking, it seems like small changes to the curve could produce large changes to the x-coord where y=1, since the curve is so close to horizontal there (on a linear-linear plot), right?

<comment><USER8> I imagine they're using genome size (number of bases in exons) as their measure of complexity, not something ill-defined.

I don't think it's sensitive the way you say, since they're basically just linearly extrapolating the logarithm, but I haven't read the paper. If you somehow manage to shoot high or low by a factor of 100, that's only a temporal error of six or seven doublings. The bigger issue is that they're extrapolating over orders of magnitude that we have no direct evidence about.

<comment><USER7> > I imagine they're using genome size (number of bases in exons) as their > measure of complexity, not something ill-defined.

They're taking genome size and trying to relate it to time. And the way that they're doing that is to take organisms from the present day, and imagine some of them in the past. The less "developed" or "complex" an organism is, the further in the past they put it. That process is the flawed part.

In other words, the y-axis (genome size) is well-defined, but the mapping of organisms onto the x-axis (time) is not.

</comment></comment></comment></comment></comment><comment><USER9> Extrapolating back to when the genome size was 1 probably doesn't make sense, but what this approach might be able to do is suggest the smallest functional genome size, about 10,000bp based on my reading of the graph.

It's also worth pointing out that we don't, in general, have a way to know what portions of the genome are truly functional, nor even a really great definition of functional (the ENCODE consortium caught a lot of flak for theirs as overly broad). Also, almost all the genome sizes we know are from the modern day: bacteria as a class may be 3 billion years old, but they've been evolving over those 3 billion years too!

</comment><comment><USER10> Notice how they cherry-pick among genomes to get their fitted line. A common fallacy is to associate genome size with the "complexity" of an organism. Even assuming that there is a simplistic linear ordering of organismal life (i.e., "lower" and "higher" organisms), a "lower" organism like the poplar tree has more than two times the number of genes as the human genome.

<comment><USER5> You mean to tell me evolution isn't about "progress"? ;-)

<comment><USER11> But there has to be some characteristic that certain species required many evolutionary "steps" to get to. For example, there were no humans OR poplars one billion years ago nor the possibility yet since their / our ancestors hadn't yet made the scene.

</comment></comment></comment><comment><USER12> I think the problem here is that we don't have the original prokaryote genome. Today's prokaryotes have gone through billions of years of evolution and might well have longer genomes than their distant ancestors. So the leftmost points on the graph might have shifted up over time (albeit more slowly than the rightmost).

<comment><USER13> Way worse. Evolution is not about gaining complexity but about fitting to (current state of) the environment; in this manner, Procaryota are actually the most "evolved" form of life since they can rapidly adapt thanks to their short life cycle and uncluttered physiology. And this can be easily seen in genetic diversity -- the whole spread of animals or plants is almost negligible in comparison ([http://en.wikipedia.org/wiki/File:Tree_of_life_1500px_colour...](http://en.wikipedia.org/wiki/File:Tree_of_life_1500px_coloured.png)). Another good example is the fact that practically all procaryotic germs are highly specific, so must have evolved after their host species did.

<comment><USER11> > Evolution is not about gaining complexity but about fitting to (current > state of) the environment

I'm glad you cleared that up. Here I was thinking evolution and its "goal" is still a mystery to science.

</comment></comment></comment><comment><USER14> As always, sort of relevant xkcd: <http://xkcd.com/605/>

</comment><comment><USER15> There is a lot wrong with this approach, but even if you agree with their method there is one thing that seems odd in their analysis. Let's suppose that life originated before the birth of the earth. Obviously it managed to reach earth, which would mean it (the organism) had to travel through space for an extended period of time - the authors claim that it was frozen - so you should account for that time in the graph, and obviously life couldn't settle on earth for quite some time because in the beginning our planet was extremely hot and unsuitable for any kind of life. That would shift their postulated origin of life further into the past, most likely to a point where there wasn't even a universe to begin with, or at least no planets that would allow for the formation of life. [Note: I didn't read the whole paper, maybe they discussed these points. Also please correct me if I'm wrong on anything]

</comment><comment> guard-of-terra They try to put organism's compexity on a logarithmic scale and look where this line "reaches zero". Then they find out it was very very long ago, before the Earth coalesced. They then proceed to imply that life is older than Earth.

The problem here is: you can't do that. For example, if you look at human population, it was growing kind of exponentially for as long as we know. And if we continue this trend long enough to the past we'll infer that Earth featured several dozens of humans even when it was still in a liquid magmatic state five billion years ago!

Exponential growth becomes glacially slow when we go back in time. Therefore, any growth seems to be not exp(t) but rather max(ct, exp(t)) - not slower than linear. It doesn't matter once we hit present history, but it does matter when we talk about a linear part in the past.

</comment><comment><USER16> This is fun! I took the boys average weight data given in [1]

months from conception, average weight (kilos)

(9, 3.25)

(15, 7.5)

(21, 9.97)

(33, 12.88)

(45, 14.97)

(69, 18.97)

and saw that it really looks like a logarithmic function. So, fitted y to log(x), got y~7.4685*log(x)-13, with R^2=0.9965 (thank you R!). Extrapolated back, and found that at conception, the fetus weighs -inf kilos. Not surprising result, I must say. However, I was surprised to find that only after five months of gestation, the embryo reaches the critical mass of 0 kilos. Science!

[1] [http://www.buzzle.com/articles/average-weight-for- children-b...](http://www.buzzle.com/articles/average-weight-for-children-by- age.html)

</comment><comment><USER17> Their measure of complexity is Genome size. That's a very simple measure of complexity.

Just a dumb example-- humans have a single gene for a protein in muscles. But that single genes has multiple exons and depending on whether it's being produced in heart, usual muscles, or soft-tissue muscle it's transcribed differently. Most of the protein is re-used, but a couple of parts are swapped out.

So we have genetic code being used in three different proteins. Our genome is being efficient in size, yet it's increasing in complexity.

That being said, I have no idea how to measure complexity well.

</comment><comment><USER18> You know something is wrong when the complex and evolutionary trees of "mammals" and "eukaryotes" are single points on a graph. If the geekbait Moore's Law didn't tip you off, the paper is garbage.

</comment><comment><USER19> I've suspected for a long time that the idea that life originated on Earth is the last geocentrism.</comment>


Fuck Cancer - <AUTHOR> That is all. <comment><USER2> It has been 12 years since the Last Lecture. Imagine what we could have accomplished in those 12 years if we had really tried.

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

Here's the video:

[https://youtu.be/ji5_MqicxSo](https://youtu.be/ji5_MqicxSo)

A few trillion in wars, a few trillion in bailouts... it would have be great if cancer(s) at least became manageable.

</comment><comment><USER3> Word, that is all.

Hard news for any of us. Find others who you can draw energy from, talk to. It helps.

<comment><AUTHOR> Thanks. Friend in her early forties stage 4 kidney cancer. Too young. Our other friend died last year from another type cancer, also in his early forties. So yeah.

</comment></comment><comment><USER4> Reminds me of Radicalized by Corey Doctorow. The short story of that name within the collection of stories by that name.

</comment><comment><USER5> I just found out I have cancer.

i am completely numb.

<comment><AUTHOR> my best thoughts and wishes to you opendomain. Sincerely.

"I wish it need not have happened in my time," said Frodo. "So do I," said Gandalf, "and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us."</comment></comment>


Why is GoToMeeting being a scumbag? - <AUTHOR> http://bradmccarty.me/why-is-gotomeeting-being-a-scumbag

<comment><USER2> There's actually a few tactics being used here that's very common in search engine marketing (SEM) that's not necessarily intentional (at least the ad copy part):

\- They are targeting "meeting burner" and variations as part of standard expansion strategies. In fact, some of this could have been suggested by Google through Keyword Suggestions. Has meetingburner filed a trademark protection request with Google to prevent competitors from using their name in their ad copy? Google actually doesn't protect your keyword from being a "trigger" to show ads since they claim that the user intent is to search for "meeting software" and both companies have relevance to that query. Usually, if it's your brand name, you should have an exceedingly high Quality Scores which translates to your competitors paying extremely high CPCs to even show up against your brand. Try using "meetingburner - Official Site" to let people know the other ad is not meetingburner.

\- The ad copy appears to be using dynamic keyword insertion so it's using keywords being targeted to build the ads so it's something like "{KeyWord} Software" and it could be "Meeting Burner Software" or "Online Meeting Software" depending on the keyword being used but the ad copy can be universally used and not specifically targeted at meetingburner. Filing a trademark protection request with Google will automatically flag/disable competitor ads that can trigger against your trademarked terms.

</comment><comment><USER3> I've been using MeetingBurner for about 3 months now, and it's not just the price (free) that won me over, it's the ease of use for participants compared to the other services.

When you're dealing with clients, a bad web meeting experience can damage your reputation, even though you had nothing to do with why it was bad.

I use Screenleap.com when I need to show things quickly, and MeetingBurner when I'm doing a more formal meeting and need both a conference line and a traditional screencast.

There are only two UX issues I have with MeetingBurner, and that's the need to download an "app" each time I present (which I can deal with), and the fact that the conference line doesn't beep when new people join the call (which really needs to change ASAP).

<comment><USER4> You should check AnyMeeting. The feature set for a free account doesn't come close in comparison with what you have suggested above.

Someone can correct me if I'm wrong but I think these meeting services are one of those businesses which are apparently raking dough off of Ads via general public adoption. These are no longer just a business services.

</comment></comment><comment><USER5> Probably because they use an automated tool for generating ads, saw this was a "related keyword" and stuffed the search query into the opening line of the ad so it would appear more relevant.

"Never attribute to malice that which is adequately explained by stupidity." - Hanlon's Razor <http://en.wikipedia.org/wiki/Hanlons_razor>

<comment> jack-r-abbit There was a pretty good explanation of how this process works: <http://news.ycombinator.com/item?id=4086887>

It seems they would have had to purposely put "MeetingBurner" as one of the keywords to be stuffed into the ad. If they truly are just that stupid then it speaks as much about them than if they were being malicious. o_0 It sure does look shady to me.

<comment><USER6> Not necessarily. You can do wildcards in text ads where the matching term gets inserted. Not saying that's what they did, but it definitely doesn't have to be done by hand.

<comment><USER7> When you put the wildcards (DKI), it matches the keyword from your list of keywords, not the search query. So you'd have to put MeetingBurner on a list of keywords to have it show up here (which as others said, could be due to the Google Keyword Suggestion Tool)

</comment></comment></comment></comment><comment><USER8> This came up just a few days ago on HN [1]. The conclusion there, based on a response from GoToMeeting's marketing department, was that they were using Google's dynamic keyword insertion to replace words in the ad copy with the user's search terms [2], and at the same time, bidding on their competitor's name. So, if you'd entered "online meeting", it would've come up with "Online Meeting Software" in the GoToMeeting ad; the technique seems to have backfired in this case.

[1] <http://news.ycombinator.com/item?id=4086757>

[2] <http://news.ycombinator.com/item?id=4086860>

</comment><comment><USER9> It is always possible their adwords sales person suggested it. Ever since Google prevailed in their advertising against trademarks suit [1] where they aren't responsible for folks who buy ads against someone else's trade or service mark I see more of it (well when I use Google anyway, which is hardly ever :-)

I expect that some sociopath at GotoMeeting has the 'win' bit set to "we get more referrals from Google" and they haven't had a penalty created for being underhanded (or as they would no doubt say, competitive). Bid more for your own name and you won't get ads on top of you. Google wins, you lose. Sorry about that.

[1] [http://blog.ericgoldman.org/archives/2012/01/keyword_adverti...](http://blog.ericgoldman.org/archives/2012/01/keyword_adverti_6.htm) \- and many links at the end.

<comment><USER10> That would be my take too, some idiot sales guy thought it would be a good idea. I'm pretty sure that does not come from management.

Obviously that goes against google ads rules and you don't want your company ban from there if you are legit (gotomeeting seems to be)

</comment></comment><comment><USER11> Here is my point of view as a Search Engine Marketer:

\- Go to meeting is probably using Dynamic Keyword Insertion (DKI) in their ads. This dynamically inserts a user's search query into the ad copy. From looking at the blog post, this seems to be true for the second screenshot. For the 1st screenshot, it seems that they are indeed building copy with "Meeting Burner" on it.

Whether this was suggested by they in-house Adwords person, an agency or anyone else, this is plain wrong. Not sure if you have any relationship with anyone from the Google Adwords team, but if you do, it would be good to get in touch with them.

Also, here is more info regarding this: [https://www.en.adwords- community.com/t5/Ad-Approvals-and-Adv...](https://www.en.adwords- community.com/t5/Ad-Approvals-and-Advertising/Competitor-using-my-company- name-in-Google-Ad/td-p/31984)

Here is the Google Adwords Trademark Complaint Form: <https://services.google.com/inquiry/aw_tmcomplaint>

If you guys need some help with your Adwords campaigns feel free to shoot me an email (email@example.com). I'd be more than happy to volunteer couple hours to optimize your account or help you with sitelinks or retargetting.

<comment><USER12> As someone who does SEM, I played around with some queries, and...

-GTM is using the dynamic keyword insertion for the title of some their ads. This is not uncommon. And for the right queries, it does work.

-GTM is buying keywords for some competitors, for example, search fuzebox. On the other hand, they haven't found join.me just yet.

As an advertiser, unless there is a trademark block, you can bid on competitor keywords. What you can't do is use competitor keywords in the title or copy of your ad, dynamic insertion and/or copy. That second screenshot is most troubling, as the title does not match the query (i.e. that copy was built.)

GTM needs to remove their dynamic insertion ad from their competitor ad group and from any built copy. They should not be using competitor keywords in the title/copy of their ads at all, so for any budding SEMs here that's really what the issue is.

<comment><USER13> > That second screenshot is most troubling, as the title does not match the > query (i.e. that copy was built.)

Did you mean to say that the first screenshot was more troubling? That is the one where the user searched "meetingburner" and the ad copy says "Meeting Burner Software | GoToMeeting.com"

</comment></comment></comment><comment><USER14> When I see an ad like this I always click through to make sure the offending company has to pay.

<comment><USER15> _And_ by clicking back immediately you lower their quality score so they have to bid more for the same terms.

I do the same thing, even though I know that in reality it's not making any significant difference.

<comment><USER16> While this (click-through) tactics _may_ have some cost implication, I doubt that (even as a community) we could make a dent in the marketing budget.

In general, we severely underestimate how companies waste budget without blinking an eye.

</comment></comment></comment><comment><USER17> we faced this we were running dimdim. even now this is what the ads GTM runs for keyword "dimdim" looks like : <http://static.inky.ws/image/2152/image.jpg>

Just ignore it and build a better product.

</comment><comment><USER18> I just did the search, and the MeetingBurner name does NOT appear in GoToMeeting's ad copy anymore.

<comment><USER18> Maybe I am just being too cynical, but is there any way to prove that this actually happened, rather than being a viral marketing stunt by MeetingBurner?

<comment><USER19> Yeah. I took the top screenshot.

<comment><USER18> Your blog really gives no direct info about who you are (I now see that things would have been clarified if I had clicked through to your twitter account), making it hard to tell whether you are truly independent or a marketing person for MeetingBurner. Credibility really wasn't helped by your blog post being submitted by a MeetingBurner founder (according to his/her HN profile).

Anyway, I've verified the screen shot for this post: <http://news.ycombinator.com/item?id=4096538> showing somewhat similar behavior by GoToMeeting toward Dim Dim, so it does seem that this story is legit.

<comment><USER19> Fair enough, but yeah, there are a few clues as to who I am and the Svbtle network is becoming pretty well known at a quick pace.

I suppose that I could update my blurb in the sidebar to better explain, but generally speaking anyone who's reading that site is someone who knows me anyway. Getting linked on HN is fringe case for me.

</comment></comment></comment></comment></comment><comment><USER20> There are also folks who do what is known as affiliate marketing that may be behind this. GoToMeeting may not have actually placed the ad, however an affiliate marketer (3rd party) may have placed the ad in hopes to get click through dollars.

</comment><comment><USER21> free for 15 people meeting, that's like 95% of the market, and I wonder if they can sustain the business model?

when we use this kind of online conference tools, any concern on internal IP(say, it's recorded without your knowledge)? I would like to buy similar software to host my own conferences instead, though I don't think anyone is doing that.

<comment><AUTHOR> A fair question.

Without giving too much away, the uptake rate to Pro & Premium has turned MB into a solid, profitable business less than a year after launch.

If tweaks occur to the "Free" account down the road, the MB team has historically "grandfathered" all account levels retroactively if changes are made moving forward.

<comment><USER21> still in favor of a self-hosted solution and don't mind to pay for that, with that you can compete against the legacy video conference guys, e.g. cisco, polycom(where you set up your private system with their offering, though you now use PC to replace the hardware part).</comment></comment></comment>


My Thoughts on Oracle v Google - <AUTHOR> http://blog.headius.com/2010/08/my-thoughts-on-oracle-v-google.html <comment><USER2> This brought myself into a grand realization.

I've always anticipated that the right thing for myself would be to pass any opportunity to contribute to any patent applications should I ever "invent" anything potentially "worth" patenting. I have seen that patents greatly harm the software ecosystem and I don't think I would ever want to take part in any of that.

However, _now_ that I think about it I will _never even consider_. I'll just say "No" right out of the way, and walk away from the opportunity as quickly as I can.

I announce that, as of today if my current, at any time, employer happened to be patent-unfriendly, only file defensive patents, never litigate anyone, and perhaps win some patent trolls because of their accumulated defensive intellectual "property" I will still say "No" to getting myself involved in any patent application. Even if I was offered a bonus for that. Or a job.

This whole Sun vs. Oracle thing made me realize that software patents are _categorically_ undesirable.

Patents are like guns. Maybe so because I'm a pacifist. Now: sure, you can buy a cabinet full of rifles, shotguns and pistols to defend your house on the prairie should the evil gansters arrive. However, if they do and succeed in taking over your house, then _they have the guns_. This is exactly what has happened here. And with companies desperate for money, it's probably easier than robbing a house.

Thus, there's no such thing as a defensive patent: patents are all offensive, even if most of them (software patents) are bogus. While a good-spirited company or person might choose to not exercise the monopoly granted by patent law, it only postpones the inevitable unless the patent expires before that.

Similarly, there are no defensive guns. All guns are designed to wound or kill people. All patents are designed to take away other hackers' freedom to make the world better. I'll reconsider my stance when I see the first useful software patent and when all the useless ones are revoked.

<comment><USER3> While I think the gun analogy was a little superfluous - perhaps because we clearly look at the gun situation differently - I completely agree with you otherwise. Software patents, even if "unused", are a threat lingering above your head like a guillotine. Even if the person in charge of that guillotine promises you they'll never let it drop, you'll probably not put your head under there for fear of what could happen.

Sun guarded the guillotine. Oracle "bought them out", and now they have the guillotine. Google put its head under the guillotine. Now we get to see how sharp it is, and whether Google brought body armor.

<comment><USER4> And you questioned his analogy?!

(Not questioning the point, just suggesting that we all go back to metaphor school this afternoon for a little brush up).

</comment></comment></comment><comment><USER5> Truly an epic post. Halfway through it, I had to come back and upvote it before returning to the article.

<comment><USER6> Stephen Colebourne's "Oracle, Google and the politics of money" is also a great shed of light on this topic: [http://www.jroller.com/scolebourne/entry/power_corrupts_abso...](http://www.jroller.com/scolebourne/entry/power_corrupts_absolute_power_corrupts)

I kinda agree with Stephen on the damage Oracle does to open source and the added uncertainty for collaborators on the open parts of java. I think Charles underemphasized this aspect.

</comment></comment><comment><USER7> <http://www.xkcd.org/743/>

</comment><comment><USER8> Remember when NTP sued RIM and won over $400 million? Their patent for sending email over RF seemed pretty silly at the time too. So, while this is a good article on the whole, it may be a bit naive to assume that Oracle can't win the case on a few simple patents. This case appears to be the only reason they bought Sun, and I suspect they're smart enough not to place a $6 billion bet without some very smart lawyers feeling like they've got a good shot at winning.

<comment><USER9> Regarding NTP vs. RIM: seems like the NTP patent was, in fact, _invalid_ as will be determined by an ongoing patent office reexamination:

[http://spectrum.ieee.org/at-work/innovation/rim-v-ntp-yet- ag...](http://spectrum.ieee.org/at-work/innovation/rim-v-ntp-yet-again)

<comment><USER8> Thanks for the link. I wasn't aware the patent was still in question. I don't think it invalidates my point, though. RIM was criticized for waiting too long before settling the case, and thus paying 10x what NTP originally asked for. Waiting for the patent office to invalidate the patent takes long enough that it has plenty of its own risks.

</comment></comment></comment><comment><USER10> _OpenJDK itself took years to gain acceptance from OSS purists_

Recent events seem to indicate the "purists" had a point...

<comment><USER11> it's important to point out that OpenJDK actually _is_ safe. The Java specification has a patent grant clause for compliant implementations, which obviously includes OpenJDK. We can also hope that Sun did their due diligence during the development of Hotspot and during the open-sourcing of OpenJDK to ensure other patents not covered by the grant would not affect it (but of course we can't be sure).

Outside of that, it's no more at risk of patent attacks then any other piece of open-source software.

<comment><USER12> > _The Java specification has a patent grant clause for compliant > implementations, which obviously includes OpenJDK_

OpenJDK is safe because AFAIK the GPLv2 license also has a patent grant.

But if you want to take Apache Harmony and trim it down so it fits on a mobile device or on a pen ... the very essence of open-source ... then you're fucked.

If you want to take some idea from OpenJDK and use it in Jikes; a cross- pollination of ideas (not copyright infringement) which is again ... the very essence of open-source ... then you're fucked again.

Java is not an open-platform. It never was.

<comment><USER13> Taking some _patented_ "idea" from a GPL'd piece of code and re-implementing it in your own separately licensed code is not something that the GPL gives you the right to do.

Your definition of open-platform requires that the code not be covered by any patents. Anyway, the best thing that can come out of all of this is more deep- pocketed players angry with the software patent system.

<comment><USER12> But my point isn't about what the GPL gives you the right to do.

I don't see the Linux kernel devs getting sued or suing the *BSD kernel devs, although they share ideas all the time.

Also, people scale/modify the Linux/BSD kernel to fit their needs all the time. The Java patent grant only applies if you're not building a subset/superset of Java or if you're extending OpenJDK. But these aren't enough ... some people do not want GPL.

That's what I mean by "the spirit of open-source" ... it's a collaboration effort from which everyone benefits.

And as of this recent announcement, OpenJDK is open-source only by license ... if that wasn't clear already.

</comment></comment></comment></comment></comment><comment><USER14> "But I think the real damage will be in how the developer community perceives Java, rather than in any lasting impact on the platform itself."

A change (for the worse) how the dev community perceives a platform _is_ (or will lead to) a significant impact on the platform?

Or is he saying usage in big corps (where devs don't decide the platform, mangers do) won't be affected?

Minor nitpicks aside, decent essay!

<comment><USER15> I think he's saying it's not actually going to kill Android or any other Java- based platform (like some people fear), but it might make some people a little more skittish about embracing the platform and it might drive OSS development to a platform whose rightsholder doesn't go around suing people for trying to create their own version.

</comment></comment><comment><USER16> I think it's likely a strategic cross-licensing play, which is to say that Oracle have found they read on one or more patents held by Google and are knocking on the front door with a sledgehammer.

<comment><USER17> From what little legal knowledge I have, I think you don't go looking at your own patents that way, because then you are _knowingly_ infringing, which means you would pay more damages.

It's simpler: they just want to shake Google down for some cash.

<comment><USER18> I saw one interesting idea proposed on another blog: What if Oracle wants a license to BigTable in return for letting the Java patents out?

<comment><USER19> Then Google lets the court decide instead.

Imagine someone sues you for spilling coffee on them. They are willing to settle if you cut your hand off. You disagree, go to court, and the court awards the plaintiff twenty bucks. Same thing happens in the corporate world, too.

Honestly, Oracle's patents should be easy to find prior art for. Nothing in computer science is new, even if a patent examiner or some dude working 9-5 at Sun say they are.

<comment><USER20> RIM probably thought there was prior art too.

</comment></comment></comment></comment></comment><comment><USER21> Very good. The patents described really are laughable. An implementation of "fork"? Really?

<comment><USER22> Patent lawyers who filed that patent would probably laugh at you for talking about kitchen utensils in respect to such an awesome patent idea ;-)

<comment><USER23> On the subject of kitchen utensils...

One of my favorite patents is for the OXO angled measuring cup[1]. It seems obvious now in hindsight, but was truly unique when it appeared on the market. The uniqueness comes from seeing the volume from both the top and the side otherwise the patent would probably not have been granted.

[1] <http://www.freepatentsonline.com/6263732.html>

<comment><USER22> I remember seeing those in the store and thinking -- why didn't anyone think of this before !?

</comment></comment></comment></comment><comment><USER24> I am not a Java developer, but how is this situation is too much different from the Java/J++/C# issues that were had between Sun and Microsoft? It is a different type lawsuit, and (arguably scary) patents are involved, but it seems to be similarly motivated.

Sun originally developed Java to be a standardized, cross-platform development tool.

The original intent (as I see it, anyway) was to get some market share away from Microsoft/Intel by providing a tool that would allow a program written and compiled once on one platform to run on any platform. (The actuality is that you have to make small changes, but for the most part, this works).

So Microsoft started working on J++, and did/were doing the same thing that they did in the web browser space. They built non-standard extensions that would not be compatible from one platform to the next. Exactly the opposite of what a vendor providing an OS/Hardware combination wants, when the entire idea of the language is to make the OS/hardware a reasonable option.

Dalvik doesn't support certain parts of either SE or ME. I would have to believe that this is the reason Google is unwilling to license; they would then have to comply with one of the (bloated/inefficient) standards. (This isn't because Google doesn't have the cash to pay up).

From Oracle/Sun's perspective, this could easily be seen as a long term threat to the platform. If you have runtime compatibility issues, the ship is sunk. You have reliability issues, as with early C++ implementations (can't use 1/2 of the features); Or you have compatibility issues, as with the current state of Common Lisp implementations (many rock-solid implementations, but things are subtly different from one to the next. Aside: subtly different is the worst type). So from that perspective, that they do not want the JVM fragmented, I sympathize with Oracle.

From the perspective of the patents as described in this article, as a computer scientist and programmer, that these things can be patented is shocking. What worries me, is that I will unknowingly build something which has already been patented.

In particular, the hybrid compilation technique does not seem to be very much different from the methods involved in having a lisp (for example) with both an interpreter and a compiler. It is an interesting technique, and very clever, but how can a compilation technique be patented? Specifically this early in the history of computing. What if someone had patented using assembly instead of machine code, or intermediate representations of code? What if McCarthy had patented the AST? Or if the various ways of implementing regular expressions had been patented? It seems morally objectionable.

I honestly, truly hope that Oracle loses this patent suit.

<comment><USER25> One difference between J++ and Dalvik is that Dalvik is free software. Another is that the JDK is supposedly under the GPL at this point; this is probably the first time a GPL licensor has sued a free-software compatible reimplementation of their GPL code for patent infringement. It's a new level of "shocking" in this area, although it may not really rise to the level of the SCO case.

<comment><USER26> Being free in the copyright sense does not affect your patent status as far I understand (unless there is a specific patent grant in the license)

<comment><USER27> Even without an explicit grant, distributing a product includes an implied license to use related patents. So even under an open source license with no specific patent clause, a company would have a hard time releasing something open source, then suing users for patent violations for using that same something. (They might still be able to sue for violating those same patents in other ways.)

</comment></comment></comment></comment><comment><USER28> Very good read. I'm not considering myself as a Java developer (even if I wrote some java) neither an Android one and this really helped me to have context and more background about this lawsuit. Thanks !

</comment><comment><USER4> I suspect if the case was as open and closed and without merit as many are thinking, Oracle wouldn't have bought it.

Google aren't some tiny outfit who are going to fold at the first threat. They have very deep pockets and plenty of lawyers and there is no reason to think that they'd give in easily.

Oracle will know this and therefore we can reasonably assume that they have bought this case with the willingness to fight it (and spend the significant amounts of time and money involved in doing so).

Certainly if the suspicion is that they spent $7.4bn buying Sun primarily so they could bring this case it seems even more unlikely - you don't cough up that sort of money unless you think your case is really pretty strong.

(Incidentally I think the suggestion that this is the primary reason they bought Sun doesn't really add up - it's far too big a gamble and the damages award would have to be vast, way beyond the Microsoft / Sun damages to justify it. Oracle are a proper company with proper products, generally speaking they're not patent trolls and have better things to do with the money than take this sort of punt.)

I'm not saying that they will win it, just that the frequent claims from technologists that their case is without merit fail to explain why a bunch of smart people (because whatever you think of them over this the evidence is that the people running Oracle are not stupid, they are not SCO) with a lot of very smart, very well paid lawyers, were willing to take such a punt when their case is evidently so weak.

</comment><comment><USER17> This one: "System And Method For Dynamic Preloading Of Classes Through Memory Space Cloning Of A Master Runtime System Process (7,426,720)"

Sounds fairly similar to one of the tricks that ETLinux used:

[http://www.linuxfordevices.com/c/a/Linux-For-Devices- Article...](http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/The- Architecture-and-Development-of-Etlinux/)

<comment><USER29> Circa 2000 I and another developer at my company implemented two systems which are very good examples of prior art for this patent. Both of those systems are still in use today, and I consider the mechanism to be a standard design pattern for robust SOA components. Reading the claims, the only ones that don't match what we did are the claims that say the system is implemented in Java; ours are C++ and Perl. That should be sufficient to invalidate the patent though, at least in a reasonable world.

<comment><USER25> It's possible to invalidate only certain claims of a patent with prior art. In theory you would think that if there's lots of prior art of people doing XYZ, then someone doing XYZ in Java because their project uses Java would be obvious and therefore not patentable. In practice the Federal Circuit has taken an absurdly narrow view of "obvious".

<comment><USER30> I guess that might also answer something I've been wondering since this began (well actually before, but this case has brought it back up in my mind). If you take some people skilled in the relevant art, and just describe a problem to them and tell them that someone did solve it but not how it was solved, you lock them away to do a clean room implementation of something that solves that problem, and then their solution happens to be the same as in some patent... then isn't that a bit of evidence that the solution in the patent isn't non- obvious?

<comment><USER31> Exactly. In fact not only could you say it isn't non-obvious, you might go as far as to say it is obvious.

</comment></comment></comment></comment></comment><comment><USER32> Charles' main take-away point, at the end of the article, is that for 99% of Java developers this law suit should have no effect at all, except that it might stifle the future of the Java platform. So, maybe we just have JDK 6 forever.

Since I find myself switching between Java/Clojure, Common Lisp, Ruby, and Scheme (and would like to be better at Haskell), I am not losing any sleep over this law suit. If Java stagnates, I'll just slowly migrate to new languages.

</comment><comment><USER7> Even if Oracle and Google settle in some peaceful way (best outcome out of the likely ones), it is very likely Oracle will continue this avenue of profit. Perhaps IBM is next, given the long time hostilities among both. Or the Android-based handset manufacturers and sellers. There's a lot of shakedown money to be made for Oracle. And it is probably even lawful in spite of it being labeled as morally wrong. Good luck.

<comment><USER11> IBM is safe, since they've played by the rules and since they have an even bigger patent bat than Oracle does. There may be tensions, but probably nothing we'll ever see from the outside.

I think other OSS Java implementations are safe too, because: a. they don't harm Oracle's business in any substantial way (nobody's using them), and b. there's no profit in going after them.

If you start to look at everything Oracle does through the lens of "profit above all else" the clouds become a little less cloudy.

<comment><USER7> Safe now, but for how long? What about upcoming versions? What about relicensing? What if they are breaking some fine print? It's not that easy.

</comment></comment></comment><comment><USER33> I think the patent "Interpreting Functions Utilizing A Hybrid Of Virtual And Native Machine Instructions (6,910,205)" is a important arsenal, dalvik or alternate implementation would need to grow to this level some point in the future.

cutting access to a growth path can hold back development of the android platform

<comment><USER34> It sounds to me like it would be easy to circumvent, just like JRockit does (as describe in the article): instead of mixing interpretation and JIT compilation, have different levels of JIT compilation: cheap and unoptimized vs. slow and highly optimized.

</comment></comment><comment><USER35> Could someone explain what the heck "One of the big contentious items is the addition in Java 5 of parametric polymorphism as a compile-time trick without also adding VM-level support for reifying per-type specializations as .NET can do." means for a language implementation layman?

<comment><USER36> "parametric polymorphism" is fancy way to say "I'm declaring a type that is composed of other types".

The canonical example is a set.

In C# (that's what I'm familiar with) we have IEnumerable<T>. It represents enumerating over some homogeneous set of type T.

so when you write "var myList = new List<int>() { 1, 2, 3 };" the type that gets written down in the bytecode is List<int> (which implements IEnumerable<int>).

So the statement "typeof(myList) == typeof(List<int>)" returns true. The type you specified at compile time doesn't loose information at runtime. (For instance you can also do typeof(IEnumerable<>).MakeGenericType(new[] { typeof(int) }), which gets the Generic Type Definition and then you can fill that in at runtime).

The Generics implementation in Java 5 however was all a compiler trick. All the benefits only existed in the AST of the compiler, they never got down to the runtime. So it was easy to check that you couldn't add a int to a strongly typed list of strings, but only in source. (I think, I'm not as well read as javac / JVM internals)

Hopefully that helps.

<comment><USER37> _So it was easy to check that you couldn't add a int to a strongly typed list of strings, but only in source. (I think, I'm not as well read as javac / JVM internals)_

You're right. Here's Jim Waldo's explanation from _Java: The Good Parts_ :

"the inability to change the VM or bytecodes [due to requirements of backwards compatibility] meant that parameterized types could occur only in the source code. The type system of the runtime hasn't changed, and doesn't include generics or parameterized types. What we see in our code as a Set<Player> is seen in the bytecodes as simply a Set of objects."

<comment><USER36> I think read part of that as well, I just don't do Java dev day in, day out is all :-)

But this got me thinking about compiler tricks in general, and how they can be a good thing.

For instance in C# the keywords foreach, and using are just compiler tricks, as well as the notion of closures.

</comment></comment></comment></comment><comment><USER38> Something hit me:

BSD history is repeating itself...

<comment><USER39> That was rather markedly different, since it was a copyright suit, not a patent suit. AT&T never claimed that they had patents that forbade using BSD; they simply claimed that BSD could not possibly have been written without violating AT&T's Unix copyrights.

In this case, as far as I'm aware, Oracle is not claiming that Google misappropriated any Java source code, but rather that they violated numerous patents that cover JVM-like technologies. This would be akin to AT&T saying that Linux was illegal because it violated patents it held on Unix.

</comment></comment><comment><AUTHOR> Huh? Someone changed the title. Is that customary around here?

</comment><comment><USER40> That was an epically long post. It was good.

<comment><USER41> It reminds me of the apt quotation (I can't get an authoritative source on it in 30 seconds of searching), "If I had more time, I would have written a shorter letter."

<comment><USER42> Blaise Pascal: I have made this letter longer than usual because I lack the time to make it shorter.

(There are several variants on WikiQuotes,)

</comment></comment></comment><comment><USER43> If there was a word for 'text bukkake' it would likely summarize this post.</comment>


Use lambdas for Rails 3 Route Constraints - <AUTHOR> http://intridea.com/2011/2/21/use-lambdas-for-rails3-route-constraints

<comment><USER2> That's pretty neat, but doesn't it make more sense to use before_filter in your controller for that stuff so that you can properly handle errors instead of showing a 404?

<comment><USER3> I don't think that the op will want to show a 404 page. If a user is logged in, I will redirect the user to the homepage. Why let the user accesses the login page if the user has already logged in?

I guess that is what the op trying to do.

<comment><USER4> So they can log in as a different user?

So they can use the back arrow and go to the page they at before login redirected them?

I found Drupal's hiding of the login page once I was logged to be truly annoying on a site I regularly visited (till it was apparently changed recently).</comment></comment></comment>


Whats your suggestion about Howwebstuffworks.com - <AUTHOR>

Hello there, I need your Suggestion.
I purchased a domain http://howwebstuffworks.com for an experiment to compete against crunchbase.com or venturebeatprofiles.com and howstuffworks.com. But, the experiment doesn't bring any fruitful results. Requires more features, functions, more information and so on.
What would be your suggestion? What things do you expect from this site? Or what business transform is possible with that domain? Any IDEAS?
Please share, I will appreciate your support, suggestion. <comment><USER2> Ideas:

Collection of videos and articles explaining various technologies. Make money with ads.

Same as above except feature courses teaching internet stuff. You can make your own courses and/or feature other people's courses. For example, Laura Roeder sells courses on internet marketing for small businesses (<http://www.lauraroeder.com/resources/>). You could work out an agreement whereby you get some commission for selling her courses. See affiliate marketing (<http://en.wikipedia.org/wiki/Affiliate_marketing>).

</comment><comment><USER3> Lawyer up. I wouldn't want to be going up against howstuffworks.com's trademarks with a domain like that...</comment>


The Internet is life. - <AUTHOR> http://blog.mijura.com/post/22379129390

<comment><USER2> "The Crystal Wind is the Storm, and the Storm is Data, and the Data is Life." -- Daniel Keys Moran, describing hackers.</comment>


A Pirate's Life for Me, Part 1: Don't Copy That Floppy - <AUTHOR> http://www.filfre.net/2015/12/a-pirates-life-for-me-part-1-dont-copy-that-floppy/ <comment><USER2> Interesting note from the OP highlights that Bill Gates' infamous open later was 7 years before the courts actually decided copyright status for software.

The Franklin computer case is also interesting due to it's connection to Apple.

</comment><comment><USER3> It's interesting that the money at stake at the time when Gates and Allen started Microsoft was in the 5 figure range. It's funny how in hindsight everybody was trying to "change the world" but in reality, they were saying nothing of the sort and were probably only hoping for a 6-figure paycheck.

I wonder how we'll look back at all of the people currently proclaiming that they are, in fact, trying to change the world..?!

<comment><USER4> The thing was Micro-Soft at the time was selling BASIC, COBOL, and FORTRAN languages without paying a license fee to use them from the college or company that held the copyright license. You could say that Microsoft made a clone of the languages for microcomputers, but did not invent the languages themselves. This cut down on research and design costs to use an existing language and write a clone of it instead of paying a license fee for the language software and port that.

So at the time the people who pirated Micro-soft tapes and floppies claimed that it was an illegal port in the first place. I don't know if they are correct or not but copyright was not enforced in the 1970s and 1980s because they had different IP laws then than we do now.

When Microsoft bought 86-DOS/Q-DOS it had violated CP/M-86 patents by using the API and in fact there was a CP/M to DOS converter for programs because of how similar both operating systems were. [http://www.wired.com/2012/08/ms-dos- examined-for-thef/](http://www.wired.com/2012/08/ms-dos-examined-for-thef/) But as it turns out you can't copyright an API and Linux uses the Unix API.

So saying Microsoft stole IP is very hard to say, they did develop alternatives to the originals that their software did the same things as. None of what they made early on they sold was original and was based on something else.

The only reason why IBM chose DOS instead of CP/M is that DOS cost less per license than CP/M. Plus IBM got access to Microsoft BASIC for their PC ROM.

Micro-Soft saw a need for a programming language for many microcomputers that didn't even have software yet, it allowed others to use the languages to write software for the many different microcomputers. So in a way Microsoft making their own version of those languages without paying a license fee opened up a lot of doors for the 8 bit and 16 bit market. Because no other company was doing that at that time.

To this day many free and open source projects make clones of the original products by using the same API as the original and writing their own code from scratch. If API becomes copyrighted it would shut those projects down.

The IBM PC Clone market only happened because they cloned the PC BIOS by reverse engineering it and writing their own BIOS that uses the same API calls as IBM's BIOS. Then Microsoft licensed MS-DOS to the PC clone companies who made PCs cheaper than IBM and lead to a reduction in cost of microcomputers.

So in honesty Microsoft sort of started the API cloning business and it allowed the PC Cloners to take over IBM's marketshare and drive IBM out of the PC business.

<comment><USER5> _" The only reason why IBM chose DOS instead of CP/M is that DOS cost less per license than CP/M."_

IBM didn't choose DOS; the market did. The original PC could be bought with either PC-DOS, CP/M-86, or UCSD p-System.

IIRC, the DOS version was cheaper, and, possibly, available a few months earlier, but in those times, the latter did not imply that the race was run before it started in those times.

</comment></comment></comment><comment><USER6> I enjoyed this until the last paragraph, when I got a strong Murray Gell-Mann amnesia effect ([http://www.patheos.com/blogs/geneveith/2011/08/the-murray- ge...](http://www.patheos.com/blogs/geneveith/2011/08/the-murray-gell-mann- amnesia-effect/)).

I was more than a casual part of the scene. The following might have been an attempt at humor, but is revisionist:

"the scene was, among other things, a cesspool of adolescent nihilism, teenage posturing, and crude social Darwinism, teeming with racism, sexism, and homophobia."

It had hierarchies. You had to be cool, connected, socislly smart and willing to take risks to succeed. There was lo-resolution porn. There was overlap with phone phreaks and some people who stole phone cards. Most just used the mail or person-to-person. The scene was actually bursting with creativity, joy healthy competition and sharing. Cracktros are fundamentally celebratory music.

But the SJW junk is made up misandry. Don't believe everything you read.

</comment><comment><USER7> The "Don't Copy that Floppy" rap: [https://www.youtube.com/watch?v=up863eQKGUI](https://www.youtube.com/watch?v=up863eQKGUI)

bodacious.

</comment><comment><USER8> This presages the development of SaaS. Software is, if you're lucky, a means to an end. No one pays you for the means, they pay you for the end. When you're building your own house, you can often get it built for less than half the price you would pay down the street because of this phenomenon.

Looks like Microsoft caught up to this reality.

</comment><comment><USER9> Did Microsoft ever release the APL implementations Bill Gates mentioned?</comment>


Toy Story 2 files wiped by accident, restored thanks to work-from-home employee - <AUTHOR> https://mobile.twitter.com/hatr/status/1255551412832014338 <comment><USER2> Okay, time to nominate this one for the Hall of Fame.

[https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...](https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=%22toy%20story%202%22&sort=byPopularity&type=story)

</comment><comment><USER3> What's weird to me about this is I remember sysadmins always using this incident as a case for tape backups, saying it was restored from tape. I saw a post about it a few days ago on reddit and kinda had a minuscule mental breakdown, now here it is again...</comment>


Ask HN: Why hasn't anyone written an open-source Siri clone in Haskell? - <AUTHOR>

I was just thinking that this would be something that Haskell could do really well. <comment><USER2> While you are at it, I could use a space shuttle made from legos.</comment>


Understanding and writing a JPEG decoder in Python - <AUTHOR> https://yasoob.me/posts/understanding-and-writing-jpeg-decoder-in-python/ <comment><USER2> Hi everyone! OP here.

Why write another article on JPEG when there are already hundreds of articles on the internet? Well, normally when you read articles on JPEG, the author just gives you details about what the format looks like. You don't implement any code to do the actual decompression and decoding. Even if you do write code, it is in C/C++ and not accessible to a wide group of people. I tried to change that through this article. I give you a guided tour of JPEG encoding/decoding process and show you how it can be implemented in Python3.

I mainly focus on decoding baseline encoded JPEG images.

<comment><USER3> It's great to see more people complete the "JPEG decoder challenge" \--- and document it too. Have you read the official T.81 spec[1]? It is one of the easier standards to read, and it has flowcharts of all the algorithms which mean you can implement without really understanding the theory.

As you mentioned there are lots of other articles about writing JPEG decoders, as well as for the other popular image formats GIF and PNG. What I haven't seen much of if at all, however, are articles about _video_ decoding; if you're interested to try another challenge, I recommend a decoder for H.261: [https://www.itu.int/rec/T-REC-H.261-199303-I/en](https://www.itu.int/rec/T-REC-H.261-199303-I/en)

(I've written one --- in C --- and it is actually far simpler than JPEG in many ways, although it shares many similarities. A H.261 decoder in Python, with associated article, would definitely be very interesting to see, and AFAIK also a world-first!)

[1] [https://www.w3.org/Graphics/JPEG/itu-t81.pdf](https://www.w3.org/Graphics/JPEG/itu-t81.pdf)

<comment><USER2> Thanks for the H.261 decoder suggestion! I will actually seriously consider it because I am personally curious how video decoders work as well. I will make sure to document the process if I end up working on it.

<comment><USER4> If you understand JPEG then you already understand the important bits of MPEG. It's also fun to study scaling and colorspaces. See [https://justine.storage.googleapis.com/printimage.html](https://justine.storage.googleapis.com/printimage.html) and [https://justine.storage.googleapis.com/printvideo.html](https://justine.storage.googleapis.com/printvideo.html)

</comment></comment></comment></comment><comment><USER5> This is a fantastic writeup, love the attention to detail and thank you so much for not posting it on medium.

</comment><comment><USER6> This is great!

I first learned the general ideas from this Computerphile video

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

While we're on it does anyone know of articles/videos that go into similar detail for HEVC?

</comment><comment><USER7> Thanks for making this, a couple of months ago I was working on a jpeg project and needed to understand how it works. I was searching wildly for a tutorial with a python implementation, unfortunately never found one. I found this one in C++ though, it goes a lot more in depth [https://www.youtube.com/playlist?list=PLpsTn9TA_Q8VMDyOPrDKm...](https://www.youtube.com/playlist?list=PLpsTn9TA_Q8VMDyOPrDKmSJYt1DLgDZU4)

</comment><comment><USER8> Thank you for this; lots of details, references and detailed diagrams!

One small note - the first image you mention that we'll need to reference is a bit small to read. Zooming in on the page does not zoom it in due to format of the page. I had to right click -> View image, in a separate tab in order to be able to zoom in enough to read the righthand side of it. edit: this is on the latest version of Firefox

</comment><comment><USER9> Thanks a lot for your article. I think,for me it will be a perfect start for understanding JPEG decoders & making one too. :)

</comment><comment><USER10> This was a really good read to understand JPEG with the right videos and images included. Thanks!

<comment><USER2> Glad to hear that. :) IMO some content is just better suited as visualizations in the form of videos and images.

</comment></comment><comment><USER11> It always puzzles me that the quantisation matrices don't have symmetry along the diagonal. I guess it suggests the distribution of vertical and horizontal lines in typical pictures differs.</comment>


Ep.io is closing down, recommending Heroku - <AUTHOR> https://www.ep.io/blog/epio-closing-down/

<comment><USER2> I think you'll see a slew of these closures.

\- The PaaS space is getting squeezed on all directions; from the bottom by CloudFoundry and from the top from people like Heroku, Amazon and from startups like Parse chopping off verticals. Building a proper PaaS platform is a _lot_ of work - tons of little edge cases, security concerns, scale concerns. All of it is very non-trivial and you can't just focus on one little scenario and hope to get away with it.

I suspect you'll see more people going the Phpfog->AppFog route, give up the general PaaS platform to CloudFoundry/Amazon/Heroku and try and move up the stack to provide value on top. I have no idea how DotCloud is doing but I'll be very surprised if they're doing well. I I love the team but I think they are in a tough spot.

<comment><USER3> (I'm one of the two Epio founders)

Obviously, we have an interesting view on this whole problem. I'm personally of the opinion that PaaS is still not quite the right solution - there's certainly some progress, but there's such an murky boundary between what a platform and an app provides that it's hard to make something that doesn't surprise people in some way.

It's interesting to note that as a PaaS platform you do get an advantage over IaaS - you can share resources and box-pack apps a lot more efficiently when you control memory and disk access at that higher level, so it's not like IaaS is certain to win either.

I probably need to compose my thoughts into something more intelligible and write a full blog post about how I think deployment should evolve, but I have a migration to shepherd first.

<comment><USER4> Did you consider attempting to sell your business? What prevented you from doing that?

<comment><USER5> Yeah, indeed. I'd have thought the provisioning code and tools could be useful (IIRC was there some custom thing which ran pip installs in parallel)?. I'd certainly donate some money and dev time to help encourage an open source version of the provisioning and build tools which would run any VPS.

</comment></comment></comment></comment><comment><USER6> That's a pity. Ben and Andrew are two of the cleverest (and funniest) devs I've ever met.

<comment><USER7> They're not dying or anything...

</comment></comment><comment><USER5> Boo. Such a shame. Of all the PaaS offerings Ep.io was the one I was really rooting for. There was a real personal feel to the service - support email repies from Andrew directly, and an always active IRC channel.

PaaS sounds like it could make my life so much simpler. I've tried out Ep.io, Heroku and DotCloud, and have test apps continuing to run in all of them but none of them are quite right yet for me to trust a client's production site in, so I'm yet another person replicating using Linode VPSs and a custom build and provisioning script.

Best of luck to all involved with Ep.io, and it's commendable to see their dignified plan including working with helping their customers move away to other services.

<comment><USER8> I'm very curious what's not right with the mentioned services? Why don't you trust them yet?

</comment></comment><comment><USER9> Kindof worrisome that you can't seem to rely on these interesting hosting services because they're liable to go out of business in a few months. That said, it's nice that these guys give over a month to migrate, and instructions.

<comment><USER10> That's a risk you run using services provided for by anyone other than yourself. My bank could suddenly go under and I would have to switch banks... It's not just in the software world, that's anything.

</comment></comment><comment><USER11> I believe they were one of the best hosting providers for no-frill Python Django web apps. A lot of Python web app developers like me would appreciate a dedicated, easy migrate Django hosting website. Alas! :-(

<comment><AUTHOR> Agree. Heroku appears inferior to Ep.io in terms of how easy you can get a Django website up and running, and less flexible.

In our case, we use Brunch (node.js-based tool) to build client-side code. With Ep.io, we'd just build the code locally and then do `epio upload`. While Heroku requires everything to go through repository. Since it's impossible, I think, to run a Node.js tool directly on Heroku, we'd need to `git push` compiled code. It is not nice.

<comment><USER12> You can basically do anything you want on heroku because they allow custom buildpacks. You could make your own buildpack that vendors in node.js and your tool and builds at deploy time. Here's a heroku doc article all about it: <https://devcenter.heroku.com/articles/buildpacks>

<comment><AUTHOR> Thanks for the correction, I didn't read the docs carefully. Buildpack's a better idea than building stuff locally. This makes slightly steeper learning curve the only weakness of Heroku compared to Ep.io.

<comment><USER12> No problem. They don't actually talk about buildpacks all that much but I see it as the major differentiating feature on Heroku.

One thing you may be interested in is heroku-buildpack-multi[1] which lets you run multiple buildpacks. You could theoretically use this to include the standard Python and Node.js buildpacks plus a small custom one that just installs and runs Brunch.

[1]: <https://github.com/ddollar/heroku-buildpack-multi>

</comment></comment></comment></comment></comment><comment><USER13> Sad to see them go. We were hosted with them and really liked their service. Good luck to Andrew and Ben.

</comment><comment><USER14> When you guys say that you're going to make servers not suck, can you share a bit more about what you mean? Are you referring to dedicated hosting?

</comment><comment><USER15> I'm sad to see epio go, it was/is a great tool and I always got stellar service from Andrew and Ben.

I've been using Ep.io for a number of apps, but one of them is <http://laserey.es>, which uses openCV. Andrew installed it on epio without a hitch, but I haven't found any other cloud hosting that offers it. Does anyone have suggestions where I could migrate it to?

<comment><USER16> You might find this comment suggests a way to do it on heroku. (Wishy-washy language because I have no direct experience with buildpacks.)

<http://news.ycombinator.com/item?id=3860312>

</comment></comment><comment><USER17> Too bad! Still no django-focused hosting options :-(

<comment><USER18> Trust me, you really don't want a Django-specific hosting environment. Django's a WSGI framework like the rest of the Python world (even moreso as of 1.4). Supporting any WSGI app is in some ways _easier_ than just supporting Django, so I can't see any good reason why a platform provider wouldn't support any WSGI app. Further, why would _you_ want to choose a platform that locks you into a particular tool? Django's far from the only good choice in the Python web world; don't pick a tool that forces you to put on blinders.

<comment><USER19> What would you recommend as a WSGI-specific hosting environment, then?

<comment><USER18> I've been happy with Heroku, Dotcloud, and Webfaction. Of the three, Webfaction's the only one that's Python-specific (although not really), but both Heroku and Dotcloud have Pythonistas on staff and take Python support really seriously.

</comment></comment></comment></comment><comment><USER20> I smiled, because such caring about clients knowing the company goes down is simply good stuff. Kudos!

</comment><comment><USER21> Does anyone have any feedback about OpenShift by Red Hat?

They were at PyCon and it sounded interesting. I tried openshift and heroku, and heroku was easier for me to get up and running with, but I am still interested in OpenShift.

</comment><comment><USER22> Kind of surprised you didn't do a sale to Heroku or DotCloud (or another PaaS or an IaaS), maybe as an aqui-hire. If nothing else, convert income into capital gains.

</comment><comment><USER23> Sad to see you go. <http://zipf.ep.io> got me my first dev internship.</comment>


TWIRL - A hypothetical factorisation device - <AUTHOR> http://en.wikipedia.org/wiki/TWIRL

<comment><USER2> TIL that not all (modern, secure) encryption schemes rely on the difficulty of factorisation. I had no idea, thanks :)

For instance: <http://en.wikipedia.org/wiki/ElGamal_encryption></comment>


Sourceforge now wrapping Open Source downloads with crapware installer? - <AUTHOR>

Just tried to download Filezilla from SourceForge using the standard download link (https://filezilla-project.org/download.php?type=client) and was sent to here (http://sourceforge.net/projects/filezilla/files/FileZilla_Client/126.96.36.199/FileZilla_22.214.171.124_win32-setup.exe/download?accel_key=57%3A1373272918%3Ahttps%253A//filezilla-project.org/download.php%253Ftype%253Dclient%3Abff2508b%2469cc5f6fe725f94303942a1069ab89e14d7c410d&click_id=401e3f28-e7aa-11e2-b604-0200ac1d1d91&source=accel). The file i downloaded was called SFInstaller_SFFZ_filezilla_8706467_.exe, which is signed by ask.com, and when it runs, it tells me i am using the "Secure downloader" and "would i like to install WinZip". there is a direct link to download FileZilla from their site, if you click show additional (https://filezilla-project.org/download.php?show_all=1). Anyone else seeing this? <comment><USER2> It's not just Filezilla. I have been using PDFCreator for years, and the latest installer from SourceForge has more adware, spam, and crapware than I have ever seen. It replaces your browser and email handler, adds Windows file handlers, and I don't know what else. I tried removing everything, and opening files still shows me ads for crapware. I tried to post a warning on the SourceForge review page, [http://sourceforge.net/projects/pdfcreator/reviews](http://sourceforge.net/projects/pdfcreator/reviews), but they have removed all posts.

I don't know if this is SourceForge's or PDFCreator's doing, but I will never download anything from the site again.

</comment><comment><USER3> Looks like some misrepresentation going on here.

What the download is not is FileZilla - but a piece of software with an Ask.com copyright (as you pointed out).

Looks scammy and scummy - why would Sourceforge get involved with this sort of stuff?

<comment><AUTHOR> guessing its money... you can skip the winzip installer, but i stopped the install and downloaded the real installer...</comment></comment>


Jef Raskin on "Intuitive Interfaces" [1994] - <AUTHOR> http://www.asktog.com/papers/raskinintuit.html#repost <comment><USER2> This is a great find. So many interface design decisions are centered around being 'safe' and 'obvious' to the user. Raskin makes a compelling argument that nothing is obvious until the user has become familiar with the basics, often through advertising.

I gave my parents an iPhone this year, and my dad took to it immediately -- even though he's completely avoided computers for the past couple of decades. Apple's TV and print ads are perfect little tutorial videos. Most people know how to use an iPhone before they even open the box.</comment>


A Break in the Quest for the Quantum Speed Limit - <AUTHOR> https://www.theatlantic.com/amp/article/576484/ <comment><AUTHOR> "For the past few years, Hartnoll, Sachdev, and other theorists have been attacking the problem using a surprising "holographic duality" that mathematically connects systems of scrambled quantum particles, like those in strange metals, to imaginary black holes in one higher dimension. (The black hole pops out of the particle system like a hologram.)"

<comment><USER2> Any time I see this kind of esoteric research I can't quite shake the feeling that secretly they're taking the piss.

<comment><USER3> I didnt' realize that mathematics was esoteric.

<comment><USER4> There's probably a few thousand people on earth making contributions in this field. Calling it esoteric is probably fair.

Claiming it makes something think that they are taking the piss merely because it's hard to understand isn't really the reaction I'd expect on HN.

<comment><USER5> >Claiming it makes something think that they are taking the piss merely because it's hard to understand isn't really the reaction I'd expect on HN.

It's not that it's simply hard to understand, it's that the language used is fantastical - "imaginary black holes" is a pretty far out notion for many.

</comment></comment></comment></comment></comment><comment><USER6> Say it after me tetramethyltetrathiafulvalenes!

This is the current winner of strangest material name I've read. Anyone who can top it?

<comment><USER7> Arsole

Cummintonite

Rhamnetin

And that's before getting into biological molecules, which sometimes have names like Sonic Hedgehog or Pikachuin.</comment></comment>


Verizon and big cable lash out at net neutrality rules – using morse code - <AUTHOR> http://www.theguardian.com/business/2015/feb/26/verizon-big-cable-net-neutrality-morse-code?CMP=fb_us

<comment><USER2> "Lash out"? They responded in Morse code. Sorry, but that's actually kind of clever and amusing.</comment>


How to sleep a million years - <AUTHOR> https://idea.popcount.org/2013-07-19-how-to-sleep-a-million-years/ <comment><USER2> Oh wow this is really neat! Can be very useful for debugging.</comment>


Cake Monsters HTML5 Game - <AUTHOR> http://struct.ca/games/cakemonsters/

<comment><USER2> I have played quite a few puzzlescript games in the last few days. Never would have guessed it would catch on.</comment>


James Howells throws USD 6.1 million worth of Bitcoin in a dumpster - <AUTHOR> http://www.dn.se/slangde-miljoner-pa-tippen/ James Howells, accidentally spilled a drink on his laptop containing a hard drive with 7500 Bitcoins that he had mined. The laptop then ended up in a dumpster, and then a landfill. Total value of those Bitcoins today would have been 6.1 million USD. <comment><USER2> 11 days later?.. I thought this was hacker __news __?</comment>


devHouse in Cambridge, Sept 16th - <AUTHOR> http://devboston.pbwiki.com/ We had a lot of fun last time, so join us and help make this into a fun, monthly event.  Test out ideas, work on a fun side project, meet other like-minded people.<p>If you're interested in helping out, contact me, firstname.lastname@example.com We need help with spreading the word, and finding sponsors to get free food.

<comment><USER2> What makes this better than hacking in solitude? I'm not against social events, but I don't think of hacking as a social activity.

<comment><USER3> Collaboration means sharing ideas, motivating each other, enhancing each others' strengths and compensating for weaknesses.

More than once have I been stumped on a problem, only to run it by a friend and have it solved in 30 seconds. Nothing about the nature of hacking demands that it be exclusively solitary, or exclusively collaborative. There are advantages and disadvantages to each.

Furthermore, an event where you shoot to get an entire project done in a day is a good excercise and a good learning experience.

</comment></comment><comment><AUTHOR> We had a lot of fun at the last devHouse, so join us and help make this into a fun, monthly event. Hack out your next idea, work on a cool side project, meet like minded people.

We need help spreading the word to college campuses, and getting sponsors for food/drinks.

If you're interested in helping out, let me know, email@example.com

</comment><comment><USER4> I've gone to two of the past ones. I highly recommend going if you're in Boston!</comment>