On The Value Of Fundamentals In Software Development - <AUTHOR> http://www.skorks.com/2010/04/on-the-value-of-fundamentals-in-software-development/ <comment><USER2> I think he makes a good point. I was thinking about posting an "Ask HN" about what would be considered the fundamentals of programming/software development, but will ask it here instead. Does anyone know of a decent list of to start with? Basic algorithms and data structures would be on there, off the top of my head.

<comment><USER3> Which data structures would you call "basic"?

I mean, past pairs, linked lists, [dynamically resizing] arrays, and binary trees, it gets either more complex or more esoteric. Are quadtrees basic everywhere? Is knowing the way a red-black tree works, by heart, useful? Does it really help to know exactly how hash-table based dictionaries work, or is it sufficient to have a vague understanding that a function transforms identification numbers into "bucket" slots? This isn't rhetorical, I just don't know.

I doubly don't know for algorithms. To me it seems the algorithms themselves are never fundamental, it's the techniques and thinking behind them that is fundamental. Nobody cares about binary search, we care about "divide and conquer"-- you can rebuild binary search from that.

<comment><USER4> Yeah, learn the basics of divide and conquer, greedy, and dynamic programming algorithms and you will be doing well. Of course to learn that you also need to learn how to apply those to basic data structures such as graphs, skip lists, and various n-ary trees.

The algorithms that the MIT lectures go over in the introduction to algorithms course should be a good stepping stone to knowing enough to get you by in an interview for a junior programming job.

MIT course: [http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and- Compute...](http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer- Science/6-046JFall-2005/CourseHome/)

I guess I should amend this to say that if this is the first time going through the material you might just want to pay cursory attention to the big- oh notation proofs and just look at the overall speed of the algorithm. Ignore the proofs and look at the result. Though in a job scenario they will want to know the overall running time of the algorithm that you created so it is beneficial to know. (IE quick-sort is generally a good algorithm and will run in O(n logn) on the average but there is a degenerate case in which it will run O(n^2) namely a sorted list.</comment></comment></comment>


Ask HN: How to learn about Automotives - <AUTHOR>

I love cars I got one recently and I was wondering if there any good resources out there to learn about my vehicle.<p>If something happens to it I want to be able to diagnose myself. Maybe a good book or youtube videos? <comment><USER2> I finished a mechanical engineering degree 2 years ago and as my final year design project, I chose to design and build (in a team with 7 other students) a small offroad vehicle from the ground up [1]. I learned that automobiles, from an engineering standpoint, are a really complex interaction of a very large amount of systems. I was also surprised by how different everything in cars was different from what we learned in school. It made me realize how the curriculum was highly focused on the manufacturing industry (where ~75%, OTOH, of graduates end up working).

Anyways, that being said, if your interest is fixing up your car, then yeah, as others have pointed out, shop manuals (3rd party or official) along with the web (google/youtube) is a very good starting point. I got interested in mechanics as a teen using these resources for small-engined vehicles (various dirt bikes and snowmobiles).

Still, I'll list some references I found interesting from the viewpoint of a young engineer designing a car from the ground up.

Braess, Hans-Hermann et Seiffert, Ulrich. Handbook of Automitive Engineering. Warrendale : SAE International, 2005. (Bosch is the most known "Automotive Handbook", but I liked this one better. Even though it's a 'handbook', it's still interesting to read, as opposed to Bosch which is really a reference. Good focus on passenger cars.)

Limpert, Rudolf. Brake Design And Safety. Warrendale, PA : SAE International, 1999. (Everything on brake systems and safety, with an interesting perspective from accident reconstitution. Good focus on passenger vehicles tool.)

William F. Milliken, Douglas L. Milliken, Race Car Vehicle Dynamics, SAE International, 1995 (known as RCVD, the 'bible' of vehicle dynamics, oriented mostly for race cars.)

Dixon, John C. Tires, Suspension, and Handling, Warrendale, PA : SAE International, 1996. (Similar to RCVD, somewhat shorter and easier to digest IIRC)

Ferguson, C. R. and Kirkpatrick, A. T. Internal Combustion Engines : Applied Thermosciences, Wiley, 2000 (Textbook I used in an undegrad course on ICEs, I liked it. The authors wrote some java applets that implement many basic ICE calculations, fun to play around with: [http://www.wiley.com/college/mechs/ferguson356174/apps/apps....](http://www.wiley.com/college/mechs/ferguson356174/apps/apps.html))

Wong, J.Y. Theory of Ground Vehicles. Hoboken, NJ : Wiley, 2008 (Mostly focused on various off-road vehicles, suspension, traction and handling)

Aird, Forbes, Race Car Chassis: Design and Construction, Motorbooks International (July 1997). (Good overview of 'classic' design and construction techniques for race car chassis. Somewhat dated in the sense that it doesn't cover modern composite chassis. Worked well enough as an intro for the design of our tubular space frame)

[1] The project website went offline, sadly. Here's some local media coverage (in french) [http://www.lapresse.ca/la-tribune/economie-et- innovation/201...](http://www.lapresse.ca/la-tribune/economie-et- innovation/201212/07/01-4601763-a-bord-dun-vehicule-concu-a-ludes.php)

</comment><comment><USER3> If you live in the UK there maybe a Haynes manual available (not sure if these are available outside the UK). These are books published by Haynes and typically have photographs and descriptions of common faults, engine rebuilding step-by-step guides as well as more simple servicing activities.

Some cars are popular enough to have dedicated websites devoted to them with guides and forums (e.g. Smart car: [http://fq101.co.uk](http://fq101.co.uk)).

It should be noted that servicing ones own car comes with pitfalls. You must invest in quite a lot of expensive tools, have a workshop area or driveway to do the servicing and ultimately if you fail to complete the task, you might end up with an unusable or dangerous car.

A good reason to know about how cars work and what goes wrong with them is that when choosing a good garage to have service it, you are in a stronger position and cannot so easily be tricked into having servicing done when it is not necessary.

</comment><comment><USER4> I second the Haynes manuals (or equivalent if you're not in the UK) - They're amazing. Although annoyingly they don't make one for the Mazda RX8 that I've just bought.

One of the nice things about these workshop manuals is they rate jobs by difficulty and tools required, so you can start on easy stuff like oil and filter change and work up to the more advanced things like head gasket replacement.

I also learned a lot from my Dad, so if you know anyone who's knowledgeable in the field, see if they'll help you, or at least impart some knowledge.

Also, invest in a decent trolly jack and axle stands, I hate the thought of people working under cars supported only by the flimsy scissor jack that came with the car.

</comment><comment><USER5> YouTube and Haynes manuals. These days, I prefer YouTube and using the Haynes as a reference. Start with smaller jobs to build your confidence and your tools collection (wrenches, jack, etc).</comment>


HBGary Execs Run For Cover As Hacking Scandal Escalates - <AUTHOR> http://blogs.forbes.com/andygreenberg/2011/02/15/hbgary-execs-run-for-cover-as-hacking-scandal-escalates/

<comment><USER2> The Forbes article misses a few key follow-on questions:

1\. How many other "security" firms offer the kind of borderline illegal services that HBGary Federal offered? HBGary Federal probably isn't alone in any of this, or is it?

2\. Has the Chamber of Commerce or Bank of America, or indeed, any other Fortune 500 company or US government agency taken up a "security" firm on this kind of a proposal? If so, how often does this get done?

Once you ask those two questions, you have to ask yourself if all the cyberespionage attributed to the People's Republic of China is validly attributed.</comment>


Google has a feature to search recipes?  - <AUTHOR> http://imgur.com/b5Vxr

<comment><USER2> Yep I posted a blurb on it yesterday too: [http://mybadcomputer.com/blog1.php/2011/02/26/google- search-...](http://mybadcomputer.com/blog1.php/2011/02/26/google-search-for- gourmets)

</comment><comment><USER3> [http://googleblog.blogspot.com/2011/02/slice-and-dice- your-r...](http://googleblog.blogspot.com/2011/02/slice-and-dice-your-recipe- search.html)</comment>


OpenSSH update from Damien Miller - <AUTHOR> http://lwn.net/Articles/340483/

<comment> brown9-2 So basically this story boils down to (at least as of now):

 _...I'm not pursuaded that an 0day exists at all. The only evidence so far are some anonymous rumours and unverifiable intrusion transcripts._

Maybe this should be a lesson to wait for more solid info before people begin panicking...

<comment><USER2> Or if you have a server that is very important you can take steps to mitigate the problem until the issue is resolved. In that case I would make it so that the ssh is only accessible behind a firewall on the local network. If it is a front facing server with no backend network I would change the open port(though this should be done already) and/or enable port knocking. You could also set iptables to only allow access from your remote network.

<comment><USER3> Or you could be running a version of OpenSSH that is less than four years old. 4.3 came out in 2005

<comment><USER2> The thing is without full disclosure from the dev team (after they find out if it is in fact a true exploit) upgrading in the dark just to upgrade you could be upgrading to a version of the software that has the exploit.

<comment><USER3> Every report I have found says that, if an exploit does exist, it is in an old version of OpenSSH. I have no idea why you would update to anything but a recent version. If you suggest that your distribution doesn't have an update to a recent enough version; then rumored OpenSSH exploits are the least of your security concerns.

Your post also suggests that Damien Miller and the OpenSSH development team would not disclose the exploit. Are you aware that one of the goals of the OpenBSD and OpenSSH projects is Full Disclosure? What evidence do you have to suggest that they would go against their own goals?

<http://www.openbsd.org/security.html>

<comment><USER2> I think I might not have been clear enough in my point. The people at OpenSSH are good, that was not in question. The point I was making is that the "anti- sec movement" are miles away from trustworthy. Without a confirmation from the actual devs that the current (5.x) versions are OK from the "exploit" I will not be upgrading from the most recent version that is on my distro.

Taking a random "hacker" without proof at face value on the internet is not my cup of tea.

As randallsquared pointed out here <http://news.ycombinator.com/item?id=692344> it is entirely possible that the latest version has the problem and this is all a social engineering hack to get everyone to upgrade to a compromised version without any data whatsoever.

</comment></comment></comment></comment></comment></comment><comment><USER4> Excuse my ignorance, but who is Mark Dowd?

Edit: link I just found: <http://taossa.com/index.php/author/mark/>

<comment><USER2> I hadn't heard of him either but a google search looks like he is pretty good at exploits: <http://blogs.zdnet.com/security/?p=1030>

<comment> brown9-2 related links/discussions about his exploits if you're interested:

<http://news.ycombinator.com/item?id=164725> <http://news.ycombinator.com/item?id=690592> <http://news.ycombinator.com/item?id=692881></comment></comment></comment>


Show HN: Pext – Turn Messages into Memes - <AUTHOR> http://www.pext.me <comment><USER2> Surprised this hasn't gotten more upvotes. Very useful for a ton of different apps and I see you've integrated with instagram and whatsapp.

It's probably something most HN users won't care much about (this isn't really the demographic), so try the younger, teen/tween market instead.

<comment><AUTHOR> Thanks, yes we definitely need to reach out to the younder demographic :)

</comment></comment><comment><USER3> Just because you are putting that font on a picture doesn't make it a meme. But since this is the common name for it on FB I guess that's where the meaning is going.

</comment><comment><USER4> I was waiting for this since a long time. I wanted to build one like that (less advanced) at my next hackathon. Thank you

</comment><comment><USER5> Reminds me of [http://en.wikipedia.org/wiki/Microsoft_Comic_Chat](http://en.wikipedia.org/wiki/Microsoft_Comic_Chat)

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

<comment><AUTHOR> Thanks! Let us know any feedback/issues you have</comment></comment>


Facebook emailed me the same question 24 times in a month. - <AUTHOR> http://lefthand.me/post/37674874102/so-i-have-this-facebook-account-i-dont-use-i

<comment><USER2> this is what finally got me to the pull the plug on my account, I got tired of the emails trying to connect me to people I didn't know. Each email reminded me I wanted to kill the account and whatever motivation I had to keep it slowly eroded away.</comment>


The Most Patriotic Thing You Can Do - <AUTHOR> http://blogmaverick.com/2011/09/19/the-most-patriotic-thing-you-can-do-2/?utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed:+blogmaverick/tyiP+(blog+maverick) <comment><USER2> 2nd most patriotic thing you can do - fight corruption by supporting increase of oversight and transparency in government.

Corruption (both Dems and Reps are guilty of this) is the disease will kill capitalism as it clogs the arteries of the economy.

I also love Cuban's logic - be happy you have a large tax bill to pay for that is _a good problem to have_.

</comment><comment><USER3> IMHO: "Patriotism" != handing money to your government. "Patriotism" == doing what is best for your country (i.e. the people).

Believe it or not, the government does not alway's have the country's best interests in mind. The example I always use is the Wall Street bailouts. Tax- payer dollars were used (mostly against tax-payer will) to bail out reckless banks and provide golden parachutes for undeserving CEOs. Sometimes the government will even hurt the country when it is trying to do the right thing - it was one of the major catalysts in the current recession, because it backed entities like Freddie Mac and Fannie Mae and their "toxic" mortgages.

If you want to do something good with your excess money, the government probably is not the best charity to donate to. A simple rule of thumb: the more hands that money passes through, the less money comes out the other end. If you want to be patriotic, give your excess money DIRECTLY to those who need it most.

<comment><USER4> Private sector loans, not Fannie or Freddie, triggered crisis

Read more: [http://www.mcclatchydc.com/2008/10/12/53802/private- sector-l...](http://www.mcclatchydc.com/2008/10/12/53802/private-sector-loans- not-fannie.html#ixzz1YSrOwG00) [http://www.mcclatchydc.com/2008/10/12/53802/private- sector-l...](http://www.mcclatchydc.com/2008/10/12/53802/private-sector-loans- not-fannie.html)

<comment><USER5> Thank you! It's ironic that on a site like HN, so much of the commentary about home lending is based on rhetoric and dogma instead of fact. I wonder if GP even knows what Fannie or Freddie do.

<comment><USER3> Read my comment above.

Then check your facts, and the "facts" others post before preemptively determining what you think is based on rhetoric and dogma.

</comment></comment></comment></comment><comment><USER6> There are a few assumptions in blog post but one in particular that I really do not like. And that is that 'making money' automatically equates to improvement of society.

For most businesses this is the case. If you manufacture something or provide a service then you are adding to the overall wealth of the nation. Making a lot of money from something that does not provide a valuable service to society actually detracts from the wealth of the nation because you are extracting resources (people, natural resources, time, etc) that could be assigned to more productive uses.

Remember is money is not wealth.

</comment><comment><USER7> If you're rich and you can't recognize your debt to the society that enabled you to become rich, then you're a greedy, horrible person. Pay your taxes, for gosh sakes.

<comment><USER8> Strongly disagree. My classmates picked on me, my teachers didn't challenge me. The state didn't pay for my education. I'm successful because I've applied myself while my peers were screwing off.

Just because you need consumers to become wealthy doesn't mean that you're exploiting them... wealth creation is NOT a zero-sum game. Becoming wealthy is the reward you get for making consumer's lives better.

Edit// For clarification, I'm fine with paying taxes. But I don't owe a debt to society just because of my success. I'm an equal citizen with everyone else, and we all benefit from the stability that government provides. I would also say that if the concept of "societal debt" is legitimate, then the poor have accrued much more debt anyway.

(I'm fine with the downvotes. My highest net-point posts usually start with some downvotes.)

<comment><USER9> Agree completely. The only honest way to make a living in a capitalistic society is to provide a service or product that someone wants. You can only make money by providing something people find valuable.

<comment><USER10> Yes, it's (approximately) true that the only way to make money is by providing something that people find valuable.

It doesn't follow, however, that if you make money then you must be providing something that is valuable _overall_.

Hypothetical example: I find a completely undetectable way to steal money from poor people and transfer it to rich people, except that 25% of it vanishes on the way. I offer my services to someone rich and unscrupulous. Although poor people don't have much money, there are a lot of them, and I am able to get my client $10M/year. She pays me $1M/year. (For some reason my method is only capable of enriching people who are already rich, which is why I don't just take the $10M myself directly.)

In this situation, I have provided something that someone finds valuable. It is unlikely, however, that I have made the world a better place (because of the diminishing marginal utility of money, etc., etc.), my actions would generally be considered unethical, and I wouldn't want to argue that I _deserve_ all the money I'm getting that way.

(Some people would say that what I just described is the standard operating procedure of the financial industry. That may or may not have some truth to it, but all that matters for the point I'm making is that that general _kind_ of thing can happen -- some jobs can be negative-sum but provide some people with enough benefit to make them well paid.)

<comment><USER11> You just described an act of theft. That wouldn't be legal in a free, capitalistic society.

</comment></comment></comment></comment></comment><comment><USER12> "Taxes are the price we pay for a civilized society." - Oliver Wendell Holmes

<comment><USER13> That doesn't imply that every possible taxation system is an acceptable price.

More to the point, a large fraction of the taxes that we pay go to things that have nothing to do with a civilized society.

"Three generations of imbeciles are enough" - Oliver Wendell Holmes, in Buck vs Bell.

</comment></comment><comment><USER14> I believe Captain America does an excellent job on explaining what it means to be a true patriot: <http://imgur.com/a/TEvWk>

</comment><comment><USER15> Maybe we could stop asserting that patriotism is in any way, shape or form a positive attribute. It's not.

<comment><USER16> Totally agree. It seems that patriotism applies only to "normal" people, not to those huge businesses that operate internationally, across borders. Also, in an age when no country could exist in isolation, what sense does it make to think of just "my country, my society"?

</comment></comment><comment><USER17> It seems that paying taxes is the most patriotic thing you can do; being rich just allows you to pay more of them, as well as benefiting the economy in other ways.

</comment><comment><USER18> It seems rather foolish to think that there can be a _most_ patriotic thing you can do. Plus the grey area and loop holes in the tax code generally tend to favor the rich. Does the author mean that the most patriotic thing you can do is pay taxes without trying to minimize the amount of tax you pay? And if so whats the threshold of manipulative tax paying.

It's also very naive to think that your own bottom line and tax bill are in any way a measure of your patriotism. Is shipping jobs overseas to increase profit more patriotic than maintaining a more modest business while providing jobs in your country?

Associating patriotism with profit is just a psychological tool for justifying your own desire to have more things than everyone else.

The _most_ patriotic thing you can do is love your country.

<comment><USER19> > The most patriotic thing you can do is love your country.

What does that actually achieve or change for anyone in a broader sense? Patriotism is by definition a kind of love for your country. Now what you do as a result is what actually matters.

Alternatively, can you love your country without striving to make it better in some way? Is an own love for the country without any action a valid concept?

<comment><USER18> That's exactly what I'm trying to convey. The concept of patriotism is just as abstract as the concept of love.

People who talk about it otherwise just have something to sell.

</comment></comment></comment><comment><USER20> I share his general sentiment. In a broader sense that's why I love the capitalistic system, or at least the way it's evolved within the US. People don't exist in a vacuum. Bettering your own situation with goals ranging from altruism to full on greed still pulls people up with you, and improves the lives of everyone else in society. Granted it's not a perfect system, and there's things we could do to make it better, but still at it's core I believe there is the best their is.

</comment><comment><USER21> I'm sure Mark believes this to be true, but I find his comments to be self- serving. He's basically saying that what he's accomplished in his life is patriotic, and that should be your goal too! If we all follow his advice, by nature he will be "patriotic".

I don't necessarily disagree with the advice, but his sentiment toward it feeds his own feelings more than anything else.

</comment><comment><USER22> Paying taxes is patriotic in one sense.

But not feeding the monster is also patriotic.

Fundamentally, if I knew tax dollars were were being spent efficiently, I wouldn't have a problem paying 'higher' taxes.

Corruption, inefficiency make it impossible to support tax increases.

<comment><USER23> So Greece should become the world's first anarchist state? Paying taxes there is only supporting corruption, bureaucracy (including their debt holders) and inefficiency. Part of their problem is that no one was paying taxes to start with. Not paying taxes is a form of corruption.

What you are talking about is a problem of government accountability. What you are suggesting is fighting fire with fire.

</comment></comment><comment><USER24> I don't see the connection between patriotism and taxes. I could see an angle where explicitly dodging taxes could be unpatriotic. But patriotism isn't something you buy. It just doesn't work like that.

</comment><comment><USER25> The most patriotic thing a person can do is to continuously know the value of them self and of others and to use that knowledge to do good.

</comment><comment><USER26> Buy a failing basketball team.

</comment><comment><USER27> He's making a few assumptions:

1) Government knows how to spend our money wisely on things that improve the quality of our lives

2) Getting rich equates to improving the quality of lives of society, as a whole. I know several industries where this isn't the case.. (gambling, cigarettes, fast food)

<comment><USER28> He says no such thing. He says we live in an imperfect world where the government has a role to play in getting us out of this recession. As to your second point, that's based on your opinion of what constitutes making society better.

<comment><USER27> I didnt say he said those things explicitly. But by saying it's patriotic, he's assuming those things.

Yes, it's based on my opinion. Yes, I'm generalizing, and I bet the majority of human beings on this earth would agree there are industries that make people rich and are harmful to the general public. In fact, I'd argue there's a TON of them. Humans love to self destruct (ie. get fat, kill themselves, get addicted, overspend, etc)

<comment><USER29> Probably why we need government eh? Have you ever set your clock ahead 10 minutes to help keep you from being late? Why, you could just be responsible instead?

This is the premise of a democratic government, when you realize that you will not always do the best thing for yourself or your neighbors, but you still know what the best thing is and have a government that enforces it, knowing it could come for you if you break the contract.

Obviously it is not a perfect system and we must be vigilant to improve it constantly, but anarchy is not a viable option.

In many cases government does spend more wisely than any single individual, but that may not be the cheapest approach, there is a difference. Look up the "Price of anarchy".

<comment><USER11> Can you give some examples of the "many cases" in which a government spends more wisely than an individual?

<comment><USER5> Rather than me hiring security for my house at a rate of maybe one hour a day -- the only amount of private security I could afford -- the government pools the money of my entire community, hires many security guards, equips them, and lets them drive around my neighborhood.

Then, instead of my spending an hour or two educating all the kids in the neighborhood, in the hope that the next generation of people aren't morons, they take some money from all property owners and use it to build schools. Those schools to ensure that a very wide swath of the population, even the poor and stupid, meet minimum education standards. That way, at the very least they can go and do the service jobs that I don't want to do, and so many of them meet that minimum education level that they can be hired for a low wage, thus keeping the price I pay low.

<comment><USER11> The government spends wastefully in defense, education and every other service it seeks to provide.

I agree in principle that it's generally beneficial for individuals to pool resources in order to address common needs. But this happens on its own in a marketplace. It's called the division of labor.

<comment><USER5> Wastefully compared to what? Do you know of any other organization that provides essential social services to hundreds of millions of people?

Do you have actual facts to supply here? Can you provide an a legitimate comparison for us, or are we supposed to simply accept your free market mantra?

The existence of waste and inefficient behaviors does not mean that the system is waste _ful_.

<comment><USER11> > Wastefully compared to what?

A competitive marketplace.

> Do you know of any other organization that provides essential social > services to hundreds of millions of people?

I would categorize food, clothing, furniture, and housing as essential needs. They're all provided for by competitive markets.

There's nothing unique about health care, education, fire, power, water and roads that these couldn't be provided by competitive markets, too.

> Do you have actual facts to supply here?

I think the price tag on the Middle East war(s) is over 1 trillion dollars. This expenditure is done under the umbrella of "defense."

If your local security company told you they think it will make you safer if they expand their operations to the Middle East to seek out shady characters, and oh by the way, we need to charge you 10 times as much to pay for these new operations, you'd take your business elsewhere.

The inherent danger in government programs is that there is no effective check on expenditures save the restraint of the government itself.

There is certainly waste in a free market, but in a free market the waste is isolated to individual firms. If they lose money, they go out of business.

<comment><USER5> I don't think your war analogy works.

There is a good case that the cost of the war(s) is so high _because_ the administration which prosecuted them relied so heavily on private companies for services. Donald Rumsfeld came into the DoD with an ideological belief that private companies could do the job more efficiently, and, based on that belief, he turned the DoD into an ATM for the largest defense and security contractors.

And waste in free markets definitely is not isolated to one firm. Ask a bank.

<comment><USER11> The cost of war is always high and has always involved private industry. This didn't start with Rumsfeld.

The government has never made its own guns, bombs, planes, tanks or any other tool of the trade.

> And waste in free markets definitely is not isolated to one firm. Ask a > bank.

The banks are not a free market! They were all bailed out by government. In a free market they'd all be gone.

When I say "one firm" I mean "one at a time." Instead of systemic waste like in a government-run industry.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> nothing cuban writes in public is going to be honest, it's fundamentally self serving and it's good PR.

</comment><comment><USER31> Alternate patriotic strategy: learn to live comfortably on an untaxably low income, or an unreported cash income. Draw the maximum benefits you can. Keep yourself healthy and don't buy health insurance. Help to accelerate the inevitable collapse of a corrupt, immoral, and unsustainable system.

</comment><comment><USER32> Patriotism is a sham put in place by a social experiment of the introduction of organized sports. It created team-spirit and it was translated to other levels to equate patriotism. In the original days wars were small enough and there were enough real patriots to fight it. But since the country was based on violence and theft I have no faith in it anymore.

War is lie and Capitalism is parasitism.

</comment><comment><USER33> Cuban: Pay your taxes, be a patriot!

In a country founded by patriots protesting taxes, I find his rhetoric tiring. Patriotism doesn't create jobs, capitalism does.

Taxes, legal fees and regulation can all kill a start up. The government has a money printing machine, it's not like a fledgling startups is the only source of revenue to finance endless war. If we want to create jobs, it should be free to start a company, sell shares, and start doing business.

<comment><USER34> The way I remember it, the founding fathers weren't protesting the taxes, so much as the lack of representation. Ben Franklin famously wrote that "In this world nothing can be said to be certain, except death and taxes." This country wasn't founded on the notion that we should be tax free. The Boston Tea Party basically came about because The East India Tea company made bad business decisions, and wanted a tax break in England to alleviate warehousing issues.

Actually, it's all quite complicated, but to say that this was a country founded by patriots protesting taxes and then to complain of tiresome rhetoric is to illustrate how little you understand both American history and rhetoric.

<comment><USER35> _The way I remember it, the founding fathers weren't protesting the taxes, so much as the lack of representation._

That's arguably wrong as well. A large number of American colonists (particularly in Boston; esp John Hancock) made a living as smugglers bypassing English tax laws and circumventing the EITC's trade monopoly on tea. The administrative changes that parliament made in that time included not only new taxes but better enforcement of laws which were already on the books and this nearly drove many prominent Americans out of business.</comment></comment></comment>


CIA's Secret Fear: High-Tech Border Checks Will Blow Spies' Cover - <AUTHOR> http://www.wired.com/dangerroom/2012/04/cia-spies-biometric-tech/all/1

<comment><USER2> A great example of technology disrupting existing practices in a very niche area. How do spy agencies recruit today for clandestine operations with so many people on or were on Facebook. Isn't that a lot of people who can blow an operators cover, or find the information on Facebook someone?

<comment><USER3> But then a lot of CIA's work can now be done by keyloggers, hacking and viruses.</comment></comment>


Java for Everything (2014) - <AUTHOR> http://www.teamten.com/lawrence/writings/java-for-everything.html <comment><USER3> After working on large Javascript projects and running into and cleaning up countless issues that static typing would solve, I've come around to being a huge fan of static typing. Now, every line in an untyped codebase looks like a potential typo or reference to an old function that was refactored ages ago just waiting to blow up at runtime. Tests help, but only after you've written them.

I really like Javascript, so I've been using Facebook's Flow type checker, and it's been great. I was already using Babel (with Browserify), so nothing about my build process even needed to change. It makes it easy to gradually add type-safety to a codebase. It doesn't get in the way of common Javascript patterns. Callbacks are still lightweight, but well-typed. I can still bypass the type-safety and monkey-patch a property onto an object while I'm testing something.

<comment><USER4> After coding for awhile now, I've also developed a penchant for statically typed languages. I've been forcing myself to use TypeScript whenever coding JavaScript for the static typing.

</comment></comment><comment><USER5> The article seems to be about Java vs Python. But it really only talks about static vs dynamic typing. Not only has everything about that subject already been said 1000 times. It's also not Java-specific. Java sucks IMO not because of static typing, but because of the 'If you have a problem, add more OOP'-mentality which has given us Java EE. About any argument he makes pro- java is also valid for something like typescript. But with typescript you still have the freedom of a scripting language for the parts where it makes sense.

<comment><USER6> Really good point. Replace every mention of Java in the post with any statically typed language, and he definitely has a point. He doesn't argue that Java doesn't suck.

</comment></comment><comment><USER7> > Sure you have to write: Map<String,User> userIdMap = new > HashMap<String,User>(); instead of: userIdMap = {} but in the bigger scheme > of things, is that so long?

More like user posts complex JSON object, which takes me seconds to parse into a Python data structures, and hours or days to figure out complex mappings into Java classes. It's often the mapping of objects to serialized forms is where a huge amount of time gets spent in statically compiled languages. And it's NOT just a once of investment - those mapping change in future and some poor soul is going to have a fun time modifying your Java app, no matter how well named your variables are.

If you are writing glue code or IO bound web servers without a high performance requirement, the difference in productivity between Python and Java is not at all trivial.

<comment><USER8> If you want type safety, you need to parse your JSON into a java class (although "days" is definitely an exaggeration with the right tools—I'm a fan of json-schemas and jsonschema2pojo [0]). But of course you don't get type safety in python, so it's bit of an apples and oranges comparison.

If you're willing to settle for no type safety, there are untyped Java APIs like Jackson's tree API [1] that are, while definitely more verbose than Python's, similarly productive in my experience—and much, much faster.

[0] [http://www.jsonschema2pojo.org/](http://www.jsonschema2pojo.org/) [1] [http://wiki.fasterxml.com/JacksonTreeModel](http://wiki.fasterxml.com/JacksonTreeModel)

</comment></comment><comment><USER9> So you happened to work on stuff that Java is good for, including subjectively good because you are familiar with Java and unfamiliar with Python (the web app) and randomly good because mistakes were made in the Python implementation but not in the Java implementation (the logcat tool), and you think this kind of work is "everything" and you spit judgements about "dynamic languages". Thank you for wasting my time.

</comment><comment><USER10> I like it! I have similar opinions on static vs. dynamic, Java vs Python or PLs in general - too many judgements are based on shallow first impressions or ease of getting started to the detriment of future maintenance.

Check out Scala :) Its a pretty complex language, but its the sweet spot between Python and Java i've been looking for.

<comment><USER11> If you're looking for a sweet spot you should try Go.

<comment><USER12> Go is a bitter spot in my book. All of the costs of a good type system like Scala's, but few of the benefits. (Go may well be better than Java, but why is that your point of comparison?)

<comment><USER11> this thread is about java vs python. go to me is a sweet sport between what I like about other strongly typed languages and what I like about python

<comment><USER12> The post you originally replied to was about Scala - if you're suggesting people use Go instead, we should compare Go to Scala.

</comment></comment></comment></comment></comment><comment><USER13> > I realized that as I accumulate knowledge about 3rd party Java libraries and > grow my own utility library, it becomes increasingly expensive to use any > other language. I have to figure those things out again and write them > again, instead of copying and pasting the code from the previous project.

Author is a douchebag

</comment><comment><USER14> > The advantages of C and C++ ... don't apply to my work. C# is nice but not > cross-platform enough.

> Scala is too complex. And other languages like D and Go are too new to bet > my work on.

So in the end you're talking about your work - the right language for the job.

Maybe Java is good for everything at your job, but not that good for most things at mine.

I prefer C++ over Java every single time.

Not because of the more power that it gives me, but because I'm experienced with it and I can get the job done.

I would use Javascript for a web application and Swift or Objective-C for an iOS app. And I can't imagine doing that with Java.

<comment><USER15> Even for iOS I still greatly prefer C++ as well over Objective-C or Swift.

</comment></comment><comment><USER16> You hit the spot with your article. I could not have said it better. Let's now wait till the NodeJS/Mongo-webapp-in-2hours Kids ruling HN, start to "bash" you to hell... But be sure: There are more than enough people out there who exactly know what you are saying and why.

<comment><USER17> Nodejs is in decline here on HN, judging by post frequency.

</comment></comment><comment><USER18> > The big argument against Java is that it's verbose.

I have a few others I'd prioritize over verbosity:

      - <USER2>
      - Dependency conflicts
      - Libraries that simply "fix" the language, i.e. Apache Commons, Google Guava

Disclaimer: your mileage may vary. This is simply my personal pet-peeve list.

<comment><USER19> Keeps getting better though, the example in the post:

Map<String,User> userIdMap = new HashMap<String,User>();

is now just:

Map<String,User> userIdMap = new HashMap<>();

and Java Generics already saves a ton of type casting as well as checks and corrections IMO.

<comment><USER20> Or use Lombok and get it even more concise!

val userIdMap = new HashMap<String,User>();

</comment></comment></comment><comment><USER21> The big pain point I see with languages such as Java is the deployment cost. Since the runtime is separate, you have to deal with the cost of lugging that around and installing it. When you have a larger scale system with lots of different Java programs, you can run into cross dependency issues over time as different programs require different versions of Java. Then there's also the jar files and the rest of it. At the lower scale end, its a tough sell to have to lug the jvm and a pile of jars over to a system just to run a single program.

Python can have similar issues, even with virtualenv.

For this reason, I tend to use Go these days. It completely avoids this cost. Also, unlike Java, any tools start up instantly and don't need to 'warm up'.

<comment><USER22> You can bundle a JRE with the application, no different than bundling libc.so or mscvrt.dll along a dynamically linked C application.

Or just buy one of the many AOT compilers available.

</comment></comment><comment><USER23> Why not do everything in C? The answer to that question is the answer to why not do everything in Java.

<comment><USER24> With the "small" caveat that C's design tradeoffs don't make it as good a general-purpose programming language as Java is, at least in 2016, no idea about 1995.

Not that I think Java should be used for everything.

<comment><USER22> In 1993 I was using Turbo Pascal 6.0 for systems programming in MS-DOS.

Short list of TP 6.0 features in 1993!

\- Real type safe enumerations

\- Proper strings and vectors

\- modules (units)

\- Fast compilation (seconds)

\- OOP

\- Type safe reference parameters

\- inline assembler, naked functions, absolute addresses, pointer manipulation functions, customizable memory allocator, overlays, procedure/function variables for systems programming tasks

C++ was already picking up steam in Windows and Mac OSes and with CORBA and DCOM for enterprise systems, the precursors to J2EE.

If it wasn't for the widespread of FOSS software based on UNIX and C culture, C would have slowly faded out.

<comment><USER24> In 1993, I was just 5 years old, but, when I encountered Delphi, around 2000, it was a very pleasant improvement over Microsoft's offerings:

(0) Compiler: Super-fast compilation times, unlike Visual C++; _and_ super- fast generated executables, unlike Visual Basic.

(1) Libraries: Borland's VCL was vastly more sophisticated than either Visual Basic's controls [underpowered toys] or Visual C++'s MFC [barely more usable than the Windows API itself].

(2) Core language: Of course, from Pascal, Delphi inherited a real module system [not C++'s `#ifndef` nonsense], real strings [not C++'s `std::string`, let alone MFC's `CString` nonsense] and real dynamically allocated arrays [not C's pointer nonsense, although C++'s templatized containers hadn't taken off yet]. And Delphi's object system was something a normal human being could actually hope to understand, unlike C++'s multiple virtual inheritance mess.

<comment><USER22> Yes, but then Borland had to screw it all up and now even the last compiler developers that go all back to Delphi early days have left the company.

</comment></comment></comment></comment></comment><comment><USER25> I can't use Java for most things I do. Can't create loadable libraries in Java (.so, .dll, .dylib, etc.). Can't write kernel drivers in Java. Impractical for most embedded applications.

Despite its many flaws, C/C++ is something you _can_ use everywhere. You can write same piece of code to run on practically all possible platforms. Any mobile device, desktop environment, microcontroller, it's even possible to compile it to run on a web browser.

Writing libraries in Java has one gigantic flaw: those libraries can only be used in JVM languages. Sure, you could use RPC or use JNI. But those solutions are often completely impractical.

Edit: Fixed last sentence to be as originally intended, added word "often".

<comment><USER12> > Can't create loadable libraries in Java (.so, .dll, .dylib, etc.)

You can do loadable plugins in Java very nicely. If you're using Java for everything then the calling code is also Java and it works great.

> Can't write kernel drivers in Java.

Not if you need them to run in-process in an existing non-Java kernel, no - but that goes back to "use the same language for everything you do". (And IME drivers rarely actually need to be in-kernel).

> Impractical for most embedded applications.

People told me this six years ago when I was developing for a low-power ARM, and when I actually tried it I found it was complete nonsense - a lot of embedded CPUs had more than enough power back then to run Java, and they've only got faster since.

> Despite its many flaws, C/C++ is something you can use everywhere. You can > write same piece of code to run on practically all possible platforms. Any > mobile device, desktop environment, microcontroller, it's even possible to > compile it to run on a web browser.

Sure, that's an advantage. But how often does it apply in practice? I'd far rather have low-defect-rate code that I can run on the platforms I care about than buggier code that can also run on some more obscure platforms.

> Sure, you could use RPC or use JNI. But those solutions are completely > impractical.

Depends entirely on what you're doing. For many use cases they're perfectly adequate.

<comment><USER25> > You can do loadable plugins in Java very nicely. If you're using Java for > everything then the calling code is also Java and it works great.

JVM classloader based libraries generate a lock-in effect. Those libraries you write are destined to be used almost exclusively from another JVM bytecode blob.

> People told me this six years ago when I was developing for a low-power ARM, > and when I actually tried it I found it was complete nonsense - a lot of > embedded CPUs had more than enough power back then to run Java, and they've > only got faster since.

I'd like to see how a Java based IRQ handler looks like. Or (gather/scatter) DMA and memory mapped I/O. Can Java have same realtime characteristics AND same or lower memory RAM/flash overhead as a C/C++ based solution? Cost per unit matters.

> ...I'd far rather have low-defect-rate code that I can run on the platforms > I care about than buggier code that can also run on some more obscure > platforms.

This is why I have high hopes in Rust. If you can't run on those "obscure" platforms you're required to run, then you need to write the code twice. How's that a good thing?

>> Sure, you could use RPC or use JNI. But those solutions are completely impractical.

> Depends entirely on what you're doing. For many use cases they're perfectly > adequate.

Well, now you're not just shipping a 200 kB dll, but also a JVM bridge of some sort (RPC or whatever), plus you need to vendor whole JRE in your installation package. 100 MB+, much higher runtime memory consumption and debugging challenges the bridge causes. How's this better?

<comment><USER12> > JVM classloader based libraries generate a lock-in effect. Those libraries > you write are destined to be used almost exclusively from another JVM > bytecode blob.

Sure, but it's the same for C, or any other platform. (I mean, many languages have FFIs into C libraries, but they generally have APIs that are not at all natural for that language).

> I'd like to see how a Java based IRQ handler looks like. Or (gather/scatter) > DMA and memory mapped I/O. Can Java have same realtime characteristics AND > same or lower memory RAM/flash overhead as a C/C++ based solution?

None of that sounds impossible, or even necessarily much harder than it is in C. It won't look much like mainstream idiomatic Java, and it will involve a lot more bookkeeping - but so would doing it in C.

> Cost per unit matters.

It does, but so do development time and defect rate.

> If you can't run on those "obscure" platforms you're required to run, then > you need to write the code twice. How's that a good thing?

I'm not advocating writing the code twice. If your code needs to run on a particular platform, you choose a language that you can find a way to make run on that platform. It's just that in my experience of the business circumstances (which are specific to my field, sure), "I might one day have to port this to a platform that you can't run Java on" is a long long way down the list of risk factors.

>Well, now you're not just shipping a 200 kB dll, but also a JVM bridge of some sort (RPC or whatever), plus you need to vendor whole JRE in your installation package. 100 MB+, much higher runtime memory consumption and debugging challenges the bridge causes. How's this better?

Those aspects are not better, but they're often an insignificant cost compared to the quality benefit you get from Java.

</comment></comment></comment></comment><comment><USER26> Funny how the author missing the point.

Few things:

\- you can write the example if, elif, etc. in any language that supports pattern matching (dynamic or static) safely, it has nothing to do with type systems at all

\- spinning up the JVM for CLI is still largely unsolved problem, this is why Python or Go is used for CLIs more

\- verbosity does not matter? Seriously, the most annoying part of Java is verbosity, that fosters a mindset that it does not matter how long is something. In that verbose code we can hide few things: bugs and more bugs.

\- not knowing anything else than Java and Python, even in 2014 is silly

I think there are many better solutions for the problems he mentioned in the article.

<comment><USER22> > spinning up the JVM for CLI is still largely unsolved problem

Only by those that ignore that there are quite a few Java AOT compilers to native code available.

The OpenJDK isn't the only option out there.

<comment><USER26> Thanks for pointing out. I am going to check this option for my CLI projects.

</comment></comment></comment><comment><USER27>
        # Map from user ID to User object.
        userIdMap = {}

Or as I would write this:

        userIdsToUserObjects = {}

Ctrl + n in vim completes this easily, so I don't care how long the name is.

I agree about the general point of the article, being strong in one language, but poor naming will bite you in any language. Comments are apologies for bad code: only write comments when you can't write better code.

<comment><USER28> I split my time between Java and less-typed languages, and what always annoys me is:

        messagesByUser = {}

Is the key a user id, username, a user object, some sort of stripped down user hash, what? What about the messages? If you try to cram all this information into the variable name then you've invented a perverse form of hungarian notation. And of course you lose all that precious type information every time you pass it off to a function.

Python is my go-to crutch for quickie projects that will never grow beyond a few hundred lines of code. Anything more complicated needs a typechecker. I only wish Java's was more robust.

<comment><USER29> What do you mean by more robust?

</comment></comment></comment><comment><USER30> Huge fan of Java, and at my company we actually do end up using Java for everything, but we are very cognizant of the fact that it is very specific to us, our deployment and runtime infrastructure. This article feels extremely opinionated and myopic to me. For instance,

> (python is) the wrong tool for code of any size written for pay, because > you're doing your employer a disservice

</comment><comment><USER31> Sounds like the author has never heard of or used Groovy before. There's very little you have to write in "pure" Java.

<comment><USER32> The author wrote:

> For these scripts I decided to use JavaScript, primarily because it's > included in Java 6 and secondarily because many people know it

Apache Groovy isn't included in Java, and there's many incompatibilities between it and Java (e.g. behavior of ==), so perhaps that's why it lost out to Javascript for scripting.

</comment></comment><comment><USER33>
      The author should start writing a game in java.

      The author should start writing a heavy matrix calculations in java.

      The author should start implementing a small command-line tool ine java (grep?)

All these use-cases is where Java fails miserably. Pick to right tool for the job. Is still the right answer.

<comment><USER34> > The author should start writing a game in java.

Minecraft did alright...

<comment><USER35> It did alright on PC. The problem I see there is that they had to reimplement it in C++/C# for other platforms, causing the updates to be way behind. Maybe I got that one wrong, but wasn't there some announcement that they'd switch to C++ in the PC version as well?

I'd like to add, though, that I don't generally see a problem with programming games in Java. I just prefer C++ for that, with portability being only one of the reasons.

<comment><USER29> In what ways cpp is portable and Java is not?

<comment><USER35> Usually, game consoles and handhelds don't have a JVM installed. I don't see the point in porting (parts of) a JVM to these platforms for your games, especially considering the little benefit (if any at all) that would offer.

<comment><USER36> Ironically to what you mention, Java was designed with embedded devices in mind and particularly popular as game deployment platform for old phones.

Virtually any cheap phone (non-smartphone) comes with Java ME available. Nowadays you find Android and the millions of Java-based games on the play store.

</comment></comment></comment></comment></comment></comment><comment><USER37> Java is the reason i stayed away from programming when i was a teenager.

Later I noticed that Java teams did not get things done quick.

My android phone stutters while playing music. (No it's not packed with apps, there is at least 200mb RAM free)

</comment><comment><USER36> I've been using Java since 2009 for everything from small projects to large scale data handling (hundreds of terabytes).

Really, Java is just a tool. Language is familiar to anyone, performs good and libraries exist for just about everything.

The only reason we don't use C is because we'd require end-users to correctly pick different binaries and because the IDE for developing C is quite a pain (don't want to start a fight here, it is just pain when compared to Java).

So, let the cool kids play with Ruby and Go. Some of us just need to get things done.

<comment><USER6> Does there exist "the IDE for C"? I know Eclipse for Java, but even that has a number of competitors.

</comment></comment><comment><USER38> If you're only going to use one language, I guess Java is a good candidate. I don't see why you should be using only one language, though. Besides; if you're only going for one language, I think there are better candidates than Java that provide net wins on the whole.

</comment><comment><USER39> Reading this is frustrating because I agree with a lot of what the author is saying (that using dynamic languages can speed up initial development but incur future technical debt), but I think that Java has a huge number of issues that prevent it from being a language I'd want to use for a lot of tasks. Here are some examples, although since I haven't written Java in a while I could be inaccurate on some of them:

\- the use of the Object type (surprisingly common)

\- No first-class functions or function types. New Java has lambdas but I'm not sure if it has function types or the ability to pass a class or instance method as a first-class value

\- No higher-order types (e.g. The type of a map function, let alone an fmap function, can't be written)

\- Need for frequent casting is both inelegant and a big source of errors

\- Classes are giant, heavyweight and deeply stateful, and tend to have deeply nested hierarchies

\- Class-scoped variable names (E.g. That don't require explicit 'this') are confusing, and for example don't make it clear whether a variable being referenced is a class variable, instance variable or local variable. Creating inner classes complicates things further, and inherited variables and methods are also opaque

\- creation of new types is a pain which promotes overuse of primitives (ints/strings/bools) over more expressive and safe types

\- polymorphism via interfaces isn't particularly expressive, for example AFAIK you can't make a function which takes two arguments of the same type unless you specify that type precisely

\- null pointers are rampant, and even considered idiomatic, for example during initialization

\- imperative style is forced on the user in a very strong way; for example no literals for array lists, maps etc, standard library overwhelmingly provides mutable data structures.

I could go on, but suffice it to say that the author's claim that the main complaint against Java is its verbosity is a red herring.

It's also a bit disappointing to see him dismiss languages like Scala (and presumably languages like Ocaml and Haskell, which he doesn't even mention) due to being "complex", which suggests to me that he hasn't fully grasped his own lesson that putting the time and effort into a safer, more expressive and more strongly typed language is worth the initial trade off in productivity. Although the author claims that once their code compiles it usually runs without errors, this has definitely not been my experience. Indeed my biggest argument against Java is that due to its imperative nature and inexpressive type system, it's not _that_ much safer than many dynamic languages, which makes it really hard for me to justify using it.

<comment><USER36> We had a large project that depended on a library written in Haskell. One day the developer for that library quit his job. We sincerely couldn't find another Haskell developer, had to re-write the library in Java.

Heck, I've tried hard to understand Haskell. Simply don't understand why someone goes through the effort of using that exotic language. The old library was taking 2 minutes to process input, the re-written version in Java took 3 seconds.

Just keep it simple, use Java.

<comment><USER24> There are very good reasons for using Java: portability, libraries and the JVM's performance. But simplicity really isn't amongst them. Even Featherweight Java (a carefully selected subset of Java for the purpose of proving theorems about it) is full of tricky details.

That being said, yeah, Haskell's learning curve is quite steep, and writing high-performance code in it is kind of a black art.

</comment></comment></comment><comment><USER40> don't you get tired of NPEs and checking everything with possibility that it can be null? Scala solves it using Options.

There are lot more, but this is one which irritates me the most.

<comment><USER41> Java 8 (or Guava for older versions) supports "Optional".

It is good practice for methods to return an Optional instead of null if you can't guarantee a non null value.

</comment></comment><comment><USER42> It's apparent that a lot of developers have no idea of programming beyond OOP. Multi-paradigm ideas and CTM especially don't seem to be widespread.

</comment><comment><USER43> Honestly, Java 8 has a ton of new features that give it a very functional feel if one desires. Check out the new Stream api and map(), forEach() functions

</comment><comment><USER44> nice article. I think you are on point and see the trend of java usage. Java as a general purpose language. But cant never be compared in usage as C/C++. May be in the near future Google Golang will be compared and competitive with Java

</comment><comment><USER45> I'm not a fan of Java, but I am a fan ofJVM. You don't have to use Java to get the most of JVM, you know. Especially since Kotlin is out, but it was true for a long time with other languages.

</comment><comment><USER46> This has been posted before ("2014" in the title would be nice) [https://news.ycombinator.com/item?id=8677556](https://news.ycombinator.com/item?id=8677556)

</comment><comment><USER47> exactly

</comment><comment><USER48> What an idiot!

Different tasks require _different_ languages. It's not possible to pick just one. Most people gave this moron the right answer, and yet he failed to comprehend it.

And this pathetic cretin clearly never ever seen a truly expressive language. Likely, he never seen anything besides his pathetic Java and stupid Python.</comment>


TED 2004, Kunstler Dissects Suburbia - <AUTHOR> http://www.ted.com/index.php/talks/james_howard_kunstler_dissects_suburbia.html <comment><USER3> Yawn.

Yet another "I don't like suburbs and/or people who do like them therefore suburbs are evil and/or said people are cretins." screed.

If a puritan is someone who is mad because someone, somewhere is having fun, what is the word for such people?

Note that he's pining for a past that (1) didn't really exist and (2) to the extent that it existed, people (mostly) abandoned it for suburbia.

There are still some instances and he's welcome to live in one. He's even welcome to build more, with his money. (If he's right, folks will flock to them. If he's wrong, well, shouldn't he take the hit?) The folks in suburbia won't mind.

And that's what makes them better than he is. They don't get pushed out of shape when someone has different preferences.

<comment><USER4> 1) That past did really exist.

There was towns/cities, and rural land (with houses miles apart). Suburbia tried to be a hybrid, something between country living and city living, but failed at doing both miserably.

There are other social factors. At least, here in CA, there is a huge adversity against building more density, (the NIMBY effect). A vocal group of people are opposed to tall building/building anything close to their backyard, creating a lack of density, and artificially limiting the free market and real town-higher-density formation, at a reasonable price.

<comment><USER3> > 1) That past did really exist.

I'm referring to the delusions that he has about the "grand doings" of folks in town squares. (I do like the town squares that have an artillery piece set up by the local VFW chapter but I don't think that that's what he has in mind.)

> Suburbia tried to be a hybrid, something between country living and city > living, but failed at doing both miserably.

Failed according to whom? Not the folks who pick suburbia over towns/cities and rural, which are still available for those who want to live in them.

> At least, here in CA, there is a huge adversity against building more > density, (the NIMBY effect).

It's not NIMBY to point out that high density is often a disaster.

Besides - CA is a big and mostly empty state. There are plenty of places where you can build high density that is no where near someone's back yard.

And, it's fair to point out that CA also has govt restrictions that significantly reduce rural living.

<comment><USER5> Many people did not choose the suburbs freely. They were driven out of the cities by incredibly high levels of violence. The typical American city now has a homicide rate 10X to 100X that of a Victorian era European city. That's not a typo, 1990's DC had a homicide rate _100X_ that of London in 1900.

<comment><USER3> > The typical American city now has a homicide rate 10X to 100X that of a > Victorian era European city. That's not a typo, 1990's DC had a homicide > rate 100X that of London in 1900.

No, it's not a typo, it's an error. DC is not a typical American city and it takes a considerable amount of ignorance (or ?) to claim that it is.

The comparison with the Victorian era is somewhat odd. DC's crime rate in the 90s was considerably higher than it is now or than it was in the Victorian era. DC was proportionally less populated during the Victorian era than it was in the 90s. (It may have become somewhat smaller since the 90s.)

Yes, US cities became more violent as they grew relative to suburbs and small towns. The big increases in violence happened in the 60s, when the cities were still growing. The shrinkage, where it has occurred, is very recent, since the mid 90s (and violence started dropping soon after).

That said, violence in American cities that have significant violence is highly localized in areas populated by people who, for the most part, can't afford to move out. (That's not to say that folks don't move because of a fear of violence.)

Note that folks who leave cities don't have to move to suburbs. They can move to small towns. They don't. (Suburb isn't a "size", it's a kind of community design. Big cities used to be surrounded by little cities. Those cities were turned into suburbs by folks who prefered that.)

In fact, small towns lost population to suburbs and cities.

FWIW, DC's peak murder rate was less than 1/4th of the murder rate of East Palo Alto during the same time. EPA is a suburb which borders Palo Alto (CA) and Menlo Park. Those two suburbs have a murder between them every 5-7 years. (EPA's murder rate has dropped a lot since its peak and may be under DC's now.)

<comment><USER6> A trick I picked up from Moldbug is to try to look at our times through the eyes of someone living 100 years ago or 100 years in the future. It gives you perspective and helps you escape the narrow view of people immersed in our present squabbles and concerns.

I think the fact that someone living 100 years ago would view our times as unspeakably violent is an interesting fact (and that is even including a drop in crime in most places since the 70s).

<comment><USER3> While it's an interesting idea, in this case it isn't clear what the value is as the typical risk of violence hasn't changed significantly.

The numbers are such that changes in tiny subpopulations have a big effect on the averages. US cities are not "unspeakably violent" - certain blocks or buildings are.

FWIW, the murder drop didn't start until the mid 90s.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Suburbs are a bad design compromise, like an weird all-in-one tool that tries to do 10 things and ends up doing nothing well. The dream was to combine the convenience, excitement and diversity of cities with a relaxed, nature-centric country living. The result unfortunately combined the worst of both - mind- numbing conformity and boredom, isolated unwalkable neighbourhoods and hardly a drop of much nature anywhere.

I present Markham, a very typical suburb (exurbs are even worse) of Toronto: [http://upload.wikimedia.org/wikipedia/commons/thumb/1/14/Mar...](http://upload.wikimedia.org/wikipedia/commons/thumb/1/14/Markham- suburbs.id.jpg.jpg/400px-Markham-suburbs.id.jpg.jpg)

As with other things, I'd take the UNIX philosophy here - small, powerful, well-designed tools that can be combined. I'd take a small apartment in the downtown and a small cottage in the middle of nowhere rather than one of the houses above.

<comment><USER3> > As with other things, I'd take the UNIX philosophy here - small, powerful, > well-designed tools that can be combined. I'd take a small apartment in the > downtown and a small cottage in the middle of nowhere rather than one of the > houses above.

Feel free - suburb folks aren't going to criticise your preferences.

However, many folks can't afford both of those things.

<comment><USER7> A friend of mine's parents lived in the neighbourhood in that picture and they recently sold their house for close to $400000, which can certainly afford you both a decent apartment and a small place in the woods.

<comment><USER8> _$400000 [...] can [...] afford you both a decent apartment and a small place in the woods._

$400,000 for an apartment alone would be pretty cheap in New York City. [http://blogs.wsj.com/developments/2009/01/30/new-york- city-r...](http://blogs.wsj.com/developments/2009/01/30/new-york-city-real- estate-in-dramatic-slowdown-new-report-says)

 _From the first quarter, the average price of condos and co-ops fell 11.5%, hitting $1.37 million in the fourth quarter. The median price for condos and co-ops meanwhile, peaked in the second quarter at $920,000 before plunging 17.8% to $757,000 in the fourth quarter._

</comment></comment></comment></comment><comment><USER9> His talk certainly is passionate, but there's not much evidence here. In particular, I see no attempt to grapple with how unnatural cities are. Humans evolved in small hunter-gatherer bands on the African savannah. Therefore dense urban cores are needed to create a sense of place? _Non sequitur._

<comment><USER4> I guess you ignore the last 20,000 years of humanity. Yes, maybe it wasn't cities where people lived; but it was small towns, villages, or caves. Humans have lived bunched up close together in groups for millenia. This isolation that the suburbs inflicts on us is just un-natural.

There was a great story in Discovery channel, on how immigrants from Germany, that moved in the USA mid-west, suffered heavily from depression. People were used living in towns and villages, close to family, friends, and support. Now, a lot of these german families, bought a lot of land in the middle of rural midwest, where everything was miles (and hours) of walk to the next house or town. People felt isolated, and women suffered the most.

In europe, houses are usually in hills, grouped together, with a town/village center, and the farmed land is outside the town.

<comment><USER8> _In europe, houses are usually in hills, grouped together, with a town/village center, and the farmed land is outside the town._

And there are/were no farmers? U.S. urban population share, 1800-2000: <http://www.demographia.com/db-usrur1800.htm>

      1800   6.1%
      1850  15.3%
      1900  39.7%
      1950  59.0%
      2000  79.0%

<http://www.ers.usda.gov/publications/eib3/eib3.htm>

_Early 20th century agriculture was labor intensive, and it took place on a large number of small, diversified farms in rural areas where more than half of the U.S. population lived. These farms employed close to half of the U.S. workforce_

</comment></comment></comment><comment><AUTHOR> Architecture and urban planning are very close to software IMHO, being about form and function and complex systems. This one is a brilliant talk on that subject.

<comment><AUTHOR> BTW no one gets spat on and he doesn't say how Twitter will make loads of cash or why <some big company> will die, but it's really really a great talk. Really. Please watch it. I promise it's a good use of your next 20 minutes. You don't even have to upmod it. I will donate any karma points to charity.

<comment><USER8> _it's really really a great talk. Really._

He implies that Main Street shops are important, and states that the world is running out of cheap oil. Do you believe these things?

<comment><AUTHOR> Yeah, I might have been a little excited when posting this, and a bit frustrated at the type of material we've been seeing here recently.

To your question, 3 things:

1\. Even if you completely disagree with the message, Kunstler's delivery alone is worth the 20 minutes.

2\. His urban planning arguments go a bit further than "Main Street shops are important". In my view the suburbs are simply a bad design choice - <USER2> explains how they came to be, what are their inherent problems, and why this touches many issues of our society & life quality, well beyond energy consumption.

3\. As for the world running out of cheap oil - I'm no expert, but as I understand oil is found in nature rather than produced, so by definition its total amount decreases when use it. Even if we have enough oil to last thousands of years at affordable prices, the political and environmental implications of using it still stand.

<comment><USER3> > 1\. Even if you completely disagree with the message, Kunstler's delivery > alone is worth the 20 minutes.

If that's the standard, let's get Robin Williams, or Brando, reading the phone book, the Boston phone book if class is relevant.

> In my view the suburbs are simply a bad design choice - he explains how they > came to be, what are their inherent problems, and why this touches many > issues of our society & life quality, well beyond energy consumption.

He doesn't actually explain so much as try to justify his combination of disdain, digust, and pity for folks who live in them, folks who don't have the good sense to flee in horror.

<comment><AUTHOR> >If that's the standard, let's get Robin Williams, or Brando, reading the phone book

Ultimately it's vote-based site, so it has as much chance as anything. Standard-wise, in a week where the top stories were about Arrington getting spat in the face, I honestly don't think this submission is lowering the average. But, again, it's a matter of taste.

<comment><USER3> I didn't say that it lowered the standard. I suggested that "great delivery" is something of a cop-out.

I doubt that you posted thinking thinking "great delivery". I suspect that you posted thinking "great message".

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> One of my all time TED favourites.

<comment><USER8> Transcript here: <http://blog.ted.com/2007/04/james_howard_ku_1.php#more></comment></comment>


See if your passwords are discoverable using Google - <AUTHOR> http://utilitymill.com/utility/Goog_Your_Hash

<comment><USER2> Am I missing something? This doesn't work if the hash is salted. Are there people who use md5 without salting?

Oh, sorry, silly me, of course there are.

Anyway, if you want to try this without giving your password to some random person on the web, here's some code:

        # python
        >>> import md5
        >>> md5.new('Anthony').hexdigest()
        '20f1aeb7819d7858684c898d1e98c1bb'

I'm sure you could all have written that, but I've saved you the effort.

<comment><USER3>
      # python
      >>> import hashlib
      >>> hashlib.md5('Anthony').hexdigest()

In later versions of Python (md5 module got killed)

Your right about the salting. I bet a google for the actual password would be more useful / worrying

<comment><USER2> Thanks</comment></comment></comment>


Custom HTML dropdown with jQuery - <AUTHOR> http://alexsblog.org/2014/08/21/custom-html-dropdown-with-jquery/

<comment><USER2> Also, you claim that you designed Tag Heuer's website to be mobile first. This is a complete fabrication plus their site is terrible on a mobile.

</comment><comment><USER2> More bad advice from this guy.

STOP POLLUTING THE GLOBAL CSS NAMESPACE.</comment>


MVP without code: the toolkit - <AUTHOR> https://medium.com/@AndreyAzimov/list-of-the-tools-to-make-web-mvp-without-coding-or-just-a-little-bit-f2ce18d0effa <comment><AUTHOR> Hi HN,

Many people can't execute on their ideas because they can't code. I was in the same situation. I was procrastinating to learn to code and therefore couldn't test and validate any of my ideas.

So, I made a list of tools that could help me build an MVP fast. That way I could validate if people needed (and would pay for my idea or not.

Here's my toolkit and I'm sharing it here because it's probably useful for some of you too!</comment>


Koders: Search Over 3 Million Lines of Open Source Code Around the Web - <AUTHOR> http://koders.com/

<comment><USER2> Not ready for prime-time. Not even _close_. I wonder if they ever tested their query engine, it's hardly useful. No quotes? Queries ignore important characters like "_"? No roll-up of identical results? It also misses methods in its "(num) methods" results (or throws them into a totally different order) in several languages, and has some crazy match-ordering behavior.

An example: I searched for "helper_method" (a Rails method), and found these (bracketed what was bolded as the search hits):

      class.Scheduler.php:
      // Holds [method]s for ...
      Editor.py:
      from Models import Editor[Helper], Controllers
      AutShare.h:
      // IShare [method]s

and _then_ I get over a dozen literally-identical files called "helper_method_example.rb" (tests with these results:

      require File.dirname(__FILE__) + '/spec_[helper]'

      describe "a context with [helper] a [method]" do
        def [helper_method]

      and the rest of the files contained this after those lines:
          "received call"
        end

        it "should make that method available to specs" do
          helper_method.should == "received call"
        end
      end

There are about three pages of results like that, or the same wrapped in a `module HelperMethodExample`, with identical contents otherwise.

<comment><USER3> It's been like that for _years_. Can't see it improving, now that they're going to have a monopoly on the market.

I will happily pay money to anybody who can build a code search service that is actually functional.

<comment><USER4> Would you be interested in paying per search, paying for access or just general donations based on your experience?

I ask as I am doing this but have not considered a business model for it as yet.

<comment><USER2> Micropayments suck, currently. If that ever changes, I'd be in favor of both per-search and access; until then, maybe a freemium setup? It'd be hard to hook programmers without letting them try it, and you can experiment with more computationally-expensive searches (regex, AST, etc) without letting random users tank your system.

I wonder if you could even build a market off open-sourcing the engine, thus allowing people to improve it for you, and run a paid service that searches GitHub, Google, etc for results. Free accounts for contributors that fix bugs or provide speed / feature improvements?

I dunno, just throwing ideas out while they're percolating, I haven't given them a whole lot of thought.

<comment><USER4> Yes I don't like micro-payments myself either. Freemium is my current plan.

I had also considered the GitHub model. I will be making portions free- software as the whole thing is built off it anyway.

If nothing else I will be going free for quite a while as I believe that there should be a code search repository available online.

For the record it will live at <http://searchco.de/> I was in the middle of pushing out my second release when Google made its announcement so its looking a little worn at the moment.

</comment></comment></comment></comment></comment><comment><USER5> Thank you for your interest and comments. The Koders team is in the process of re-implementing the code behind Koders.com. Please don't draw too many conclusions about the future functionality of Koders by experimenting with the current one. Here's some feedback on a few of the comments.

Why we are moving from .NET to Java technology is easily addressed: the .NET implementation was built by a company we acquired; we are a Java shop. We can invest in and expand the code search engine and site more effectively using technologies familiar to our developers.

We haven't yet upgraded Koders to the latest software version. But we've done quite a lot of work beyond just a vanilla language port. For example, search results will be filterable to a single (or multiple) projects as mentioned in one of the comments and by language(s) as mentioned in another. We have noted the feedback regarding duplicate results, underscores, quoted searches, etc. and will put these in our backlog.

In preparation for the debut of the new Koders, we are currently doing scalability testing to ensure that performance of the re-launched site is up to par. We will index a lot more code than is currently there. Our test instance is now running with more than 7 billion LOCs in-house, about 2x the size of the current Koders.com index.

If you'd like to download and try the Java-based implementation that will be deployed to power the new Koders, it's at [http://www.blackducksoftware.com/java_implementation_downloa...](http://www.blackducksoftware.com/java_implementation_download/) .

We look forward to making this a great code search resource. Again, thank you for your interest!!

</comment><comment><USER6> Searched for "i=i+1" and got many unrelated results. Tried "new Tree", got results for "Tree". Realised that quotes do not work. Not sure what use the search would be for me.

"this sucks" kinda works. :)

<comment><USER7> Even more problematic, I tried searching for zmq_init, to see if it would be useful for finding how other people had used a specific API function, and it seems like it treats an underscore just like a space. Not one result on the first page contains "zmq_init" in the summary, it just matched "zmq" by itself for all of them. I'm sure some of them do contain zmq_init in the complete sources, but that's not what it's matching, and for a less common API function, it seems likely a regular google search would be more productive than this.

Hopefully they can fix that, just having a bunch of source code indexed, or even available to be indexed if it turns out the current indexing is no good, is a good first step. But it seems like it needs work right now.

</comment></comment><comment><USER8> "We just finished migrating the entire code base from .NET to Java"

Interesting. I'd love to hear more about the rationale behind this move. I can understand moving from .NET to a dynamic or functional programming language, but why move to what is effectively a peer?

<comment><USER9> I'm not part of the team but a qualified guess would be the hosting and/or license fees.

And in either case, moving from .NET to Java would seem more rational than moving to a new functional language because they are so similar and wont require as much work. I wouldn't be surprised if there even are automatic converters.

</comment></comment><comment><USER4> I imagine this is on the front page due to Google code search going away. Since i'm currently working on a replacement this seems like as good a place as any to ask people what they are looking for. My list of required launch features are,

1\. Regex search support. 2\. Browse full file. 3\. Filter search to single project.

This is based on what I observed on the Reddit and HN discussions when it was announced. I can see from the below some people would like grouping of identical results which is fairly easy to add so no worries there.

Any other thoughts?

<comment><USER10> Index by symbols. ctags would be a fine start.

<comment><USER4> I have been wondering if that's actually required. Take for example the following search

print_r

During the indexing process it would take print and r as separate words. Any search for "print_r" should break up the same way, and assuming the search is phrase heavy return any document with "print_r" near the top anyway.

</comment></comment></comment><comment><USER11> I think you mean billion, not million.

</comment><comment><USER12> How about this? <http://searchco.de/> (I'm not affiliated)

<comment><USER4> Thanks for the link (I am the author). No code search in there yet, just API and snippets.

I will soon have code search as per Google Code Search. I just need to finish pulling down several thousand more repos before pushing it live.

For the moment however look at the following,

<http://codase.com/> <http://opensearch.krugle.org/></comment></comment>


Ask HN: Do you have a public guide to working with you? - <AUTHOR> I'm reading Elad Gil's "High Growth Handbook" and the interview with Stripe's COO Claire Hughes Johnson. In that chapter they mention the Google engineer Urs Holzle who wrote "A Guide To Urs" about the interaction approaches that work best for him [1].
"The idea is that if you needed to interact with him or you wanted things from him, you knew what to do. And apparently that really helped streamline how people worked with him."
Claire, wrote a similar document called "Working with Claire" (the full text is included in the book).
She mentions that it "spread quickly through the organization ... and now a lot of people at Stripe have written their own guides themselves."
I think this is a _fantastic_ idea -- I've worked long enough to recognize that I have my own quirks and it's better that everyone knows up front how to best get something from me and what I expect from them.
I've started to a draft of "Working with Nate", but I'd like to know: do you have a document like this you're willing to share? (Perhaps some Stripes would like to share their own?)
I'd love to read other people's examples of how they think of themselves and their work, and how they best interact with others.
[1]: https://www.quora.com/Is-there-a-public-version-of-Urs-Holzles-personal-user-manual-If-so-where-can-I-find-it <comment><USER2> I am also Looking for this guide for working with Urs to learn from. below is Working with Claire Guide. [http://growth.eladgil.com/book/the-role-of-the- ceo/insights-...](http://growth.eladgil.com/book/the-role-of-the-ceo/insights- working-with-claire/)</comment>


Show HN: HNText – Top stories daily cleaned for readability - <AUTHOR> http://www.hntext.com#2014-10-14 <comment><USER2> Three criticisms, in descending order of importance:

1) The length of these excerpts goes a bit beyond what is typically considered fair use. You're pretty much reprinting the entire articles. So you may run into copyright infringement claims.

2) It looks like you're scraping the content, and your scraper isn't up to the task. One of the excerpts reads: "Your email has been sent. An error has occured and your email has not been sent. Please try again. • You can't enter more than 20 emails. • You must enter the verification code below to send. • Invalid entry: Please type the verification code again."

3) Borrowing the multicolumn text layout predominant in print is great when the columns all fit on the screen, but I found myself having to constantly scroll up-down-up-down-up-down to read these.

So, in sum, you're only presenting the top stories successfully some of the time; when you are successful, you're infringing on copyrights; and the layout is not actually cleaned for readability.

</comment><comment><USER3> Interesting idea, [http://www.hntext.com/#543c2fd8ba03530200000008](http://www.hntext.com/#543c2fd8ba03530200000008) has "broken" special characters though.

<comment><USER4> I'm having this problem as well. I took a screenshot just in case op sees it normally and doesn't know what we're talking about: [http://i.imgur.com/0GlHrlc.png](http://i.imgur.com/0GlHrlc.png)

Aside from that, looks like an interesting service, though!

</comment></comment><comment><USER5> Speaking of readability, have you heard of [https://www.readability.com/](https://www.readability.com/) ? Works wonders on all but the most stubborn webpages.

<comment><USER6> [http://www.diffbot.com/](http://www.diffbot.com/) offers this service as an API

</comment></comment><comment><USER7> This is absolutely horrible and shows complete lack of respect for copyright. It should be taken down immediately.

<comment><USER8> This isn't qualitatively different than readability or numerous other extensions. The only difference is he is doing it server side.

<comment><USER9> > The only difference is he is doing it server side

Ah, but from a legal perspective, this makes all the difference. It is, I'm sorry to say, copyright infringement and goes beyond what fair use permits.

<comment><USER8> Yes I understand that, I said it isn't _qualitatively_ different. If the web page somehow distributed javascript that would do the same thing client side, the website would appear exactly the same, yet would be perfectly legal.

The comment I was replying to wasn't arguing that it was illegal, but actually wrong and "lacking respect". I was just pointing out that he should have the same opinion towards things like readability.

Also I think readability did do it server side, and so do other things like RSS readers.

<comment><USER9> Without taking a position on Readability, there's more to the calculation than client side vs. server side. For more see my post here: [https://news.ycombinator.com/item?id=8455648](https://news.ycombinator.com/item?id=8455648)

</comment></comment></comment></comment></comment><comment><USER10> My first thought was how these articles were in no way more readable than the originals.

Does anyone prefer a multi-column layout?

<comment><USER11> Multicolumn is fine as long as the vertical height is less than the browser window. For long text this is really hard to make work in the browser unless you take over the pagination with javascript. This is not a good example of using multicolumn text.

</comment></comment><comment><USER12> For those wondering about the usefulness of this. It should be great for those who commute on the tube or somewhere else where there is no phone signal. This lets you load a single lightweight page before boarding, and then be able to browse hn easily. Would be ideal if it was sent out in an email though so you don't have to remember to load the page every time.

</comment><comment><USER13> [http://getpocket.com](http://getpocket.com) do this "cleanse for readability" to the saved links but I think they got closer to readable than you did. If you get to avoid copyright infringement, and get rid of this multi-column layout, I'm sure it would be better.

</comment><comment><USER14> The generated podcast is also presumably a violation of copyright (i.e. it creates a derivative work).

</comment><comment><USER15> Neat idea, I'm sure you are violating fair use - but it is a neat little mashup of scrapers and text-to-speech.

I won't ever use it though. I have a bookmark for cleaning up pages.

</comment><comment><USER16> I think a script that does this, but puts in your Pocket with an HN label would be even better - you keep track of what's read and what's not as a bonus.

</comment><comment><USER17> Cleaned for readability, eh? - [http://i.imgur.com/faqQrQi.png](http://i.imgur.com/faqQrQi.png)</comment>


Libreboot X200 laptop now FSF-certified to respect your freedom - <AUTHOR> http://www.fsf.org/news/libreboot-x200-laptop-now-fsf-certified-to-respect-your-freedom

<comment><USER2> Did they somehow manage to get the free replacement for the firmware in the Ethernet chip, too?</comment>


Meet the new front page of the internet:fresh,open and personalized in your way - <AUTHOR> https://www.prisvo.com/+runners <comment><USER2> Sign up? I think not.

</comment><comment><USER3> WTF is this and why should I sign up if the site doesn't tell me anything about itself?

<comment><AUTHOR> Is not WTF. We are trying to improve.</comment></comment>


Martin Odersky on Scala and Clojure - <AUTHOR> http://blog.fogus.me/2010/08/06/martinodersky-take5-tolist/

<comment><USER2> Interesting interview, especially the comment about any industrial success of a functional language helps other functional languages.

I spent a year trying to decide whether Clojure or Scala would be my "new, better Java or JVM language." Clojure won, for me, because I sometimes get hired to do Lisp development, so some Clojure work has also come my way. Unfortunately, I have never had any consulting offers to work with Scala so the consulting market made the decision for me on which language to put more effort in learning.

<comment><USER3> I find Indeed.com to be a fairly objective indicator as to the job market for a particular language:

[http://www.indeed.com/jobtrends?q=scala+developer,+clojure+d...](http://www.indeed.com/jobtrends?q=scala+developer,+clojure+developer&l=)

<comment><USER4> [http://www.indeed.com/jobtrends?q=scala+developer%2C+clojure...](http://www.indeed.com/jobtrends?q=scala+developer%2C+clojure+developer%2C+java+developer&l=)

ouch.

<comment><USER5> Ah, but it's all relative, :)

[http://www.indeed.com/jobtrends?q=scala+developer%2C+clojure...](http://www.indeed.com/jobtrends?q=scala+developer%2C+clojure+developer%2C+java+developer&l=&relative=1)

<comment><USER4> There's lies, damned lies and statistics...

<comment><USER6> Amazingly, Java is still growing [http://www.indeed.com/jobtrends?q=+java+developer&l=&...](http://www.indeed.com/jobtrends?q=+java+developer&l=&relative=1)

This is probably acting as a proxy for growth in programming jobs and IT in general.

</comment></comment></comment></comment></comment></comment><comment><USER7> I really enjoy both languages so it's great to hear an affirmation of this from Martin. Scala and Clojure compete only in the sense that I only have enough free time to really dig into one or the other but the approaches are different enough that they can certainly co-exist.

<comment><USER8> I feel the same way about Ruby and Python.

<comment><USER4> I'm not sure that that is a valid side-by-side, python by no means is a success because of Django but I'm fairly sure that lots of people would have never used Ruby if it weren't for rails.

<comment><USER7> Popularity is a totally orthogonal issue. In any case, like Scala and Clojure, both languages are now reasonable choices for new development or study.

</comment></comment></comment></comment><comment><USER9> I especially liked the joke at the end. It came through as playful dig at one of the key design differences between the languages and was answered in that spirit. Kudos to both of them.

</comment><comment><USER10> Looks like we'd better add Dr. Odersky as another possibility for the mystery foreword in Joy of Clojure.

</comment><comment><USER11> It is really great we have this diversity on languages nowadays, and that important aspects such functional programming, dsl support, and readability is being considered more seriously by both language designers and developers alike.

 _Vive la différence!_</comment>


Mozilla coders join Palm, apparently jabbing Apple  - <AUTHOR> http://news.cnet.com/8301-30685_3-10361764-264.html?tag=newsEditorsPicksArea.0

<comment><USER2> A couple of observations.

One, Apple originally proposed that developers write web-based apps for the iPhone, because there was no SDK. There was no explosion of apps that day. The explosion came with the SDK and the App Store.

Two, games are a _huge_ percentage of apps, and while some games can run in a browser, many of the best will not. It's a combination of processing power, control, and "bare metal" (like it or not, a browser is a huge abstraction layer that is not good for games).

So I don't doubt they can create _some_ app market by pushing in this direction, but aren't they missing the clues that have been left for them already?</comment>


Is android the next big gaming platform? - <AUTHOR>

With the kickstarter success of Ouya and Gamestick and the announcement of project shield from Nvidia, is android set to become the next big gaming platform? <comment><USER2> No.

Android is powerful and technologically able to be the next big gaming platform, but unfortunately it remains too fragmented.

When someone writes a Nintendo 3DS game for example they have to develop the game and then test/QA it against a very small selection of systems (four or five).

When someone does the same thing on Android they have to test it against several thousand devices, and if they miss any one device people will leave negative reviews and it might sink the whole project (see every EA game on Android ever).

Plus, Android as a gaming device has some control issues to overcome. There are only certain kind of games that work well using on-screen controls and even if a sub-set of the market has a physical controller you cannot presume that in the design.

Essentially the only way "Android" could become a good gaming platform is with a massive lock-down. You'd have to develop a device, with its own market, and physical controls. Then lock out every app that isn't working within that strict ecosystem. Kind of like the "Valve Box."

But once you do that it isn't really the "Android" ecosystem any more, since instead you have now developed your own ecosystem with certain assured characteristics (e.g. hardware power, 3D support, physical controllers, etc).

</comment><comment><USER3> The key element seems to be the embrace of game controllers by android, e.g. you can already plug'n'play with XBox and Playstation controllers:

[http://www.pocketgamer.co.uk/feature.asp?t=how_to&c=4522...](http://www.pocketgamer.co.uk/feature.asp?t=how_to&c=45227)

which apple seems to be fighting, even preventing iOS specific controllers if they're not tied to specifc apps:

[http://kotaku.com/5947934/the-first-apple+approved-ipad- ipho...](http://kotaku.com/5947934/the-first-apple+approved-ipad-iphone-and- ipod-game-pad-is-one-small-step-for-ios-gaming)

The controller market is a little bit, ahem, fragmented, but generally seems to be converging on the PS3 style since it allows the double analogue sticks to operate pinch, zoom, rotate and other two finger gestures. Compare Archos tablet with gaming controls, their tv-box with gaming controls, and the new Nvidia portable console:

[http://www.archos.com/img/products/gamepad/dwd/Ambience- corn...](http://www.archos.com/img/products/gamepad/dwd/Ambience- corner_HD_01.jpg)

[http://media.begeek.fr/2013/01/ARCHOS_TV_Connect_TV_touch_re...](http://media.begeek.fr/2013/01/ARCHOS_TV_Connect_TV_touch_remote_nowrmk.jpg)

[http://i0.wp.com/hypebeast.com/image/2013/01/nvidia- unveils-...](http://i0.wp.com/hypebeast.com/image/2013/01/nvidia-unveils- tegra-4-powered-android-portable-gaming-console-project-shield-1.jpg?w=1410)

Though interestingly Nyko only just released a couple of handsets build for Nvidia chips and in collaboration with Nvidia that use the XBox 360 layout of having the dpad as a secondary to the analogue.

</comment><comment><USER4> I didn't used to think so, but then I got my Nexus 7 paired up with my iControlpad gamepad, and I really honestly cannot think of a better setup for gaming fun .. its just such a neat package. So, I've bought quite a few Android games lately .. maybe I'm not representative, but it certainly feels to me that this could be a viable platform, if properly embraced.

</comment><comment><USER5> It is already a big gaming platform, you can't ignore such a huge market. Unfortunately, high quality games are not there yet, but it gives a bit more time for the smaller studios to make something fresh.

<comment><USER6> is it worth to spend 10s of milions of dollars on high quality game for android ecosystem?

</comment></comment><comment><USER7> No.</comment>


What is the flap about chlorinated chicken? (2018) - <AUTHOR> https://www.economist.com/the-economist-explains/2018/11/13/what-is-the-flap-about-chlorinated-chicken <comment><USER2> Shorter Economist: "Are you _sure_ you're eating the economically-efficient amount of industrial waste?"</comment>