The Economics of Dropbox - <AUTHOR> http://www.w2lessons.com/2011/04/economics-of-dropbox.html

<comment><USER2> Using Amazon's S3 is a good idea while your company is still acquiring a lot of users, but at some point in future if you are a storage company and you are in it for a long haul, you have to build your own storage solution.

I think Dropbox is approaching to the point when they have to build their own storage. You can't be a storage company without having your own storage solution in backend. It would be similar to Yahoo not having their own search engine while being a search company.

<comment><USER3> First comment, forgive me.

"You can't be a storage company without having your own storage solution in backend."

I am not sure that is necessarily true. There are plenty of web hosting resellers who are successful without ever buying a single server or a single line. They've repackaged and re-sold a service. Dropbox can operate in a similar fashion, re-packaging and reselling Amazon's services.

<comment><USER4> > Dropbox can operate in a similar fashion, re-packaging and reselling > Amazon's services.

Yes, they _can_ , and apparently have, but they're getting to the size now that they can achieve some significant economies of scale by building out their own storage infrastructure. Their profit margin has to be pretty low with S3.

</comment></comment></comment><comment><USER5> Very interesting calculations. I think patio11 also wrote about Dropbox's numbers a little while ago, but I don't remember where.

One big omission from the article - Dropbox probably gets discounts from Amazon. Obviously we can't know how much, but I assume they're paying even less on storage than is calculated there.

<comment><USER6> I made a fairly offhanded comment about them here: <http://news.ycombinator.com/item?id=2353418>

I generally wouldn't suggest using back of the envelope calculations for much of anything, by the way. Dropbox has stupidly attractive unit economics and a proven customer acquisition channel which explodes like whoa. There. That is probably accurate and possibly useful. Dropbox has N% margins, as demonstrated by back-of-envelope calculations? That is perhaps not quite so accurate or useful.

<comment><USER5> Thanks, that's what I was talking about.

Back of the envelope calculations aren't necessarily useful, but they're fun. They let you analyze problems and try and think of all the different moving parts that go into building something - that's why they're so popular in hacker circles. The _conclusions_ are probably useless [1], but the debate and analysis is what you take away.

[1] I can't remember what it's called, but I remember reading a theory (on Wikipedia) that says that people tend to estimate pretty well when they estimate the multiplication of lots of numbers. Mostly because, on average, they make mistakes in both directions (i.e. half the numbers are too high, half are too low).

</comment></comment></comment><comment><USER7> > I assumed that the average user will make 10 put/copy/list requests and 10 > get requests daily

Did those assumptions seem ridiculously low to anyone else too? My Dropbox is constantly syncing. Every time I save a file, move a file, delete a file, on any of my connected devices, I am making a request. I would estimate that I make nearly 500-1000 requests a day.

That also suggests that the total bytes transferred is a lot more than the author estimates.

I am pretty certain that Dropbox pays more for the requests/transfers than it does for space nominally.

Another thing: Did the author neglect the "30 day versioning" (or forever- backup) feature that Dropbox has? I think each user probably consumes a lot more than the suggested few hundred megs (average), in part because of all the changes.

<comment><USER8> Since the changes/uploads of the files are just diff's of the existing files rather than full copies for each version, I can't imagine that the versioning would add too much to the author's rough estimations.

<comment><USER7> But that doesn't change the number of requests. Perhaps it lowers the total bandwidth consumed, but what about the number of requests?

</comment></comment></comment><comment><USER9> I think the conversion rates used in this analysis are an ineffective way to examine services like Dropbox.

Given that most users probably convert once they have filled up their Dropbox (which takes time), a cohort analysis done by segmenting users based on how long they have used the service would probably paint a much more accurate (and attractive) picture of Dropbox's business model.

For example, while the global conversion rate might 2%, the average conversion rate for customers who have used the service for 1 month might be .1%, 6 months: .5%, 12 months: 2%, 18 months: 5% etc etc.

If you are only using the global conversion rate to model the business accelerating growth will drag down the average conversion rate, incorrectly making the unit economics appear less attractive. On the other hand, if your model uses cohort analysis you will see accelerating growth accurately translated into future cash flows.

I forget where I read it but I am pretty sure a cohort analysis of this sort was used by Evernote when they raised their round from Sequoia.

Edit: Clarity

</comment><comment><USER10> $100k per employee in the valley? That seems low.

Fully loaded (healthcare, office space, payroll taxes, perks, IT, etc) are probably closer to $200k per.

<comment><USER11> Probably under 150.

<comment><USER11> Not sure why the downvotes but average all-in costs of startup employees in the Bay Area startups is less than $150k.

</comment></comment></comment><comment><USER12> He made a minor mistake. In his high estimate, he used the high end of the range for de-duplication savings (20%) when he should have used the low end (5%). Not a big error (something like $4.5m/mo instead of $4m).

<comment><USER13> I don't think that's a mistake on his part. If you put a single large video or iso file on there that you downloaded, it's practically guaranteed that someone else has already uploaded it.

And one 700 MB file will really skew that percentage of deduplication savings.

<comment><USER11> The point is that 5% de-duping (ie less deduping) would lead to the _high_ number.

</comment></comment></comment><comment><USER14> Dropbox is one service for which I definitely have no problem paying $10 a month.

</comment><comment><USER15> Why does he add S3 standard-storage-class cost and S3 reduced-redundancy- storage-class cost in the second paragraph? Each object in S3 is either one or the other -- not both.

</comment><comment><USER16> Since Drew's hitting up $35k a plate fundraisers, I can only assume they figured out the economics at scale.

[http://techcrunch.com/2011/04/20/after-a-full-afternoon- at-f...](http://techcrunch.com/2011/04/20/after-a-full-afternoon-at-facebook- obama-collects-largesse-from-tech-elite/)

</comment><comment><USER17> I think your analysis is flawed. While I think your costs are probably on target (except for compensation costs, which I think you are short by about 50-100%) your revenue guesses I think are grossly off the mark.

Dropbox has 25,000,000 users. If 5% are converting at $100/year then they are making $125,000,000 a year in revenue.

You're numbers are nowhere near that mark. And I think Dropbox probably has a much higher conversion rate than 5%. I wouldn't be surprised if they weren't on $200,000,000/year run rate.

<comment><USER18> I love Dropbox as much as anyone, but unless you're using it for audio, video or (lots of) photography, the free offering is plenty. I'd be surprised if they were much north of 5%.

That said, they've got a great "long game". Everyone will fill it up EVENTUALLY-- and then you have to choose between nuking files and converting to premium.

<comment><USER19> I don't use Dropbox for audio, video or photos, and I'm already using more than 3.3G. A lot of my folders are probably things I put in there to quickly share it with someone or access it from another computer. I could move them now and free up some space. But, I can't be bothered. That's one reason why people will convert to premium. The hassle of sorting through folders is probably not worth $100 to many.

</comment></comment></comment><comment><USER20> I think at some point the freemium model needs to be abandoned. Dropbox is getting there - 25 million users (or accounts) and a service that works pretty well. At this point why not charge a nominal fee for the low end of the service - even if it's 12 dollars a year (only $1 a month!). Or a few months free followed by a monthly fee. I'd be willing to pay after having used the service free for a while - although I personally will have to cause I need more storage.

<comment><USER17> Show some math.

25,000,000 @ 5% conversion == $125,000,000/year in revenue.

That sounds like a pretty amazing business model to me.

<comment><USER20> You are assuming the high end of conversion at 5%. And you are also assuming those 25,000,000 accounts are all held by different people, when in reality there are people who hold multiple accounts under different email addresses for different purposes or to avoid upgrading. It's not so easy to switch from one acct to another, probably a good thing on the part of DropBox, but people still do it.

Regardless, it's a great service and if it isn't already a great business I'm sure it will be.

</comment></comment></comment><comment><USER21> The interesting question is then: how can Dropbox make more profit? By wiggling the conversion rate only?

Preferably, they are working at tangential services that leverage the data that is already stored, capitalizing on their assets more than once (i.e. normal Dropbox usage).

Ideas? I for one love the idea of integrating one's repository of files wherever relevant. Say, accessing your Dropbox/Documents in Gmail, your Dropbox/Photos in Flickr etc. If Facebook is the internet of social, Dropbox may very well be the internet of files, removing the barrier between online/offline even further. I'd pay for that.

<comment><USER22> Dropbox is now targeting businesses: <https://www.dropbox.com/teams>

</comment></comment><comment><USER23> I'm all for napkin calculations but there are so many fudge factors and guesses in this that to draw conclusions would be meaningless. It's a shame, because there's some good information in the article, and some intelligent and reasonable estimation work, but sentences like "I've estimated the average stored file at 1.6MB based on my own account as well as those of a few people I've asked" are unignorable.

</comment><comment><USER24> Very good analysis and impressive that they can survive with a burn rate of $3.1M - $5.8M per month without additional external funding.

<comment><USER25> If they are using S3, then their storage cost is close to 100% variable. Assuming their rate of paying customers stays consistent with their free customers, regardless of how much they grow, isn't it safe to assume that their model is tailored to at least cover their cost of storage with their revenues?

If that wasn't the case, it might be hard to justify giving them more money, unless they were very close to break-even on that cost. So I'm assuming that they're bringing in enough revenue to cover their storage cost, regardless if their storage cost is 100k / month, 5MM a month, or even higher.

</comment></comment><comment><USER26> If more privacy-conscious users start using TrueCrypt after the revelations made (Dropbox being able to decrypt your data) in their latest blog post, <http://news.ycombinator.com/item?id=2470074> , that conversion rate will need to be higher.

<comment><USER27> True, though I bet 90% of users don't even realise there's been an "uproar" over Dropbox's security.

<comment><USER28> It's not even an uproar really. The only people who care are privacy freaks who didn't take the time to think through the implications of Dropbox's feature set when they first signed up.

</comment></comment></comment><comment><USER29> i still wonder why dropbox and zumo drive are still not acquired ... eventually google, microsoft (may be even apple and amazon) will be offering the same service... so why invent the whole wheel again? these are the amazing YC companies ... whoever buys them won't be disappointed for sure...

<comment><USER30> ZumoDrive was acquired by Motorola. [http://techcrunch.com/2010/12/22/confirmed-motorola- mobility...](http://techcrunch.com/2010/12/22/confirmed-motorola-mobility- acquires-cloud-storage-startup-zecter/)</comment></comment>


Congress: P2P networks harm national security - <AUTHOR> http://news.com.com/Congress+P2P+networks+harm+national+security/2100-1029_3-6198585.html <comment><USER2> do politicians even know how to turn a computer on? seriously tho, this was the same argument that was given when the internet was introduced to the public a few decades ago. instead of holding technology and their creators accountable, the government needs to hold the individuals that use and abuse it accountable.

most of the "bad guys" i know of who make viruses and spread bad stuff around the internet are not usually the ones starting up companies and trying to make a product people will be able to use. the government has a tendency to point the finger and blame the small guys instead of taking responsibility and training their employees how to use the resources given to them... and then complains about being under-funded w/ their technology program.

if the RIAA (which i respect but don't agree with) can kick around little old grannies and people who died a decade ago, can't the government track down someone on their own set of networks sharing information? not to mention... haven't they heard of simple port blocking? >o<</comment>


Want to buy a jail, never used? - <AUTHOR> http://www.oregonlive.com/portland/index.ssf/2014/06/want_to_buy_a_jail_never_used.html <comment><USER2> Too bad number of beds is only 525, that is 10 too short to fit the entire congress.

Otherwise this would be a great facility to use use when they can't agree on a budget deal.

<comment><USER3> I don't think folks would be opposed to overpopulation in that prison

<comment><USER4> According to this they would need a few beds removed to meet the average found in a 2011 report from Ohio stating 31% overcrowding. [http://www.supremecourt.ohio.gov/Boards/Sentencing/resources...](http://www.supremecourt.ohio.gov/Boards/Sentencing/resources/Publications/MonitoringReport2011.pdf)

</comment></comment></comment><comment><USER5> _The county's request for interest in Wapato Jail – the latest development in the years-long search for ways to unload the never-used 168,420-square-foot facility – went up May 2 and closes at 2 p.m. Wednesday._

Why do news outlets never report these things until the time period has almost expired? Not that I had any ideas I wanted to submit, but it seems like the media has a deliberate policy of holding back news stories until a deadline has almost arrived in order to manufacture a sense of urgency about the story.l I see this all the time with requests for comment on public policy and suchlike - mainstream news outlets don't bother to mention it to the public until the time is almost expired, creating the impression that bureaucrats were trying it sneak it past the public.

<comment><USER6> Selection bias? I've certainly seen plenty of similar stories published closer to the origination date. I'd say it just sits in the slow news day pile until an opening arrives, but starts getting a priority boost as it's about to expire.

I suspect most of the actually interested parties aren't just finding out about this now.

</comment></comment><comment><USER7> Who wants to chip in for a zombie apocalypse shelter?

<comment><USER8> My first thought too! Especially after the last season of The Walking Dead.

</comment></comment><comment><USER9> Could be an economical replacement for open plan offices.

<comment><USER10> Or "closed plan" offices.

"You get your own office (complete with a bed and a toilet), but we decide when you can leave."

<comment><USER11> you can leave when the project is done.

<comment><USER10> Your "office" door is tied to a Github issue, and when it is closed, your door opens :-)

<comment><USER12> Milestones would be so much more effective.

</comment></comment></comment></comment></comment><comment><USER13> Photos of the keys? Bad idea.

<comment><USER14> Indeed, that security console would probably handsomely repay a thief for getting those keys cut from the photo.

</comment></comment><comment><USER15> Sounds like a great datacenter :)

<comment><USER16> I was actually thinking this; then I thought about cooling. Bet those cells aren't exactly optimized for airflow.

<comment><USER17> They all have plumbing

</comment></comment></comment><comment><USER18> I wish I could buy this and turn it into a paintball/airsoft arena.

<comment><USER19> Laser tag. All of the fun, none of the pain. Also 500% more nerdy.

<comment><USER20> None of the pain, half of the fun. As the cost of losing decreases, apathy greatly increases.

</comment></comment></comment><comment><USER21> I spent a couple of terms at university in a hall of residence that was based on the design for a Swedish prison. This could have been an 'urban myth' however the limited access to the building (one door, no fire escapes), the layout and the room dimensions made that myth believable. I actually had some great times there, it was where I met my best friends and where I studied hardest.

We did not have toilets in our rooms but we did have wash-basins. The windows did not have bars on them and the doors were normal doors with handles on the insides. The grey lino flooring and the grey brick walls could have been 'prison', however, with a few personal touches, e.g. posters on walls, some colourful rug on the floor all was fine. No students committed suicide on our block or had to be put on Prozac.

It would be very interesting to see this prison converted to some type of college/university facility. Clearly some courses cost more than others to teach, however, I would be very much surprised if it cost more to teach than to imprison.

</comment><comment><USER22> Then there's the unfinished jail in downtown Detroit:

[http://www.myfoxdetroit.com/story/22491752/leduff-wayne- co-m...](http://www.myfoxdetroit.com/story/22491752/leduff-wayne-co-may-tear- down-new-jail-sell-land-to-dan-gilbert)

<comment><USER23> There is also a large, mostly-unused prison in rural Illinois: [https://en.wikipedia.org/wiki/Thomson_Correctional_Center](https://en.wikipedia.org/wiki/Thomson_Correctional_Center)

</comment></comment><comment><USER24> you could make this a prison experience hotel kind of thing.

It would be popular with bachelor parties, etc. People love this kind of thing.

<comment><USER25> Yea, there's a service that will kidnap and "torture" you (the torture is more of making you really uncomfortable than actually hurting you).

</comment></comment><comment><USER26> very strange feeling looking at it without people - the lack of purpose [in the big sense] of such buildings/spaces is immediately noticeable. I mean it isn't that something will be built, learnt, stored or housed there to keep away from elements. Instead the primary purpose of prison/jail buildings is to waste huge amount of resources, human and material. (not advocating for complete prison abolishment today as it is still some years before we can do something like "house arrest" or other [may be selective] rights limitation for convicts. It is just sad that we still can't produce a practical alternative to prison/jail which will move our society forward instead of backward)

How about some "Uber for law violators". Some technical means of keeping a convict in the society, just taking away his ability to do any harm - one of the 2 goals of locking up - and his ability to enjoy the life or some parts of it - the other goal of locking up which satisfies societal need for justice.

</comment><comment><USER27> _" the county is able to rent it out, as long as it doesn't make money off the deal"_

Can somebody explain the logic here? I can see why you wouldn't want to rent out an operational jail at a profit, but what's wrong with making a "profit" (read: tiny dent in the huge losses incurred in building the damn thing) if it's sitting there empty and unused?

<comment><USER28> I presume its tied to the tax-exempt status of the bonds that funded it, preventing the county from building a tax exempt jail and then, for example, leasing it to a private prison company.

</comment></comment><comment><USER29> We've still yet to prosecute those responsible for the subprime mortgage crisis...

</comment><comment><USER30> I'm thinking that this could be the perfect live in incubator.

<comment><USER30> Though, it'll need a paint job.

</comment></comment><comment><USER31> Scout camp! The slough and wetlands are ideal. Plenty of camping and dining facilities. Open ground for sports and events.

</comment><comment><USER8> I'm curious where the $300,000/year in maintenance comes from.

<comment><USER31> Painting, roofing, broken windows, fence. Vandalism and weather.</comment></comment>


Show HN: Learn to code for free and get paid for it - <AUTHOR> https://enrole.herokuapp.com <comment><AUTHOR> Hey, I would like some feedback on a website I created.

Its an e-learning website linked to a freelancing website.

You can learn to code for free in the e-learning part of the website and complete tasks for companies in the freelancing part of the website.

But you can only apply for a task if you have completed its required courses.

The aim of this idea is that people no longer have to pay expensive student loans to learn job related skills and that they can find jobs more easily as they can apply for any task as long as they have completed its required courses.

This is my first startup, so any feedback on the quality of our courses, the app's UI or anything else is really appreciated.</comment>


Disabling Classic MacOS PowerBook Password Security - <AUTHOR> http://bslabs.net/2016/01/30/disabling-powerbook-password-security/ <comment><USER2> And I thought I was the last one still using an old Powerbook.</comment>


Google charges for YouTube ads even when viewed by robots - <AUTHOR> http://www.ft.com/intl/cms/s/0/53ac3fd0-604e-11e5-a28b-50226830d644.html#axzz3mUmBOpKn <comment><AUTHOR> And a link to the study directly [http://arxiv.org/pdf/1507.08874v1.pdf](http://arxiv.org/pdf/1507.08874v1.pdf)</comment>


Ask HN: Markdown-like structured document format - <AUTHOR>

I'm writing some legal documents, which I want to post in GitHub so that people can track history and so on. The issue I'm having with Markdown is that it doesn't support numbered lists with letters, which are typical for legal documents. Also, it doesn't support references to other pieces of the document. If I insert an article, I need to change all other article numbers and references manually. I looked into Legal Markdown [0], which is an extension, and it addresses some of the issues but leaves others unaddressed. Any suggestions?<p>[0] https://lmd.io/ <comment><USER2> Maybe pandoc would work for you ([http://pandoc.org/](http://pandoc.org/))

from the documentation:

"Unlike standard markdown, Pandoc allows ordered list items to be marked with uppercase and lowercase letters and roman numerals, in addition to arabic numerals. List markers may be enclosed in parentheses or followed by a single right-parentheses or period. They must be separated from the text that follows by at least one space, and, if the list marker is a capital letter with a period, by at least two spaces.1"

Also, see [http://pandoc.org/README.html#citations](http://pandoc.org/README.html#citations)

<comment><AUTHOR> I wonder why the ambitious CommonMark project did not look into adopting any of these. Regarding references, this is great, but I was referring to internal within the document ones, not external. For example, in "Article I" you mention "Article II, Section 3", which should change to "Article III, Section 3" if I insert a new article between the first and the second or to "Article II, Section 4" if I insert a section.

</comment></comment><comment><USER3> AsciiDoc ([http://asciidoctor.org/docs/asciidoc-syntax-quick- reference/](http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/)) supports numbered lists with letters, and links referencing anchors elsewhere in the document. Also, GitHub's code browser renders AsciiDoc documents (file names ending with .ad or .adoc).

<comment><AUTHOR> After playing a few days with AsciiDoc, I definitely like it, but it still doesn't solve basic legal document requirements like the references. Maybe I will submit a request to extend it.</comment></comment>


How is software developed at Amazon? - <AUTHOR> http://highscalability.com/blog/2019/3/4/how-is-software-developed-at-amazon.html <comment><AUTHOR> > They decomposed the monolith into services and decomposed the organization > into two pizza teams. Teams are autonomous, independent, and have ownership. > Teams own a service end-to-end.

1 team running 1 or very few services is the right granularity.

Not the 200-engineers monolith neither the 10-microservices-per-employee mess.

</comment><comment><USER2> See also [https://news.ycombinator.com/item?id=19589750](https://news.ycombinator.com/item?id=19589750)</comment>


How I explained REST to my wife - <AUTHOR> http://tomayko.com/writings/rest-to-my-wife <comment><USER2> I'm a woman, and I didn't find this patronizing or sexist, unlike some of the commenters on both the post comments and here.

I've gotten much more into web development in the past couple years, and this post reminds me of a handful of precious conversations I've had with incredibly smart people who took the time to bring together concretes and abstractions together in a way I could understand. I think this is a good post to share with other no-so-technical-people who you wish understood more about what you do.

Maybe I should write a post on "How I Explained Marketing to My Husband"

<comment><USER3> > I'm a woman, and I didn't find this patronizing or sexist, unlike some of > the commenters on both the post comments and here.

I think his wife complained (in the comments) that she thought it made her sound stupid. Otherwise I agree, and I look forward to reading your post about marketing.

<comment><USER4> If I'm having a conversation with someone about a topic I know absolutely nothing about, I sound like an idiot. "What does that do?" "Who's that?"

Also, this 'conversation' was very 1-sided because the author was trying to prove a point. It really didn't matter what the wife said throughout but it let him explain further and use some real world examples for those who may not GET it.

<comment><USER5> Nice POST!

<comment><USER4> Great way to PUT it!

</comment></comment></comment></comment></comment><comment><USER6> Feels like this guy has married ELIZA

<comment><USER7> My guess is that this conversation happened entirely in his head. His wife was in the room nodding and mumbling "uh huh" while he rattled off hacker-speak for way too long. He left off his wife's last line of: "Sorry, did you say something?"

<comment><USER8> Are you kidding? I'm sure his wife knows all about _polymorphic verbs_.

</comment></comment></comment><comment><USER9> Really old, but a classic tale that needs to resurface every 6 months or so.

<comment><AUTHOR> I am not aware of anyway to make an old submitted story resurface in HN. Probably some feature like this would be good to have?

<comment><USER10> that is actually a really good idea. if you could easily peruse previous "days" of hackernews. if an article is really worth reading once, it should be worth reading every few months.

<comment><USER4> "This day in Hacker News history"

</comment></comment></comment></comment><comment><USER11> I find that the people who are against REST, or don't understand why its neccessary, don't really understand the finer points of HTTP, either. This post really helps describe what it is about HTTP that makes REST obvious, and easy.

<comment><USER12> Rest is obvious and fairly easy. It solves a specific set of real-world problems.

On the other hand, that list of problems is a pretty small part of web application design. Solutions other than REST seem to work just as well.

</comment></comment><comment><USER13> When reading his intro to HTTP, I kept thinking of what Clay Shirky said,

"HTTP and HTML are the Whoopee Cushion and Joy Buzzer of Internet protocols, only comprehensible as elaborate practical jokes."

Read further if you're not familiar with this quote:

<http://www.shirky.com/writings/evolve.html>

</comment><comment><USER14> As a noob to web coding, I appreciated the information although the format was a bit dragged out. Good share mrlebowski, I look forward to more of your info dude.

<comment><AUTHOR> Thanks, I try to share good links that I come across learning stuff at my internship place :)

</comment></comment><comment><USER15> Remind me of this article: [http://188.8.131.52/nonintersecting/2006/11/15/the-s- stands-...](http://220.127.116.11/nonintersecting/2006/11/15/the-s-stands-for- simple/?year=2006&monthnum=11&day=15&name=the-s-stands-for-simple&page=)

This past summer I signed up for a Java Web Service course, which made my life a living hell trying to get SOAP, WSDL, and WS-* working. It also makes me appreciate REST a lot more.

</comment><comment><USER16> So how does the machine, in these examples, request the machine understandable representation of the resource?

If the 'concept' is <http://www.example.com/book/123>, from this explanation, then there should be a way to get different representations of that via different verbs, right?

I guess this is where it always falls down for me, because there isn't a consistent way that all machine readable representations are flagged. Rather, we usually seem to define different URLs via extensions, for example, to define the different representations, which from this explanation seem like they should be reserved for different 'nouns' or 'concepts'.

Am I misunderstanding, or is that just the state of where we are at? And are there any plans to define those new 'verbs' at some point?

<comment><USER3> At the moment, generally you use GET and ask for a different Content-Type with an Accept header, or you say something like <link rel="alternate" type="application/rss+xml" href="foo.xml" />. In some cases you're expected to guess the alternate URL instead, maybe based on a document somewhere else, which is non-RESTian. However, it's pretty rare for someone to do what you suggest, which is to use new HTTP verbs in order to get different representations.

</comment></comment><comment><USER17> "are busy writing layers of complex specifications for doing this stuff in a different way that isn't nearly as useful or eloquent"

What is that supposed to mean. HTTP is such a simple protocol that people need to invent technologies atop it because on its own it can't do much. lack of state, for example, so people came up with cookies and sessions and so on. These were necessary and an integral part of the web's evolution from the days back in the early 90's when people had 'home pages' of pictures of their cat.

I personally found the article badly written, overly long and full of passive aggressive attacks at what the web has become.

<comment><USER18> For me when I first encountered this particular post on REST a couple of years ago it was like an ah ha moment. SOAP is just one complex layer. Struts is another, actually a container in a container. Having messed around in J2ee land for while this article made me realize that most folks didn't know or didn't care what a stock J2ee container could do if one started thinking RESTfully.

Then we built a whole enterprise web application using just a stock J2ee container and RESTful style thinking. How much simpler! No extra frameworks to learn. The UI became completely decoupled from the services. The services are completely decoupled from the J2ee container, naturally. All the container does is resolve the nouns to a service name and give a call back to the appropriate verb method, doGet, doPut, doDelete.

In fairness we are not 100% RESTful there is some legacy stuff that relies on the session. However having done a few SOAP/WSDL services and tons of Struts actions or Spring "injections" I must say that REST is in my opinion a much cleaner way to code for web apps. Whenever I hear about some implementation needing a SOAP/WSDL service I run the other way as fast as possible. I won't even debate folks about it anymore, I just refuse to work on all that complexity.

As an aside I have seen here and there some frameworks the purport to use REST. I don't really get this. Why would somebody need and additional framework to make something RESTful? I have done it with J2ee and just plain Apache. I believe the web itself to _be_ the framework, I could be way off in my thinking though, it wouldn't be the first time. Anybody have any clues about what a RESTful framework is for?

<comment><USER19> Mostly a "RESTful framework" just allows you to easily map verb/noun combinations to functions. You create a noun (an object) with the standard verbs as methods, and it does the other stuff. Pretty basic, but it makes life easier.

</comment></comment></comment><comment><USER20> I am a designer so I never really got REST, but now I do. Definitely a must read.

<comment><USER21> As a designer you might enjoy the way I explain REST to people:

Think of the URL as part of the User Interface. REST offers conventions that make it easy to guess the URL of what you are looking for, just as you would guess where to click/navigate to get it.

I realize this only covers one aspect of REST, but I like it because I think the idea of an address as a resource which has a certain appearance (its URL) is quite powerful.

edit: I realize that rest could just as easily use meaningless identifiers, but it is often the case that meaningful identifiers are used such that the user can GET desired items by guessing the URL.

<comment><USER22> NO. _NO._

REST is _absolutely not_ about being able to guess URLs -- it's about _never_ having to guess a URL. Repeat after me: _Hypertext. As. The. Engine. Of. Application. State._

Clean, meaningful, organized / structured URLs are unrelated to REST, and their presence tends to lead to the predominant anti-pattern of 'API Specifications'. Leave that bullshit in SOAP's failure pile.

<comment><USER21> Uh ... I didn't say guessing state, I said guessing what is behind the URL. as in /users/greg vs /users/davis

rather than /u.exe?23q4234q34q34234234asdfa&query=true&xml=false&screen=home

The point I was trying to make is that with REST, URLs have meaning in and of themselves, not dependent on the presence/absence of a variety of other aspects of state embodied in the URL... The protocol (and REST verbs) is how you add that additional meaning... and a different URL thus _means_ something different. Hence, for some universe of items, if one has an obvious meaning, the rest should.

If you are using the protocol in the right way then your resource will not change depending on which verb you are using.

<comment><USER23> You said: "REST offers conventions that make it easy to guess the URL of what you are looking for, just as you would guess where to click/navigate to get it."

In your earlier comment it does seem as though you are talking about guessing the URL.

What the other comment was alluding to with "Hypertext. As. The. Engine. Of. Application. State." (or HATEOAS, one of the main principles of REST) is that your application should never have to guess a URL. The possible URLs your application can next GET/POST/PUT/DELETE to should be given in the response to the last action it took.

There is nothing in the original description of REST that says anything about URLs being human readable. That's a pleasant side-effect of a sensible design but isn't the main aim.

As the original post describes, the importance of REST is to make simpler for machines (not humans) to manipulate services on the web.

You should probably read a bit more about the principles of REST before confusing people with your own interpretation of what you think it is.

edit: mistakenly thought HN understood markdown. edit: mistakenly thought HN understood HTML.

<comment><USER21> ok thanks for clarifying

</comment></comment></comment></comment></comment></comment><comment><USER24> I still don't get it. There have been several things I never got or rather they were so obvious / intuitive to me there was nothing for me to "get". Still I spent years thinking I missed something cause so many others had such problems with them. Pointers & recursion come to mind.

There just doesn't seem that much to REST (that's not a bad thing). Lot's of hype, fud, misunderstanding built up around REST. Arguments over the _proper_ way to apply REST to HTTP/Web. But, REST itself seems sort of duh, how else would you do it?

It's not magical rocket science, right?

<comment><USER3> Have you read Roy's dissertation?

<comment><USER13> I read it and was surprised at how readable I found it (never mind being a dissertation).

<http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm>

What is also really good is Richardson and Ruby's "RESTful Web Services" book. They coined the term "Resource Oriented Architecture" to describe a specific REST design implementation and to side-step a religious war on what is and is not REST.

</comment></comment></comment><comment><USER25> Here's how I would explain REST to a wife:

It's a made-up pile of bollox. It stands for "and now I'm going to refer to meaningless pseudo-science in an attempt to confuse you and bill more money to the project."

On second though, that probably explains why I don't have a wife.

</comment><comment><USER26> How this can be posted again?

<http://searchyc.com/How+I+explained+REST+to+my+wife>

</comment><comment><USER27> It still bothers me that web browsers don't really "do" REST without Javascript.

</comment><comment><USER28> The title should read "how I explained REST to my trophy wife". Also, all the structured data stuff doesn't really belong in a discussion of REST, imho. SemTech researchers have been studying this problem for a long time, came up with RDF etc. Tim Berners-Lee was also you know, involved in those HTTP efforts, you can watch him discuss this topic here <http://blog.ted.com/2009/03/tim_berners_lee_web.php> . Not impressed with this REST article.</comment>


A cyber-skills shortage means students are being recruited to fight off hackers - <AUTHOR> https://www.technologyreview.com/s/612309/a-cyber-skills-shortage-means-students-are-being-recruited-to-fight-off-hackers/ <comment><USER2> A shortage of reasonable pay for said cyber skills are the issue. The article is about using unskilled labor with 'ai' to 'defeat hackers' and other buzzword soup. Nothing backing up the assumption this imagined shortage.</comment>


Student to teacher ratios show progress - <AUTHOR> http://www.learnboost.com/student-to-teacher-ratios/

<comment><USER2> Ok, student to teacher ratios went down, but student performance hasn't improved.

So we made life easier for teachers (at the expense of taxpayers) without helping students. Woohoo.

<comment><USER3> I don't have citations handy at the moment, but...

In locally debating a school construction referendum a couple of years ago, I was involved in a big controversy over this. It really does seem that people consider small class sizes to be an end in itself, rather than a means to a better education.

When I researched the effect of class size on education, the only empirical data I could find were either inconclusive, or in one cases found a measurable effect only for what you might think of as "at-risk" students, who have backgrounds indicating they probably don't get much educational help from home. That is, the only conclusive study I found stated that smaller classes do not benefit most kids.

Tangentially, when I was in elementary school, there were in each of 2nd and 3rd grade, a "double classroom", which had twice as many students, but also had two teachers. I wonder whatever happened to that concept.

<comment><USER4> Team teaching is still around. My wife, for example, team taught for two years. The school she has been at for the last five years has had at least two teams each year typically at the second and third grade level. She was at an older school that had very large class rooms which made it possible. Most of the newer schools in my area have no team teaching because the classrooms are simply too small to accomodate two full classrooms of children.

As far as empirical evidence on the smaller class room sizes, can't really say much about it. I'll provide a couple of anecdotes from my wife's experience. Larger classroom sizes make it significantly harder to provide personalized help to students during the day, this can be a serious problem if those students don't have anyone at home that can or will help them. At the school my wife has spent the last five years at a good portion of the parents were illiterate and couldn't provide any help to their children though many of them wanted to. Additionally larger classroom sizes can mean significantly more of the teachers personal time (off contract) must be spent on prep, grading, conferences, etc. That was something we had to deal with and significantly impacted our personal lives.

One problem with trying to measure the effect of classroom size changes are that they are not the only change being made. Schools change curriculum, lunches, teaching styles and everything else. Some measurements also need to be done over many years. For example, locally about six years ago all day kindergarten was implemented in poorer areas and where second language learners were prevalent. The students that started in that program and were immersed in school activities and english language activities all day just finished fifth grade. Across the board there have been significant improvements in test scores with that group (math scores have been decent, specifically the reading/writing scores went up a large amount). Due to budget issues all day kindergarten is being cut. The reason being that there's no "empirical evidence that all day kindergartens were the cause of the increased performance on test scores." I'm paraphrasing, but it's a common issue in how education is measured and tracked.

</comment></comment></comment><comment><USER5> In general, I think the problem here is that the post looks at one out of dozens of inputs into the educational process and concluding that an improvement in that one input is noteworthy and significant to the output.

What's more disturbing is that this claim is made in light of evidence that the outputs in America are trending unfavorably to other countries and is still trotted out as a favorable sign.

<comment><AUTHOR> It's simply a step in the right direction. I'd be the first to agree that there's plenty to improve in education, but with so few "wins" it's important to single out some of the positive stuff.

<comment><USER3> On what grounds to you claim that this is a "win"?

That is, what are your criteria, and what makes you believe that this factor is on the path toward that criteria?

<comment><AUTHOR> It's based on data. The ratio of students to teachers has gone down significantly over the past 30 years and that is a small win to celebrate. Lower student to teacher ratios imply an improved environment for instruction in the classroom, more individualized attention, and more. Of course there's much more to be done to improve education in the United States, but the ongoing lowering of student to teacher ratios is one of many small steps in the right direction.

<comment><USER3> _It's based on data. ... Lower student to teacher ratios imply an improved environment for instruction_

That's a logical inference, but certainly not data. And sometimes what intuitively seems true winds up wrong.

I challenge you to show empirical evidence that smaller class size improves educational outcomes. As I mentioned elsewhere in this thread, I've only ever found one such conclusive study, and that was only applicable to kids from lower-income families; in particular, no advantage was observed for average and above-average kids.

And even for the slice of the population that might be helped (according to that study), we've got no evidence that these decreases in class size are occurring in schools having those students, as opposed to, say, more affluent schools that are presumably (there I go making an assumption) better able to afford more teachers.

</comment></comment></comment></comment></comment><comment><USER6> But has the student to GOOD teacher ratio gone down?

<comment><USER7> My wife is an elementary teacher with a Master's degree who can't get a job here in Montana. She applied for more than 40 positions for the upcoming school year and has only gotten 4 interviews. The rest of them don't want to spend the extra two thousand dollars a year in salary that accompanies a Master's degree. Several school districts have flat out told her that they throw her applications away because the district is required to hire only teachers without experience. It's a sad state of affairs.

<comment><USER2> Having a Masters degree does not improve student performance but does cost taxpayers more money.

It sounds like a happy state of affairs that the taxpayers are not being forced to pay $2000/year for nothing.

[http://education- portal.com/articles/Teacher_Training_Experi...](http://education- portal.com/articles/Teacher_Training_Experience_May_Be_More_Valuable_Than_An_Advanced_Degree.html)

<comment><USER8> It would be an even happier state of affairs if the Master's-qualified teacher were free to take whatever salary could be negotiated between her and the school, without union interference.</comment></comment></comment></comment>


Why is Python a popular teaching language? - <AUTHOR> http://radar.oreilly.com/2015/04/five-reasons-why-python-is-a-popular-teaching-language.html

<comment><AUTHOR> Hi, I'm the author. I submitted the article because I'm fishing for feedback. I'll be flying back to the UK from Pycon in a few hours but will try to reply to any / all questions and comments. Thanks!

<comment><USER2> Pretty nice article!

The only thing I'd say is about your "extensibility" section. The value of this is a little abstract. After I learned programming Basic as a kid, I put it aside for a few years because I felt like I had "outgrown" Basic, and couldn't really do much interesting with it. Part of the value of Python is that it will "grow up" alongside your knowledge of it: you can program turtle graphics in Python when you're 12, or program your raspberry Pi, or build game mods, but then also know that you can use SciPy/NumPy when you go to college, or be able to use it in real, powerful applications.

How do you address Python 2 vs. 3 in advocating Python to kids?

<comment><AUTHOR> I'm with the Raspberry Pi Foundation (who are dropping Python 2 and moving completely to Python 3 in all their educational materials).</comment></comment></comment>


Where/How to find like-minded people (co-founder)? - <AUTHOR> Where one can find like minded people? Would love to hear some of your stories about how you found like-minded people/con-founder. Thanks, <comment><USER2> Probably a boring story but I worked with my co-founders for years at a larger company before we agreed we wanted to scratch our own itch, quit, and make a startup. Nothing beats a multi-year test drive.

<comment><USER3> Indeed, my co-founder and I were colleagues at the time and we were given the opportunity to lead a new service (almost like a startup inside a larger company), with me as the technical lead and him as the business lead. We had discussed starting a company before, and we thought it might work, but after that we knew it would work. Five years in and I have no regrets.

</comment></comment><comment><USER4> All online. Places like reddit, indiehackers, programming groups on discord/slack, YouTube videos (with chat groups associated to them). Wherever you hangout online - find those chat groups and reach out to people. Because of that I've been able to build/ship 3-4 different projects with people I met online - for some of these I've worked with the same developers.

A lot of the advice around finding a co-founder is focused around college/childhood friends. And I think that's why most brush off online forms of finding partners to work with as inferior :shrug: - I think this is a mistake.

Quit viewing it as finding a co-founder and just view it as finding people to build and ship cool stuff with. It takes some of the pressure off the interaction and gives you all a chance to just practice working together.

Also if you want to collaborate on something find my email on my profile and here is my github [https://github.com/roymoran](https://github.com/roymoran). There just did it. If it works out cool, if not cool.

People that just want to collaborate and build stuff will do so. I don't think you need much convincing.

</comment><comment><USER5> I hung around with friends who talked about starting businesses. One guy was experienced with distribution but attracted to tech. I set up a meeting with him, asked him to start a business together, and he was an excellent co- founder. Not everyone has to be friends for years, and many long term friends ended up terrible.

The other option is to solve a problem and see who is obsessed with solving the same problem.

</comment><comment><USER6> I have the same problem I have a lot of good ideas and no one to work with. Maybe we should go solo like Jeff Bezos.

</comment><comment><AUTHOR> Thank you guys. Appreciate your inputs.</comment>


Announcing F# 4.6 - <AUTHOR> https://devblogs.microsoft.com/dotnet/announcing-f-4-6/ <comment><USER2> Anonymous record types is sweet</comment>


Ask HN: Why does the enterprise have such a strong affinity to Java? - <AUTHOR> I'm trying to get a deeper understanding of how Java actually exploded into the mainstream "enterprise" and has continued to do so at least since the early 2000s. As a regular browser of HN, I've stumbled upon different flavors of commentary related to this in an ad-hoc fashion; some snarky like "Oh you know, it's a dumb-proof language that really doesn't require people to have had a solid foundation in CS so hiring and ramp-up are easier" and some more insightful like "It's not really Java the language, but Java the ecosystem (like JEE) and particularly the JVM that makes it an attractive proposition for enterprise companies". I'm wondering how much of this proliferation can be attributed to:
1. Features. Core functionality that the language/ecosystem provides like the JVM, portability, relative ease in multi-threaded programming, garbage collection etc) 2. Timing. Was there a specific problem during the late 90s or early 2000s that was a sweet spot for solving using Java? Seeing that this was around the time when the internet really became mainstream, was Java primed to benefit from this in a way that set it apart from the then-contemporary programming ecosytems? 3. Scalability. In terms of the number of people you can hire while "growing" your company; could the popularity of SOA/WebServices fueled this as well?
Disclaimer: I'm not generalizing that every "big" company uses Java and I'm not saying that the ones that do are obviously doing it for the right reasons; I'm purely looking at this from academic interest since there's so much rich nuanced history that I feel I don't understand. Such a discussion could be easily extended to ask "What does this mean for functional programming languages based on the JVM like Clojure and Scala". Like Mark Twain said: "History may not repeat itself, but it certainly rhymes." <comment><USER2> Java got a couple of very important things right, at just the right time. And it tapped into some trendy / buzzwordy things at just the right time.

On the first point:

1\. binary object compatibility. This was _huge_ in a day when C++ and most other "cross platform" languages required you to ship libraries as source code, which bloated your code base and slowed down your compile times even further. Java nailed "library driven development" at a time when people were hungry for that.

2\. Threading. Java's threading model is far from perfect, but it made using threads far more accessible, especially in a cross platform way, than what was previously possible in languages like C++ - _especially while staying within the bounds of the language / standard library itself_.

3\. Garbage Collection - has it's pluses and minuses like everything, but a lot of C++ people who were tired of goofing around with manual memory management really embraced Java and it's simpler approach.

On point two above:

1\. "Internet" programming. Java had good support for sockets and even basic HTTP stuff early on, and always seemed to do a decent to better-than-average job of supporting network programming (with a couple of glaring exceptions, like raw sockets)

2\. "mobile code" \- most people never wound up doing much with this, but it was trendy in the late 90's, early 2000's and Java was seen as a good platform for doing this stuff.

And probably some other stuff I'm forgetting. All in all, Java just did a nice job of hitting a good "sweet spot" at a good time and place. And that sweet spot was sweet enough to make it compelling, despite its warts.

</comment><comment><USER3> You should probably ask the question in reverse: why is Java seemingly so heavily criticised on HN when it is clearly an incredibly successful and productive platform that almost took over the whole enterprise world?

For its time Java was a god send. It solved a ridiculous number of problems that programmers today just don't even think about. We used worry about things like byte order when sending data between computers. We used to license libraries to provide basic things like lists, hashtables, string handling. Compiling things to work on multiple platforms was a nightmare, especially Windows. Developing on Windows and deploying on Unix was a pipedream. Java just swept all of this away and replaced it with a standard portable runtime that worked across Windows and Unix was free. The equivalents that offered these things (say, Perl) were not considered viable contenders at the time (dynamic languages in general did not gain a lot of trust until Ruby on Rails and PHP became so widely used - people just did not believe that you could build a large scale system with such languages and not have all fall apart if the type system wasn't rigorously checked).

<comment><USER4> >We used worry about things like byte order when sending data between computers

Isn't it always just in network order?

<comment><USER5> For the containers, sure. Not for the contained messages that are opaque payload.

</comment></comment></comment><comment><USER6> Java was marketed in the 1990s as a cross-platform language that was basically a better version of C++ for use on the web. Of the languages that were associated with the early web, Java was the only one with large corporate support. (Contrast to the then-dominant web language, Perl. And consider that the phrase "open source" had not yet been coined.) First from Sun, and then from other companies like IBM and Oracle that feared an all Microsoft future.

Thanks to the corporate support that went into it, Java built strong ecosystems in a number of areas. The viability of multiple strong corporate supporters made it a safe choice for any enterprise that wanted an option that was tied to the web which wasn't tied to Microsoft. This gave them a base that it never lost.

It is worth noting that Microsoft took note of this competitor, and did their standard "embrace, extend, extinguish" approach. However they got sued by Sun for adding Windows only extensions, and after they lost that, Sun was able to ensure continued consistency.

Random note. Java is far from the first portable cross-platform language to be marketed on that basis. See COBOL.

Random amusing note. While Java was marketed as being cross-platform, it used threading in a way that Solaris was designed for and competing Unix systems were not. I've never considered it coincidence that Solaris wound up soundly beating the other Unix systems in "portable Java benchmarks" and that was when it became the dominant version of Unix.

<comment><AUTHOR> >> It is worth noting that Microsoft took note of this competitor, and did their standard "embrace, extend, extinguish" approach

That was gold. Thank you for that.

Based on your answer, seems like there was an extremely close alliance between the big corps (sans MSFT) and the early Java dev team; I'm tempted to think that the creators (Gosling et al) could have taken cues from Java's corporate supporters to factor in designs that help address problems that those companies were facing. This really helps tie in how the Java "ecosystem" came to being because right from the beginning it seems like it was trying to solve "enterprisey" problems. Is that a fair assumption?

<comment><USER7> In the really early days of Java, there wasn't: it started out as part of small-team project aimed at embedded systems, then set-top boxes [http://www.blinkenlights.com/classiccmp/javaorigin.html](http://www.blinkenlights.com/classiccmp/javaorigin.html) . By the time work started on the specification, about 1995-6, Sun was soliciting feedback from a wider base of people [http://people.csail.mit.edu/gregs/ll1-discuss-archive- html/m...](http://people.csail.mit.edu/gregs/ll1-discuss-archive- html/msg04044.html) [http://people.csail.mit.edu/gregs/ll1-discuss-archive- html/m...](http://people.csail.mit.edu/gregs/ll1-discuss-archive- html/msg04045.html) [http://people.csail.mit.edu/gregs/ll1-discuss-archive- html/m...](http://people.csail.mit.edu/gregs/ll1-discuss-archive- html/msg04030.html) . Even by '96 I think everyone was still mostly thinking of Java as a client-side Web and OS-native application language, though: it wasn't until later that it began to be strongly associated with server-side programming and "enterprisiness".

<comment><USER6> This is true. But at the point where Java broke out, there were a lot of big businesses behind it.

For instance even though Java 1.0 was released in 1996, IBM got on board in 1995 and by the start of 1997 had contributed good internationalization. (See [http://www.icu- project.org/docs/papers/history_of_java_inter...](http://www.icu- project.org/docs/papers/history_of_java_internationalization.html) for a reference.) By late 1997 when I became a software developer, there was already a feeling that Java was "the official corporate future of the web". (At least by those who didn't expect Microsoft to take over the world.) But in the meantime would I mind learning Perl and CGI to teach my co-workers how to get small stuff done?

I never looked back. :-)

ADDITION: See [http://articles.chicagotribune.com/1998-09-11/news/990112009...](http://articles.chicagotribune.com/1998-09-11/news/9901120092_1_java- developer-conference-javaos-netscape) for an early timeline. Note the many, many corporate licensees very early in the process.

The truth is that everyone was deathly afraid that Microsoft would destroy the industry. The web was seen as a godsend, and the fact that Java wound up tied to the web by Netscape right at the beginning meant that everyone jumped on Java with the web. By the time the dust settled, you had a ton of big corporations involved, and it was guaranteed at that point that the language would evolve to suit their needs.

<comment><USER8> Yup -- I was taking intro & mid-level CS courses in 1996/7, and they set us up to code in Java (with an IDE called Roaster) as the "wave of the future", and easier to work with than C or C++ (though we used C for some classes).

We were mostly writing applications, applets, and command-line stuff, and my first server-side code was in a long-forgotten CGI-based scripting language, but I seem to recall it wasn't too long after that that ColdFusion was re- written into Java (so that even if you build your site in CF, it was actually executing on Java); that was a pretty strong corporate & technical endorsement.

</comment></comment></comment></comment></comment><comment><USER9> IBM adopted Java early on as a client side development technology to be used in client/server computing that was so prevalent in the 90s. IBM also had a lot of their customers rebuilding 20-30 year old applications in Java to address Y2K issues. IBM supports Java running on their zSeries and pSeries systems. IBM supports Java applications using JMS over MQSeries to interoperate with legacy applications and supports Java accessing DB2 databases. IBM even has tools to allow COBOL copybooks to be exposed as web services, which Java can then easily consume. There's still a ton of legacy COBOL applications and thanks to IBM, Java can interoperate with that legacy code and extend its functionality.

And it's not all about IBM either. Obviously Oracle, another enterprise favorite, is playing in the Java space these days and provide an application server, WebLogic, along with great support for accessing Oracle's RDBMs from Java. Oracle also has several industry vertical solutions all based on Java.

Finally there's Red Hat. Lots of enterprises run RHEL when running a Linux server and their JBoss application server is highly regarded.

Java then offers enterprises a lot of flexibility. There's multiple vendors from which they can choose to procure application servers, there's little risk of platform lock-in, they can fully interoperate with legacy applications and there's a ton of reasonable cost developers available - who are mostly happy with a language that's fairly modern. There's actually quite a bit for an enterprise to like about Java.

<comment><USER10> Great point about the y2k but. My aunt was a systems engineer at CSX and was one of the people that led their Y2K group (partially because she was one of the only people they had employed that was still expertly proficient in COBOL) and a lot of what she did, in addition to fixing the COBOL bits, was rewrite stuff in Java and build out Java connectors.

It's funny, I remember learning J++ in 1998 when I was like 15, around the same time she was knee-deep in the y2k thing. And we would email an call one another commiserating, because she was learning Java too (albeit at a much higher level and with real stakes).

As shitty as Java is for a lot of things, it is a godsend for dealing with legacy apps and code. And the thing is, those legacy systems are some of the most important systems around (banking, transpiration, health care records, major utilities like water and power, etc).

If I ever need to give myself nightmares, I just start to contemplate the infrastructure of our most important entities.

</comment></comment><comment><USER11> We could pretend that this is all about the incredibly unique properties of Java and "what it got right." But that isn't really true. It's just wrong to frame the question as "what was special about Java" let alone "what can I do with language x to duplicate its success?"

As of today, the reason is it's old and established and a safe choice, everyone knows about it, and everyone else uses it, and so many people write it, and there's so much existing code in it. Even if it sucks for some purpose, that's what you pay Java developers for.

The story of how it got there is again not about the incredible unique properties of Java but about the decisions of large companies in the contexts of the 90s, both in adopting and contributing to the development of Java.

Those decisions had a broad political and business context, and insofar as they had anything to do with the language itself that would have been in comparison to what were perceived to be the serious languages of the time, like COBOL or C++.

<comment><USER12> I found this comment very insightful. It may not fit everybody's worldview, but that's no reason to downvote, right?

</comment></comment><comment><USER13> I can give you some sense of why I use Java and enjoy it today in an "enterprise" setting. The JVM is excellent. Java 8 in particular is quite fun to use, streams in particular. The tool support isn't quite there yet for all of Java 8, however. In recent versions the concurrency APIs are quite diverse and easy to use (as much as multithreaded programming can be). There are also lots of good libraries -- Guava, Guice, and jOOQ to name a few. Java is also quite fast -- it's consistently outperformed by C and C++ but it's still competitive and much easier to write.

</comment><comment><USER14> Faster than Python

Easier to avoid mistakes than C/C++

Easy to break into component parts that can be maintained separately

Don't have to worry about handling memory

Works the same on Windows, Linux, X86, ARM, etc. so your developers can be working on OS X and deploying on BSD for all you care

Static typing (remarkably important when you've got a team of 30 working on a large codebase)

<comment><USER15> The "it's impossible/unmaintainable to develop a huge/enterprise codebase in a dynamically typed language" meme is really sad here on HN, specially for some one who works/maintains a huge/enterprise codebase in a dynamically typed language with a big team and have no problems at all.

Anyway I agree static typing was a big plus for java for the sole reason many people believe dynamic languages are just for scripts and small hacks.

</comment></comment><comment><USER16> Everyone seems to have covered the "dumbed down language" perspective. And there's definitely truth to that. Enterprises hire tons of developers, but Enterprises are terrible at determining which candidates are good developers. So there are a lot of mediocre ones.

However, there is another side of the coin that must be acknowledged. When Java came out, there was no Python or Ruby. Java let you be enormously more productive than C++ for apps for which garbage collection was fine. The VM offered features which weren't common, like reflection. Of course, Java came with a huge library. Java was a great option for a JFDI (Just Fucking Do It) language, and there weren't a lot of other options back then.

This doesn't solve the whole mystery. Why didn't SmallTalk or some other options that were available at the time do better? I don't really know. Java just took off like a rocket, in the same way that pet rocks and hula hoops did. There were some good reasons, but those reasons can't explain the whole phenomenon. And now, after that adoption tsunami is complete, Java is the safe, established (but boring, mediocre) answer that Enterprises like.

<comment><USER17> _When Java came out, there was no Python or Ruby._

Python is four years older than Java. When the latter was released, Python was already at 1.0.

<comment><USER18> Traction, of course. Perl and TCL were far more popular when Java was exploding.

</comment></comment></comment><comment><USER19> \- it is stable (both the language spec and the JVM) \- new versions are backward-compatible \- the language is simple therefore easy task are easy (junior devs can slowly get up to speed) \- it still has a lot of momentum (momentum = a new corporate project is easy to start in Java) \- there's been a lot of experience accumulated throughout the last two decades

All in all, it's good enough and it does not really have any glaring flaws.

</comment><comment><USER18> People are overrating language features I believe. The thing Sun did really well was marketing. They didn't go only to the core "tech" people in the enterprise: they reached _everybody_, and made it look like every company had to "move" to Java because it was the "future" even if few people understood what it was. Soon there were CEOs and CFOs and whatever talking on Bloomberg (or whatever) about how they were "moving" to Java.

For whatever reason IBM also jumped on that ship, and Oracle, and HP, and even Microsoft (albeit reluctantly) so "nobody ever got fired for choosing Java" became a reality.

Now that Java has been around for a long time we tend to forget this, but people couldn't even define what they were talking about back then - was it a language? JEE? A runtime environment? But they sure as hell were moving to Java.

Same as this "Internet" thing really.

<comment><USER5> And of course "JavaScript". A moment's reflection tells you all you need to know about Java's unique combination of ambiguity and marketing power in the mid/late 90s.

</comment></comment><comment><USER20> Ask yourself: What other language could those enterprise projects have used?

Of course there's the whole C/C++ world, but people were starting to realize that managing memory can be a pain, and that text-based preprocessors can be a pain too. In comparison, Java seemed easier.

Fortran was known to be good for numerical applications, but had a bad reputation for everything else.

Pascal? COBOL? really??

(Actually I don't know why people didn't consider Pascal more seriously; maybe it lacked corporate backing?)

Of course there were scripting languages, but big corps are conservative, so it had to be statically type-checked.

Many other languages came later, or weren't seen as mature enough back then (C#, Haskell).

Java, OTOH, had a few pluses: static typing, OO, easy to learn (because it was a small language, and had similar syntax to C/C++), and a very well-documented standard library.

<comment><USER21> Delphi could of been a competitor, but there's barely any books on it. Also it was way too Windows centered, they should of invested in other platforms. I'm surprised they never bought out FreePascal and developed both a free and open source version of Delphi and a commercial version of it. Oh well. I really don't like some things about Java, but that's because I'm spoiled by C#.

I work at a programming lab as a assistant or tutor to students, I usually find myself helping people with Java the most, and it's not my strongest language, but I still manage to figure out my way around it.

</comment></comment><comment><USER22> Other way to say the same on the answers on this thread:

Because MS own the enterprise/market and more exactly, the market for _developers_. So, apart of MS, what was left? C/C++?

Back in the days, the push of MS for developers was huge. Even in a latin america country (where I live) the MS conferences in a secondary city were huge. Everyone meet there. Even the people that do mainframes, netware, and be part of other communities like delphi, sybase. etc.

So, Java was the first concerted effort that intent to do the same. IBM/SUN/Others start to push for the community (because: How take of C/C++? Nobody). It start to show some kind of documentation, books, examples, etc. And provide a alternative, like everyone else explain here.

In short: Java explode because try harder to be the pepsi of the MS coca-cola.

</comment><comment><USER23> The "dumb-proof" bit is from people that themselves are not strong in CS, typically... It's just snark as you say.

There was incredible demand for something like Java, gigantic efforts were put in to place to standardize the many different UNIX like OSes but apps were still incompatible. ANDF was an effort by the OpenGroup, I'm not aware of any real implementations of it. The big powers, save for MS, all wanted to build platforms where vendors could write applications that could run. Then along comes Java, it has all the modern bits in a language that people deemed needed at the time, there were plans for performance, it was fairly easy to implement a VM, it had a robust library, C-inspired syntax (Pascal vs C might have been the last big war before Java,) it had real binary compatibility. Sun, IBM, Oracle, just about every major company backed it, even MS sort of did. The performance got better, etc.. When the whole industry buys in to something, it'd have been amazing if it didn't get adopted. Then compared to C++ or C, the productivity gains were (and still are) staggering, GC and real stack traces are manna from the gods at the time.

Fast-forward to now, it's still got top shelf managed language performance, the tooling is maybe only matched by MS's tools. The counter question I'd ask, what has come up lately that could possibly replace Java? There are some interesting JVM languages, the CS dork in me would love for Scala to take off more but not for any qualitative reason that I could point to to say it's really better; I'm a functional believer but I'd estimate that less than 3% of the code written in any language anywhere is functional. Rust and Go are neat, but if you look at the whole picture, I don't think there is anything close to providing what Java does that would justify replacing it; save for possibly .net but then you lose the compatibility which was one of the primary desires from the start. I'd think something would have to outdo java or the game would have to change pretty dramatically and enterprises would start needing different kinds of software and I don't see that happening any time soon.

How many major technologies get replaced with nothing?

</comment><comment><USER24> Java 1.0 and 1.1 were mainly targeted at browser applets. Applets were maybe a bit before their time as the download speed was slow and there were issues with downloading the JVM. The JVM was a really big download for the time, with many users still on dialup or maybe slow DSL. You could never rely on which particular JVM the user had, and this was a cause of compatibility problems. At the time windows was almost completely dominant as an end user operating system. And as others have said Microsoft's embrace, extend, extinguish didn't help. Microsoft came out with a relatively decent IDE for java, but then started pushing a technology I think they called J/Direct that let you make windows system calls directly from Java, which was kind of useful, but also completely tied you in to windows.

The enterprise/server usage of Java really took off with JDK 1.2, AKA Java 2 Enterprise Edition. Sun and also IBM put a lot of effort into promoting this version of Java. It coincided with the dot-com boom, every company suddenly needed web applications, and Java was the best way to build them. All the popular programming books from O'Reilly and others were about various Java related technologies, and I guess all the good jobs were working in Java. IBM did a 'World Tour' promoting Java and even produced/produces their own Java runtime (based on Sun's version).

Windows was the standard desktop operating system in corporates, and it was a real advantage that developers could develop locally on windows and then deploy on a Sun/IBM/HP server.

Java application servers became a thing. Sun bought NetDynamics, one of the first application servers. Basically an application server gave you all the needed structure and plumbing to build your enterprise application, whereas often in earlier projects developers built this all from scratch.

Java was designed to make code reuse easier, libraries could be packaged into jars and due to the language's consistency it was easier to combine code from others than it is in languages like C/C++. A lot of the tools you needed to build internet apps were built first (or only) for Java. Things like crypto libraries, SOAP tools, XML, XSLT, all the new stuff at the time.

UML became a popular standard for design documentation at the same time too, and java was well suited to building UML based designs. UML came about by merging many of the leading OO design methodologies of the time to create one overall standard. It combined the methodologies of many of the leading OO proponents of the time, including Grady Booch, Ivar Jacobson, and James Rumbaugh. There were a number of good UML tools, starting with Rational Rose (purchased by IBM) that really suited designing enterprise systems and then realising them in Java. Java was useful here because of its consistent object- orientedness.

It was also accepted wisdom at the time that you could hire a team of average developers and they could produce decent Java code, you couldn't rely on the same result from C++ where there were many more ways to shoot yourself in the foot. It also helped that at the same time there were huge numbers of Indian developers entering the job market at reasonable pay rates.

Java quickly became the standard, using anything else was either risky due to lack of support, didn't have the libraries or tool support, or maybe didn't have a large enough base of skilled developers available. So Java was the safe choice.

<comment><USER25> _Windows was the standard desktop operating system in corporates, and it was a real advantage that developers could develop locally on windows and then deploy on a Sun /IBM/HP server._

This is a pretty big factor, that it's actually portable. Develop on Windows workstations, deploy to either Windows or UNIX servers without changing anything. Thats just not possible with C/C++. Difficult to even do with Ruby or Python.

Also, the class-based OOP design and interfaces make it easy for many programmers to work on little compartmentalized parts of the same massive system. And of course it lacks the dangerous features of a language like C++. Everything is an object with attributes and methods, and the objects can have a hierarchy. It's an abstraction that's pretty easy to understand conceptually without much CS knowledge, and it's easy to model business processes with it, so managers like it.

<comment><USER26> I don't know about Ruby, but can you please elaborate about Python? I'd argue that non-cross platform Python code is actually quite uncommon.

There are of course OS-specific features that can be bound to Python code, but those can be bound to Java code as well.

<comment><USER25> Getting the development environment set up on Windows can be a pain. Trying to build an existing project that was developed on UNIX, you have to replace any shell scripts, make sure your Windows Path variable is right, set up a new virtualenv, etc. But the biggest problem isn't the Python code, it's compiling the libraries that are written in C/C++, Fortran, etc. It can be a struggle to get some of those to compile on Windows, and they do not support Cygwin either.

</comment></comment></comment></comment><comment><USER27> I landed at a large bank in 2000 just as J2EE was exploding onto the scene. Looking back it was the app servers that mattered more than the language (though the language made the app servers possible).

BEA Weblogic was particularly popular. Its text (later XML) based configuration made it easy to get going (more so than IBM's competing WebSphere, where somebody had been too clever and used entity beans for config, so you needed to work with a DBA just to get started).

Weblogic also came with really good samples and examples, which covered pretty much all of the useful areas of the J2EE frameworks. Just about every app that made it to production started out with the sample code and got modified until it was doing what was needed.

There were of course other app servers. Cold Fusion had a loyal following for a while, but never escaped out of web apps and into line of business apps.

The move of J2EE and accompanying app serves from web to line of business (starting in the back office) was mostly down to productivity and skills. The main alternative was generally C++, which was viewed as harder to do and harder to hire for. There were of course many arguments over performance, but eventually the JVM got plenty fast enough and people learned to avoid the 'Bitter Java' anti patterns.

</comment><comment><USER28> I don't know if I'm phrasing this in a calm, reasonable way, but your "snarky" reason has a lot to do with it. Not only was Java (pitched as) fool-proof (garbage collection!), managers really really did think that invoking "object oriented" like a magic word would help. I think that being able to develop on Windows NT (early 2000s context, right?) and run on something bigger was also a help.

<comment><USER2> _I think that being able to develop on Windows NT (early 2000s context, right?) and run on something bigger was also a help._

Indeed. The company I was working for from 2000-2004 started down the Java path about 2000 (part of the reason I was hired, I guess) and one of the things people loved about Java early on was how you could program and build your code on a Windows box, then sftp the jar to an AIX box, and run it there unchanged.

"Write once, run anywhere" might not have worked out perfectly, but it was actually pretty good, especially if you were doing server-side stuff and avoided Swing and AWT.

</comment></comment><comment><USER29> About 10 years ago, at a Q&A session with the almost-CTO of a Fortune 100 enterprise:

carlsborg: how much java does your company use compared to c++, and where do you see that going? cto: we're at about 50% java - 50% c++, and we want to go to 90-10 carlsborg: why? cto: its costs less to do it in java

(While this math might not hold true today, at the time it did - java 1.4 was relatively easy to master in its entirety, and universities were adopting it as the de facto programming language)

I think what he meant was that it cost less to develop java applications compared to C++ ones, in the fairly common situation where you didn't need the low level power and performance of C++.

Personally, I think what helped adoption was the boatloads of high quality middleware, multiple vendor support, and a relatively fast moving and open standards process. The latter playing an important role - when a language/technology stack stagnates, early adopters tend to go elsewhere looking for an "edge" and take their allegiance with them.

</comment><comment><USER30> I think it is simply economics. Its the new Cobol, lots of lines of code to maintain, lots of developers know Java, so the cost of maintenance can be kept low. So when you build something new, the developers want to use Java because that is what they know and all the tools they have invested in are Java based.

<comment><AUTHOR> You've captured a very fundamental perspective here since the time spent on maintaining software is significantly more than building it (not sure what the Fred Brooks percentage is but I would guess 80/20 for the larger orgs).

Do you know of any small companies that grew to a point and said "Well, we've got a hiring bottleneck since there are much fewer good Python devs out there. So let's migrate to Java which will then pay dividends over the years since the cost of maintenance will be low."

<comment><USER6> From Python? Not off of the top of my head.

But Amazon, eBay and Citysearch are examples of companies that started with Perl and then made such transitions to Java/C++. (With an exact mix and history that varies. For instance I believe that Amazon still uses all three, while eBay went from Perl to C++ to Java in complete rewrites.)

<comment><AUTHOR> This definitely seems like a cyclical thing. I'm aware that PayPal (owned by eBay) also went through a rewrite from C++ to Java over the last couple of years for its mid-tier web service stack (most but not all). The funny thing is that some of the services that never made it to the Java rewrite are now being considered to be rewritten in Scala.

</comment></comment></comment></comment><comment><USER31> You can write background, web, and desktop apps with Java. It is statically compiled and works very well.

I use C# for all the same reasons. Versatile, good tool set and does everything I need.

</comment><comment><USER32> Influence in the enterprise you have to look at the large consultants and integrators as bigco IT is taking their direction from them. IBM made Java the base technology of their stack in the late 90s and that's the primary reason. I would note that MS is extremely widespread as well as windows server, ad, mssql and dot net are prevalent, even more so as you get into the Smb market.

</comment><comment><USER33> Others have elaborated on historical reasons that made Java popular with the enterprise and correctly noted that the size of the existing codebase and amount of trained developers alone gives Java enough momentum to perpetuate long into the future.

However, on a different level there's a reason why people prefer Java and don't push for alternative languages. Namely, a program that would have 200 LoC in C could be re-written (assuming that you are using the right set of enterprise tools/frameworks) as a 2000 LoC program in Java. And, if you ever worked in enterprise, you know how useful that is. Think of the need to grow the development team, job security, fulfilling arbitrary goals set by the management etc.

</comment><comment><USER34> It's popular with universities, this is probably the biggest reason.

<comment><USER10> Actually, I think you have it reversed. It's popular with universities (which is just one of the reasons I find most CS programs lacking because they don't even touch on other languages until the 4000s so you have a bunch of grads who never even learn Python unless they are naturally curious until after they graduate, but that's a separate rant) __because __it is popular in corporate environments.

I know on HN most people dont approach software development from a corporate or enterprise POV, but that's where the majority of CS grads end up working. At small, medium and large size corporate shops doing custom software usually based on outdated models and working with legacy systems. Java is perfect for that.

Ok, that was totally unfair. There is a lot of stuff that Java can do really well. And I'm not a developer by trade (I'm just a hobbyist who likes to tinker and in another life would probably be a mobile or front-end dev; maybe next decade if I'm bored with media), so I can't even really speak from expeienece implementing Java. As others have stated, it came among at the right time, perfectly timed with the explosion of "the web" and became really easy to be a drop-in for a lot of places for C++. Plus, it was portable, which is a huge thing when you have so many environmental variables.

Schools started to teach it as soon as they saw that it was what all the big businesses were adopting. It also happens to be a very easy language to teach, even if one could argue (and I would be one of those) that teaching C first would be a much better first-language just to get the fundamentals down. But I mean, it's not just colleges that teach Java, they started teaching Java (replacing VB, which was I "learned" (read: slept through)) to kids two years behind me back when I was in high school. And that was like 2001.

</comment></comment><comment><USER35> 1\. It got many important things right, like Unicode by default. It has a strong garbage collector and no GIL. The language may be stale but therre's a lot to recommend the platform.

2\. Sun. It ended badly, but that's a company that was synonymous with innovation for quite a good run. Just as Google has energized Go (another not great, but solidly good by the standards of its time, language) having Sun behind Java was a major advantage.

3\. Lack of a suitable challenger. PHBs will always see Python as unsuitable for production (and they're wrong) but mediocre programmers will never learn Haskell or Clojure. In my estimation, Go is the challenger, and it's only 5 years old.

<comment><USER36> Mediocre programmers can learn scala, and the idea is that over time scala can help them become less mediocre. Or at least shift the bar in the right direction.

<comment><AUTHOR> That's a pretty strong opinion. Scala is statically typed, runs on the JVM, is Java compatible, is both object-oriented and functional, and is not verbose.

Care to elaborate why Scala is bound to attract only mediocre programmers?

<comment><USER37> I'd rather see a discussion of why Scala is unsuited to mediocre programmers, because it's type system - particularly as applied by the standard libraries - is too complex and baroque for mere mortals.</comment></comment></comment></comment>


Sal Khan explains SOPA / PIPA - <AUTHOR> http://www.khanacademy.org/video/sopa-and-pipa?playlist=American+Civic <comment><USER2> Sal showed up at our weekly company picnic/lunch today and said something like, "All these sites are down cuz of SOPA, but everything I read is still so hard to understand," so he dove in and made this this morning. Pretty cool.

<comment><USER3> I am convinced that Sal Khan's contribution to education is so significant his work will be used in classrooms generations from now... though perhaps in the form of some kind of technological derivative.

So congrats! You just had lunch with the historical equivalent of Einstein.

<comment><USER4> The guy really deserves some kind of recognition, but I don't think there's a Nobel or Pulitzer for education (telling).

<comment><USER5> Peace Prize? It could be argued that a better educated world is more likely to move towards peace. Allows people to be more critical thinking and thus not allow themselves to be fooled so easily by politicians.

<comment><USER6> The Peace Prize has been given for way crazier stuff than what Sal Khan is doing. If a banker can receive it for giving loans to people, why not Sal Khan for educating them?

</comment></comment></comment></comment></comment><comment><USER7> Linking is not a crime. If we'll ever make any "Internet Freedom" laws or Constitutional Amendments, that definitely needs to be in there.

The 1st Amendment should already cover linking as speech, but apparently MPAA/RIAA and some in Congress disagree.

<comment><USER8> It would make sense to have this as a central tenet of internet protection legislation.

</comment></comment><comment><USER9> A very nice video, except the particular passage referred to has the clause "designed for..., has only limited purpose or use other than, or is marketed for..." violating various laws. I don't think any of his examples would fall under any of these categories.

<comment><USER10> I find it disturbing that even though I am still against SOPA and the likes, that the opposition seems to be willfully ignoring this portion. Unless I am totally misreading it, it would be very difficult for the likes of Youtube or Facebook to be included.

The language is still dangerous though, because the designed for clause seems to open things up. I can easily see BitTorrent being brought in to be "designed for" downloading illegal movies, because judges aren't likely to think downloading linux distributions is very significant alternative use. The thing that concerns me is that smaller companies or companies outside of the mainstream might not get much credit for having other purposes. Imagine if reddit had r/stealmovies, a judge might not care much about the rest of it if there are thousands of people using it to talk about infringing.

There is enough wrong with this bill to oppose it without resorting to hyperbolic threats.

edit: Thinking about it more, youtube might be a great example. Current youtube won't be brought down with this, but youtube in it's infancy very well might have been stomped out. Imagine explaining to a Judge, "no, you don't understand. Right now it might be used for mostly unauthorized music videos, but showing home videos of cats is going to be HUGE!"

<comment><USER11> A farmer has successfully been prosecuted under the -Interstate Commerce Clause- for growing his own wheat on his own land for his own use. <http://en.wikipedia.org/wiki/Wickard_v._Filburn>

It never left a state, it never left his farm, it was not for sale, it is definitely not interstate commerce, yet he violated the interstate commerce clause (reasoning was that if he had not grown his own wheat, he would have had to buy some, which would affect the market, which would affect interstate commerce.)

It's because of things like this that cause people to interpret legal language in the worst possible imaginable light - 'very difficult' has happened many times.

So I think it's quite reasonable to assume that at some point Youtube and Facebook will be found to be "...marketed by its operator or another acting in concert with that operator for use in offering goods or services in a manner that facilitates [illegal things]"

One ad that says "Post comments without logging in!" would be sufficient to meet the letter of that language. You really think this is a 'hyperbolic threat'?

</comment></comment></comment><comment><USER12> All the blackout banners should link to this video.

<comment><USER13> It's a YouTube video. They can just embed it on the page.

</comment></comment><comment><USER14> Shows how effective khanacademy.org is when, after watching the entire video, I discovered I wasn't logged in and was disappointed I wouldn't get my points!

<comment><USER15> The Vision of the Gamepocalypse is coming true. :)

[http://www.youtube.com/watch?v=9NzFCfZMBkU&t=2m10s](http://www.youtube.com/watch?v=9NzFCfZMBkU&t=2m10s)

<comment><USER16> Gamepocalypse already happened. Money is just a point system.

</comment></comment></comment><comment><USER17> Once again Salman Khan explains what needed explaining to many people.

However, SOPA has changed since then and now * specifically only applies to foreign sites * excludes the DNS cutoff

It is still "flawed", as Darren Issa says, and I think the OPEN act, deputizing the ITC is actually way better. It would first offer the offending foreign sites a chance to enter into arbitration before taking any unilateral action against them by the USA.

</comment><comment><USER18> We need S.O.P.A:

Stop Outrageous Political Assholes.

Did anyone here see the letter from the CEO of the MPAA (who happens to also be a senator) chriss dodd today, which said that this SOPA blackouts are a gimmick and that we are corporate pawns for blacking out in protest?

Is it enraging to anyone else that he is allowed to be the CEO of the MPAA AND a senator at the same time where he can both write and benefit from legislation in his interests?

<comment><USER19>
       United States Senator from Connecticut
       In office January 3, 1981 – January 3, 2011

       On March 1, 2011, the Motion Picture Association of
       America announced that Dodd will head that organization

He's not a senator anymore and was never senator and MPAA Chairman at the same time. I know wikipedia is "down" so it's harder to check facts. [<http://en.wikipedia.org/wiki/Chris_Dodd?banner=false>]

<comment><USER18> Thanks!

I have heard his name enough in the media recently, associated with the credit crisis, as referred to as senator, that I hadn't realized he was out.

Still does not reduce my level of disdain for him.

</comment></comment></comment><comment><USER20> Sal, hope you are on HN because I have to say, you f-ing rule. I don't think anyone could have done a better job explaining it.

</comment><comment><USER21> We are hosting a discussion about #SOPA tonight at TooTchat. Come and join us. <http://bit.ly/AiomgP>

</comment><comment><USER22> What is the most practical way to send this video to the members of Congress so they can become better educated on the ramifications of these bills?

</comment><comment><USER23> I thought I knew how creepy SOPA/PIPA are

</comment><comment><USER24> Better permalink to Sal Khan's explanation of SOPA

<http://khanacademy.org/video?v=tzqMoOk9NWc>

<comment><USER25> There's nothing wrong with the original link. (I'm KA intern/part-time and the submitter is a full-time KA dev.)

<comment><USER24> I didn't realize the organization had a plan to shephard quirky links indefinitely

</comment></comment></comment><comment><USER23> so using ssh would be now illegal?</comment>