OxyContin goes global – "We're only just getting started" - <AUTHOR> http://www.latimes.com/projects/la-me-oxycontin-part3/ <comment><USER2> Sadly, a common pattern to export bad product and business methods to other, often more vulnerable countries.

This is a follow up to LA Times' great reporting on OxyContin back in May, which uncovered how opioid addiction has exploded due to false representation of oxycontin's effectiveness, which was done to justify the more expensive patented time release mechanism of their pill. [http://www.latimes.com/projects/oxycontin- part1/](http://www.latimes.com/projects/oxycontin-part1/)

</comment><comment><USER3> These people are ghouls.

</comment><comment><USER4> Let's hope other governments and medical systems are less complicit in mass murder than the US</comment>


Bechdel test - <AUTHOR> https://en.wikipedia.org/wiki/Bechdel_test <comment><USER2> Is there a bot that posts this to HN once a month?</comment>


Tristan Nitot,former Mozilla Europe President, Joins Cozy Cloud Team - <AUTHOR> http://blog.cozycloud.cc/news/2015/03/11/tristan-nitot-joins-the-cozy-crew/

<comment><USER2> didn't hear about Cozy before, i guess it is free software?

<comment><AUTHOR> AGPLv3, self-hosted solution.</comment></comment>


Universal Basic Income Will Reduce Our Fear of Failure - <AUTHOR> https://futurism.com/universal-basic-income-will-reduce-our-fear-of-failure/ <comment><USER2> Basic Income is Utopianism. It's appeal is a populist reaction to the uncertain times we live in. No different from rightwing populism such as Trump.

The other problem is its association with Socialism, which has been democratically rejected by the vast majority of countries.

So it really doesn't have much going for it.

The loudest advocates say that we must do something because technology will eat all the jobs, but that is just modern Ludditism.

<comment><USER3> The idea that those who contributed to society to make it what it is should see any of the benefits instead of being tossed aside like a rag is not "Utopianism". People lose their jobs TODAY from automation, more jobs in America were lost from automation than "China". Those people may be too old to retrain, and why aren't afforded any share of the benefits from automation? Why when they did the labor to work the mines, factories, and trucks, to bring us to where we are?

<comment><USER4> Were they not compensated for their time when they did the work?

If I, as a web engineer, help create the next facebook for someone and I'm paid my wage during the time, and this new facebook somehow obsoletes me, are you saying I should be entitled to gain more from that, even though I was already paid what I agreed to be paid when the work was done?

</comment></comment></comment><comment><USER5> It isn't enough to just have UI. You. You need a driver for financing as well. It is all well and good to be able to leave a job to start something new, but if you can't finance that thing you just have a bunch of people sitting around complaining that they can't raise money to do what they want.</comment>


RHODOS – A Microkernel-Based Distributed Operating System (1994) [pdf] - vezzy-fnord http://darknedgy.net/files/rhodos94.pdf <comment><AUTHOR> Why this paper deserves attention in your opinion? I found nothing remarkable there.

<comment> vezzy-fnord Focuses specifically on multiserver interactions in reasonable detail. It was also targeted towards the m68k, but that isn't covered in this particular paper.

</comment></comment><comment><USER2> Its future of OS.</comment>


Neglected side projects for less than $1000 - <AUTHOR> https://1kprojects.com/ <comment><USER2> It's hard to imagine what the value proposition is for the savvy buyer, aside from browsing ideas that they might want to implement for themselves from scratch.

Great site for sellers if they can actually unload here, though.

<comment><USER3> Huh? If I can get the implemented idea for less than $1000, it almost always makes sense to buy it instead of doing it again myself.

<comment><USER2> If by "almost always" you mean never, then you're right.

Let me put it way: if you wanted to create a terrific blockbuster novel, would you start by scanning in some obscure, cheap title from the discount bin and then editing it, until you had your masterpiece?

These projects are abandoned for a reason. They need to be refactored/modified to go anywhere. If you think it makes more sense to refactor a simple/failed project than rewrite it from scratch, then you're not in the "savvy buyer" category I was talking about.

<comment><USER3> These products almost certainly haven't failed because of bad technical design.

To use your novel analogy, the only problem with the discount bin title was that it was priced at $20 and called 'Stuff'.

<comment><USER2> They failed because they're mediocre to abysmal ideas that are implemented probably just well enough to scratch the itch of a hobbyist, before outing themselves as flops in the real world. And any that are actually good ideas with a poor interface need to be rewritten anyways, either to improve the UI or scale with growth/success. So beyond "the idea" of the app (which might have value in some cases), the majority are actually worth less than nothing, they're the proven failures. It's like shopping for a formula one racecar in a junk yard, and thinking "wow, some of these even have wheels!"

You can disagree, no point in flogging a dead horse (or app). :)

</comment></comment></comment></comment></comment><comment><USER4> This site is a rip off from transferslot.com.

They even used the same design and layout. Cheap copy cat.

<comment><USER5> Just looked at the transferlot.com site. The first three entries were the following...

Repick.com MRR:$100 Price:$20,000

byteptr.com MRR:$50 Price:$20,000

getvora.com MRR:$550 Price:$40,000

Is this a bad joke? Asking for 6 to 16 times yearly revenue? They want people to buy a site that then takes many years to get your money back, whilst crossing your fingers the site stays relevant for all those years?

</comment></comment><comment><USER6> I think this is an awesome idea. I go to Flippa pretty regularly but don't want to spend 50k on something. Knowing everything is less than 1k is refreshing.

</comment><comment><USER7> What happens when this becomes a neglected side project?

<comment><USER8> Dog food itself!

</comment></comment><comment><USER9> > Attention : If your intent is different from the contents of your message, > your offer will be rejected and the seller won't see it.

> All messages are manually approved before the seller is notified

So you're screening our messages with the seller? I'm not sure I'm comfortable using this service.</comment>


ReactOS "ready approximately for 80% of real world usage" - <AUTHOR> http://www.osnews.com/story/25155/ReactOS_Demonstrated_to_Russian_President_Medvedev

<comment><USER2> I was an active developer of ReactOS for about the time period of 2003-2007, including acting as the release engineer for the project for 2 years.

I feel like I can speak from unique stand point as I saw everything from the inside.

ROS is a lot of things, but one thing it is NOT is production ready.

From what I can tell, not a lot in the process has changed since I left. I am sure a lot of things code wise have changed but not enough to make a marginal difference.

One of the biggest issues ROS faces is the lack of testers. Since it can't be used a production OS very few people will actually test it. When I was there, we had 2 dedicated testers. For a whole operating system, that will not cut it.

Another issue is with driver compatibility. While it is true that it runs good on emulated hardware, it has a long long way to go before actual Windows drivers let it run on actual hardware. One small thing in the driver can cause everything to stop working. And with only ~20 active developers at the time, there is a finite set of hardware that can be debugged on. Not to mention only 3-4 of the 20 developers were skilled enough to fix issues with device drivers.

ROS is also fighting uphill battle by chasing Windows when Windows has 100s of developers working on it. I left ROS and worked for Microsoft for two years so I also know how much faster MSFT is going then ROS. Though, even if they got to full XP compatibility it would be one of the most impressive feats I have ever seen of open source, I just don't see it happening anytime soon.

And finally, the last main issue with ROS is the developers itself. There was so few dedicated, we only had ~30 people with write permissions. Of those, only 15 were active. And those 15 were all working in their own area. I worked in shallow (read: non complex) Win32 API and user applications (cmd.exe, control panel, etc...). But everyone had their own section they were interested in and they worked at their own pace with little to no oversight. You either need focus/vision or resources to make real technical progress on a project this large. Without one of those you have no chance. And ROS didn't have either.

All that said, I loved working on ROS. It taught me how to write real code and I learned way more from working on ROS then I did getting my degree. The people on a personal level were great, and some of them were the most technically sound developers I have ever met. Sadly, a whole OS is being carried on their back.

<comment><USER3> From <http://www.reactos.org/en/about.html>

ReactOS 0.3.13 is still in under heavy development (alpha stage) and is not ready for everyday use.

<comment><USER4> If you read the linked article, it quotes the main ReactOS engineer as saying it was "ready for 80% of real world use". This is what Brandon is addressing.

</comment></comment></comment><comment><USER5> This has always seemed like a solution looking for a problem, to me. There are better Open Source operating systems for (more than) 80% of real world problems, and have been since before ReactOS began. If you're choosing an OS that can't run most of the big apps on Windows, anyway, why not simply choose a better OS to start with. It's obvious that Linux and UNIX systems are pretty vastly superior to Windows in all but application support...and there are several very good free and Open Source Linux and UNIX systems. And, as far as I can tell, WINE can run as much or more Windows software as ReactOS.

It's a tremendous amount of work to make a bug-compatible version of Windows. Of course, I can't argue with people and what they want to spend their time on, but I sure as heck wouldn't volunteer to work on a Windows clone. It seems a big waste of some really talented people's (and I'm certain they're quite talented; getting this far is a monumental feat) time.

<comment><USER6> Well from an outsider look I'd say the problem is the majority of businesses are running Windows and have reasons not to move off Windows. Even basic reasons such as staff training. This from what I can tell is addressing that issue.

As for your statement about Linux and Unix being better thats far from true. There are many areas where Windows doesn't compete at all with those systems, but its also completely true that Linux and Unix is completely rubbish at certain things Windows excels at.

Like most things you should choose the OS that meets your needs, and for most people using a Microsoft stack, with Microsoft trained users, using software aimed at Microsoft platforms then this could be the answer.

Proof will be in the pudding of course, these guys are far from ready at this point, and are approaching the hard part of a project.

<comment><USER7> _As for your statement about Linux and Unix being better thats far from true. There are many areas where Windows doesn't compete at all with those systems, but its also completely true that Linux and Unix is completely rubbish at certain things Windows excels at._

Is this anything _other_ than application support?

<comment><USER8> \- Better GUI integration \- Standardized and complete API going beyond simple libc and POSIX (which are quite long in the tooth now) \- Access control lists \- Nicer driver system and better driver support

To name a few.

<comment><USER7> Exactly which things have better GUI integration on Windows, which are _not_ related to application support? In fact, what does "GUI integration" even mean?

The Windows API is standardized? I suppose, but only because Microsoft is the only one who ships anything even close to a complete implementation of it. So it's standard on the one thing that ships it.

I won't speak to if libc or POSIX is better or worse, but if they're going to be called "simple", the argument can be made that that's the UNIX philosophy, and a more valid critique would be if they were not simple and didn't adhere to the UNIX philosophy. Both Windows and Linux's libc/POSIX are solid APIs and are standardized, and the latter is largely documented where they diverge.

Linux supports POSIX access control lists. I actually find the Windows ACL support to be extremely subpar: the command line utilities are tough to use from cmd.exe, and the GUI for handling ACLs is brutal, albeit functional. The getfacl and setfacl Linux utilities are not super fantastic either, but they are there.

What's the qualification for a "nicer" driver system, that isn't better driver support?

<comment><USER9> > What's the qualification for a "nicer" driver system, that isn't better > driver support?

Windows effectively has user-installable drivers and Linux, for intents and purposes, does not. In fact, Windows has the equivalent of apt-get for drivers -- a central auto-updating repository. Comparably, Linux is a backwards wasteland when it comes to drivers and driver management.

<comment><USER7> I can't remember the last time I had to install a driver using anything other than apt-get or yum on my Linux desktop or laptop -- although I do have a hand configured xorg.conf that I've been using for years. The majority of drivers are available with the kernel, and those that are not and are popular are packaged up by the distribution maintainers.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> The last time I used ReactOS it would crash and burn after using it for about 2-5 minutes with their supplied VMware image. This is with only using the applications that were included with it, as well.

<comment><USER11> Their supplied 0.3.13 image blue screens on bootup on the current release of VirtualBox,

</comment></comment><comment><USER12> Why not link to the original source?

<http://www.reactos.org/en/news_page_67.html>

It contains much more information.

</comment><comment><USER4> This isn't a slam against ReactOS, but it's ready for 80% of real world use if you're using late 90s/early 2000s applications. Seems like Marat might've been stretching the truth to the president.

</comment><comment><USER13> the last 5 percent is the hardest

<comment><USER14> <http://en.wikipedia.org/wiki/Pareto_principle>

</comment></comment><comment><USER15> meanwhile Windows8 wouldn't even load the desktop until it is required. The Windows as we know it is turning into legacy OS just to run old apps.

<comment><USER16> Ah, interesting, do you have a source on this? I'm very interested to see how much emphasis they are going to place on the new HTML5 / app style of development.

I expect Win32 MFC, ATL etc., will live on forever in some form, but Windows 8 sounds like it will be a break hard towards the future, in an even stronger way than the move from Win32 / MFC to .NET was.

<comment><USER15> Windows 8 desktop to be 'just another app,' says Microsoft exec

[http://www.computerworld.com/s/article/9219680/Windows_8_des...](http://www.computerworld.com/s/article/9219680/Windows_8_desktop_to_be_just_another_app_says_Microsoft_exec)</comment></comment></comment>


Can Spark Streaming Survive Chaos Monkey? - <AUTHOR> http://techblog.netflix.com/2015/03/can-spark-streaming-survive-chaos-monkey.html <comment><USER3> Interesting stuff as usual Netflix; but, the identifying and reporting of issues discovered under these conditions is really excellent for the community. Kudos to you all.

</comment><comment><USER4> I notice they're using spark standalone clusters.

I've had problems with executors dying when running under YARN, and it makes keeping track of running jobs and finding log output more difficult. So unless you really need to run on the same instances as other MR tech, it seems standalone is the way to go.

If only AWS provided EMR AMIs for spark standalone clusters I could switch...

<comment><USER5> Is this Spark on YARN or YARN or AWS that is causing the issue?

<comment><USER4> I was trying to run Spark on EMR, so I was running it under YARN on EMR.

The problem I found seemed to have been discovered by one or two other people on mailing lists - it seemed something to do with YARN terminating spark executors for memory usage. It was odd since I wasn't using the cluster for anything else - YARN was only used as the scheduler because it was installed in the AMI, and I didn't want to use the ec2 scripts to start a standalone cluster just on EC2s.

It was difficult to debug because YARN makes things pretty opaque when tasks just die - logs weren't copied around the cluster so I had to SSH to the instance that died and try to find something to indicate what had happened, and half the time the error messages were vague.

I also didn't work out how to view the job tracker UI when running under YARN. "Learning Spark" says I need to proxy through the YARN cluster somehow but doesn't give an example... So I have no progress about running jobs at the moment, only about finished jobs.

In the end, I upped the instance size I was using and everything went well. I think my dataset must have been too large and spark was spilling to disk which tripped things up. So at the moment I don't have confidence that I could process huge datasets with Spark on EMR which is a bit annoying :-(

</comment></comment></comment><comment><USER6> I would like to know which language they are using with Spark: Python, Java or Scala. I have experience with both python and java and while python works very well for prototyping new Spark flows, once a flow becomes too complex I fall back to Java because of generics in RDDs.

<comment><USER7> I'd really recommend looking at Scala - IMO it combines the best parts of both. The syntax is often just as clear and concise as Python, but you also get full static type safety.

</comment></comment><comment><USER8> I'm curious how certain services can survive Chaos Monkey. Memcached is one example; if you start destroying instances, you're going to stampede your persistent datastore to get that memcached replacement hot again.

<comment><USER9> The surviving part doesn't have to be in the server itself. Here's an idea for memcached "surviving":

\- set up N available servers

\- make clients store to N servers at the same time when they calculate the value

\- query M (where M<=N) servers before deciding you have to recalculate

\- If you got a response from server between 2 and M, re-store the value everywhere (just pay attention to preserving timeouts)

And you get distributed, self-healing, chaos monkey resistant memcached without any support on the server side.

Also if you want to avoid stampede, you could insert 1s TTL placeholders that mean "back off, someone else is calculating" into keys you know are popular and may experience contention. Just make sure you use CAS so you don't overwrite data with placeholder.

<comment><USER8> That's what I assumed. You lose capacity as you increase reliability, as you're going to need to redundantly store that data somewhere in your memcached cluster if you don't want to go back to the persistent layer. Thanks!

</comment></comment></comment><comment><USER10> Great write up. Using spark / graphx and so far it's pretty awesome.

</comment><comment><USER11> Interesting title given that Netflix has just released pricing for their upcoming New Zealand release undercutting the local offering from Spark (formerly Telecom).

<comment><USER12> About the same time that I introduced Spark in our workplace, Telecom announced their multi-million dollar name change.

I spent the first two weeks clarifying that I was indeed referring to Apache Spark, not the Spark-Formerly-Known-As-Telecom. They'll always be Telecom to me.

</comment></comment><comment><USER13> I just got a "Netflix can't play this title at this time" error message - <USER2> you guys experimenting?</comment>


Why Game Dev Story is a great game? - <AUTHOR> http://pietro.open-lab.com/2010/10/29/why-game-dev-story-is-a-great-game/

<comment><USER2> I've been playing Game Dev Story for a week now (not continuously mind) and it's the crack cocaine of iphone games. It's incredibly addictive, all consuming and someone on a game dev story binge looks terrible from the outside.

Personally I thought the graphics were fine for the type of game it was, but then again I used to spend most of my iphone gaming time on dropzap and backgammon NJ.

<comment><USER3> Yes I've been playing it continuously since getting it about 3 or 4 days ago.

I just finished (reaching the end of year 20) after re-starting several times. All in all the game totally lost it's fun after year 14 or so due to being incredibly easy. I had way too much $, characters were all super powerful, etc. (as such I see no replay value right now).

The only thing that was still hard was getting a perfect 40 on the new games, I would always end up with either a 38 or 39 and only got the 40 a few times.

</comment></comment><comment><USER4> You can immediately start playing without feeling overwhelmed, which is something that cannot be said about current console games. One of the benefits of portable gaming.

Also the game developers don't take everything seriously, considering you can advertise on the moon.

</comment><comment><USER5> The only bad thing about this game, iOS devices only. I really wish developers would port their games and apps over to Android sooner. Specially something like this that is catered to the more nerdy crowd.

</comment><comment><USER6> The way I play, I always have a game under development while a previous game is on the market.

So it's like an endless loop - I'm focused on the dev process of the current game, and then when I finish, I want to see how well it performs in sales. But I'm not going to leave my studio doing nothing in the meantime, so I start a new game. And then I want to know how well that game does...

It's pretty slick.</comment>


Hardware Threading on the Mill CPU [video] - <AUTHOR> https://millcomputing.com/topic/threading/ <comment><USER2> Previous discussion here: [https://news.ycombinator.com/item?id=15895701](https://news.ycombinator.com/item?id=15895701)</comment>


Northwest's cell networks disrupted after 'presidential alert' text - <AUTHOR> https://www.seattletimes.com/business/regions-cell-networks-disrupted-after-presidential-text-alert/ <comment><USER2> ...maybe because everyone tried to get on the cell networks at the same time...like after a football game, when everyone goes to the toilet at the same time and it drops the water pressure in the city....

</comment><comment><USER2> maybe because everybody tried to get on the cell phones at the same time....like when after a football game, everyone goes to the bathroom at the same time....</comment>


IPv4 address exhaustion (Wikipedia) - <AUTHOR> http://en.wikipedia.org/wiki/IPv4_address_exhaustion

<comment><USER2> Hard to imagine they estimate about a year's worth left until exhaustion. And IPv6 isn't remotely close to being fully adopted.

Is it safe to assume that IPv4 would continue to be used even after exhaustion, but we would need to start using IPv6 for any further growth? Is there any inherent problems with a system with mixed addresses?

<comment><USER3> Popular centralized services (name servers, certain web servers) will want to stick with IPv4 for a long time. They need to support customers who cannot or will not upgrade their clients.

Edge services (ISP customers, file sharing) can easily move to IPv6 as soon as their ISPs come to their senses.

</comment></comment><comment><USER3> Currently, TLS/SSL consumes an IP address for every secure web site. Does anybody think we will see virtual hosting of HTTPS using the UPGRADE method? Or will IPv6 win out before this becomes necessary?</comment>


Screwed by Lufthansa and the German Government, Saved by PayPal - <AUTHOR> https://svedic.org/travel/screwed-by-lufthansa-german-government-saved-by-paypal <comment><USER2> I am getting screwed by KLM. I am guessing the Dutch government is giving similar option to KLM. my travel insurance is also screwing me saying that I should accept the voucher. It's unfair the governments are bailing out airlines but they are just holding on to our money for the cancelled flights.

<comment><USER3> I have had cancelled overall 5 flights during this time for which I got zero response from any airline, there was no option to speak to a human as "all representatives were always busy". All I could get is a voucher.

I've managed to get all refunded 3 x chargeback via credit cards and 2 x paypal. Provided basic proof of purchase. (UK)

<comment><USER2> So you got both voucher and the refund? Or were you able to cash the voucher?

</comment></comment></comment><comment><USER4> Similar issue with Aeroflot. They cancelled my flight and issued a refund but said it would take weeks. After 4 weeks called my credit card company and they issued a credit to my account immediately. The credit card company said that I could have called after a week, didn't have to wait 4.

<comment><USER2> Is it because your credit card offered a travel insurance? Or just a dispute?

<comment><USER4> In this case a dispute.

<comment><USER2> Just wondering is the money coming from airline or the credit card?

<comment><USER4> From the credit card. They will then deal with the company. So then it becomes their (the credit card company's) problem.

</comment></comment></comment></comment></comment><comment><USER5> It seems KLM has covered their bases — but can they?? This is what I read on the Paypal page when starting the dispute process:

Message from Koninklijke Luchtvaart Maatschappij N.V.

Dear Passenger, Please visit our website [http://www.klm.com](http://www.klm.com) to get the latest flight information about Coronavirus. Hereby the situation is minutely monitored so you can get the latest information. We highly recommend making use of the self-service options on our website to change your flight or request a travel voucher. Claims connected to Coronavirus about" KLM service not rendered" can`t be handled on PayPal site, only on KLM site. Thank you for your cooperation.

</comment><comment><USER6> I pre-paid for a hotel with my debit card. The hotel cancelled the booking because of the lockdown in the UK. They refused to provide a refund, instead offering me to reschedule the booking some other time. As I was unlikely to visit that city any time soon I tried to get a chargeback through my debit card but I discovered that Government lockdowns are not covered by the Visa chargeback process.

<comment><USER7> Are you sure this was due to the chargeback process or because you used a debit card? Even vendors that have a NO REFUNDS policy can still lose credit card chargebacks because the bank will side with the customer the vast majority of the time.

<comment><USER8> What reason do you give the bank or credit card company for the chargeback?

<comment><USER7> For a canceled hotel reservation, probably Service Not Provided.

</comment></comment></comment></comment><comment><USER9> > Lufthansa was on the verge of bankruptcy and agreed to a €9 billion bailout > from the German government. In an effort to save the company, the German > government told Lufthansa that they don't need to obey EU consumer > protection law, and that they don't need to issue refunds.

It's so sad to see capitalism getting killed by bureaucrats out of self interest.

<comment><USER10> Not sure what you mean.

Without government help there wouldn't be any airlines left. Would you prefer that?

<comment><USER9> > Without government help there wouldn't be any airlines left.

Could you elaborate on that please?

Edit: It's just another round of socializing risk while privatizing profit. Too big to fail is a hoax. When a firm is declared bankrupt only 1% the of value is lost to bankruptcy costs.

The other 99% is recovered by creditors through asset sales, restructuring, layoffs of people that use their knowledge in other companies.

The ratio of direct bankruptcy costs to the market value of the firm appears to fall as the value of the firm increases.

As measured here, the cost of bankruptcy is on average about one percent of the market value of the firm prior to bankruptcy.

[https://www.jstor.org/stable/2326766?seq=1](https://www.jstor.org/stable/2326766?seq=1)</comment></comment></comment>


Ruby on Rails Intensive 1-day Overview - b-man http://webcast.berkeley.edu/event_details.php?webcastid=20854

<comment><AUTHOR> Wow, that's a ton of material. Has anyone seen these before? Are they worth the time investment?

It looks like they're a few years old, so I wonder if they are still pertinent.

</comment><comment><USER2> hmm it says 2007 so i'm gonna say that it's not rails 2, which means it could be not very pertinent.</comment>


Zed Shaw's Template for "Learn X The Hard Way" Books - <AUTHOR> https://gitorious.org/learn-x-the-hard-way/learn-x-the-hard-way/blobs/master/README <comment><USER2> A few bits that caught my attention and perfectly show why Zed's publications are so good:

 _> 1\. Use just a simple editor like gedit, notepad+, or Textwrangler. NO vim! NO emacs!_

 _> 2\. Do not have them use git or other RCS tools. They're here to learn code, not git._

 _> 3\. Make it work for Windows, OSX, and Linux if you can._

 _> 4\. The install of your language should not involve tons of steps._

 _> 1\. Your book should educate people, not indoctrinate them. If you find yourself talking constantly about how awesome your language is and how it will change their life, then you're not educating, you're just making another cult follower. Leave the decision of whether the language is good to the reader._

 _> 4\. Lightly make fun of programmers and inoculate your student against religious wars over syntax, idioms, editors, tools, and anything else that gets in the way of them learning. Remember, you are writing this book for them, not your fellow coder friends._

This should be the mantra for everyone who writes a tutorial (which often land here on HN) or any other form of introduction into technologies. Way too often authors waste a huge chunk of their educational material on shoving their tools of choice down readers' throats. 'hey, you want to learn rails? ok, now buy a mac, install git, learn emacs, download my dotfiles...'.

TLDR: want to educate? be agnostic.

<comment><USER3> All education is a form of indoctrination. When you teach a kid to read you are indoctrinating them, but you do so with the assumption that if you don't teach them to read they will be worse off. So you indoctrinate them. As we all go through life people are interacting making similar judgement calls based on time, place and circumstance. So indoctrination in that regard is omnipresent and has a good side. Sorry to be off topic but I felt like typing that. I agree that we should fight our shallow inclinations to sensationalize in ways that diffuse "robust" learning.

<comment><USER4> No, and I'll give you my distinction that separates education from indoctrination:

Education's goal is to teach you something so that you can then go on without them, thus why they teach a wider range of topics within a subject.

Indoctrination's goal is to make you dependent on the educator, thus why they focus on only their version of the subject and squash differing opinions using propaganda tactics.

For example, you don't have to go back to your highschool math teacher to use Algebra or back to your grade school to read something. You are independent and may never set foot in your school ever again, but can still do these things.

If you teach someone that Python is the one true language and use propaganda to make them want to use it, then they'll be dependent on that language and the community in order to write code. Even simpler is if you only teach them git and github then you've indoctrinated them into always needing github to share code.

Bad kinds of education are like History classes that teach fairy tales like "George Washington never told a lie." These are indoctrination masquerading as education because they make the student dependent on the country for their identity.

The reason indoctrination like this is bad in programming though is because programming languages and tools die all the time, and when they do it destroys these people the indoctrinators have made dependent on the technologies. It also smacks of a con that's covering for shit technology that can't survive on its own merits.

Finally, finding a particular topic in the gray area between them does not disprove that there's a difference. Rational people don't think in binary, so this is a continuum where you could find some topics that require a bit of indoctrination, and some where it's the complete wrong approach. In my opinion, programming education only has indoctrination because that lets shitty technology hide behind propaganda.

<comment><USER3> I agree that everyone should strive for the intent and ideals you're talking about (IE not making people dependent etc) But I still hold to my view in terms of the definitions.I think indoctrination is like social order, to a certain degree it is inescapable and inherently part and parcel to learning anything involving reading and writing. But I complete agree with the ideals you believe we should all strive for and the methodology etc. I do think there is a staunch distinction between the indoctrination of people learning through the state or a church or whatever, and the more interpersonal empathetic methodology of teaching with an intent to facilitate independence. The irony is most staunch ideologues would probably agree, then go off and completely contradict it with their actions :). Around and around we go...

</comment></comment></comment></comment><comment><USER5> If you've never taught beginners how to program, then you should obsessively follow Zed's advice...I just cringe whenever I see even a mention of "git" or any other development tool in the context of beginners coding.

I can only say that it is nearly impossible to underestimate the technical unfamiliarity of this audience. Opening the command line terminal is bewildering to them. Not understanding why 'ls' worked a minute ago but not now (it's because they're in the interactive interpreter) causes rage.

You may think you're enticing the beginner by teasing all the cool things they'll eventually get into, but it ends up being a disservice. They're already entering a world of confusion and frustration, no need to add orthogonal concepts to the mix.

<comment><USER6> I agree in principle. However, sometimes it is useful to bundle things together if that's how things work in the real world, like Ruby on Rails + Github + Heroku in a RoR book. Then again, it would be counter-productive to add in totally irrelevant things like vim or emacs.

<comment><USER7> I disagree. Adding github + heroku to a Rails book is a mistake. Too much time is spent setting up things you don't really need to learn how to code with Rails. Its a big drag. Imagine if at school you were taught how to write cursive while also being taught how to hold the pencil. Shit gets complicated too fast.

<comment><USER8> It depends on your goals and your audience. The _Ruby on Rails Tutorial_ teaches web development to those who already have some programming experience, and in this context including Git and Heroku is, for many readers, a big win. True, the #1 complaint about the tutorial is that it includes so much more than just Rails, but that's also the #1 compliment.

<comment><USER7> I like your book. Have read about a 100 times. Its good. But its not perfectly marketed. The title does not fit the book. You are not teaching Ruby on Rails per se, but web development _and_ deployment with Ruby on Rails. There is a difference between the two. Imagine a beginner, who has no experience with actual web development, but wants to try out RoR to find out what the big fuss is. He/she finds your book, and starts reading it. Only to find out that he/she has to learn about _n_ different things before learning how to include a field in a model. Its frustrating. I know because I went through it. Even though I knew git/heroku deployment beforehand, skipping over those subjects proved difficult.

Though you do make a good point in your first sentence. It does depend on the goals and the audience. But I think your audience is a bit too widespread. People who have some programming experience are too wide of a net. I think if it were sold as a book for people who havea bit of web development experience then your conversion rate would be higher (from free reader to paying customer).

Now, I'm not knocking on your accomplishments. My approach is merely from the business perspective of marketing you book and videos. Have you tested other approaches? If so, may you shed some light? I used to market/sell books on the web, and find it fascinating. If you wish to continue this conversation through email mine is in my profile.

</comment></comment></comment></comment></comment><comment><USER4> Crap, well I just updated this and didn't rewrite the README. Let me fix that real quick.

<comment><AUTHOR> Sorry for submitting to HN with it not quite ready! Just stumbled across it today and thought it was really fascinating. I'm working on a "learn to code" product myself. Just watched your talk at Oredev in Sweden yesterday. Thank you so much for sharing what you're learning!

<comment><USER4> Meh, I was just being lazy and should have done it yesterday. No harm done.

</comment></comment></comment><comment><USER9> Just a heads up: this isn't the latest template according to <http://news.ycombinator.com/item?id=4953872>

If you're looking to do a LxTHW, you should contact Zed to get the latest base structure.

Edit: Also, if you want to write a Learn X The Hard Way you should read this post about how to do it (<http://sheddingbikes.com/posts/1288945508.html>)

<comment><USER4> No, this is now the latest template. That's what I'm using in all my books now, and it's coming from a more advanced project for writing music books <http://orkestrix.org/>

My goal was, if I could write about code and music at the same time, then making a build system for books would be easy. The above is the end result of that work. Enjoy.

<comment><USER10> Orkestrix is nice.

I understand you don't want to use LilyPond because it is too complex, but you may want to know that LilyPond comes with a tool to convert from ABC to LilyPond (abc2ly). One could use it to write the music examples in ABC and have LilyPond typeset them. I'd consider using a setup like this to typeset the "final" version since LilyPond's typography is so nice.

</comment></comment></comment><comment><USER5> For a book like the Python book, what features of LaTeX were used? I usually associate it with its ability to do fancy typesetting. But the Python book looks like it could be done in mostly Markdown.

<comment><USER6> lots of formatting features, easy to version control, able to convert to print book and pdf easily, fully text based thus more predictable, and so on. LaTeX can be used for any document from CV to an entire book.

<comment><USER4> Most of this is true, but I found that it completely falls flat on its face once you want to do _any_ reasonable HTML output. htlatex is an abomination that should be destroyed in the fiery pits of hell after some long quest with a ring and some hobbits.

<comment><USER11> Presumably because LaTeX is designed for typesetting for fixed page sizes while HTML is designed for creating content that reflows to different window sizes and devices?

<comment><USER12> Not really - it is more that the various wrappers from tex to html are written in the spirit of the ancient web, rather than a transform to (another) simple, structured markup language. Somewhat odd considering docbook sgml should be a good match for modern html+CSS. I've considered writing something better, but have come to the conclusion that treating tex as output is just more reasonable (ie write in something like rst/markdown etc).

</comment></comment></comment></comment></comment><comment><USER13> I just recently started attempting to teach myself how to teach with my friend and his girlfriend as Guinea pigs using Zed's books as a guide.

Another thing I would add - go slow, but let the student explore and achieve on their own. Small accomplishments without frustration are much more motivating and "sticky" in the mind.

</comment><comment><USER14> I am expecting Learn Scala the hard way. Scala for the impatient (first free eight chapters) was a very good book, Scala Coursera was interesting. Some of Zed advices are very practical.

</comment><comment><USER15> I guess writing "Learn 'alexk7's favorite C++ subset' the hard way" would violate the "no indoctrination" rule... :)

</comment><comment><USER16> I know Zed is a vim afficionado - I wonder why he advises against it for writing lxthw books?

<comment><USER4> No, I advise against _telling students to use it_ unless they're ready.

Use whatever the hell works for you if you're writing a book. Well, except Microsoft Word.

<comment><USER16> Ah, now I see. I misread that - thanks for the clarification!

</comment></comment></comment><comment><USER17> zed shaw's [something], let me fall all over myself to pay attention to this rot.

<comment><USER18> Your comment would be more helpful if you wrote what is actually wrong with this book template, or with Zed Shaw's works in general.</comment></comment>


"... single-digit millionaires as the working class of Silicon Valley ..." - <AUTHOR> http://www.nytimes.com/2005/06/05/magazine/05RATPACK.html?_r=2&pagewanted=all

<comment><USER2> Article is from 2005, but it's interesting to see how some of the people have faded into obscurity and some have become more relevant than ever.

Replace "obscurity" and "relevant" with "their own fulfilled lives" and "visibly involved in the industry", respectively.</comment>


Breaking Bad as a Metaphor for Entrepreneurship Gone Wrong - <AUTHOR> http://www.replyall.me/the-replyall-cast/breaking-bad-as-a-metaphor-for-entrepreneurship/

<comment><USER2> This website has some kind of moderated comment system, and if anyone else is reading this I'm interested in their opinions anyway, so I'm going to re-paste my comment here.

\---

I'm loving the premise, but it doesn't seem like you are motivating at the end that the motivation is selfish vs. simply misguided; in fact, it isn't even entirely clear to me that his motivation is wrong even in his own head, given that a lot of what got him into the situation in the first place was the idea that he had limited time and thereby his life wasn't even important anymore. Please: do say more.

<comment><AUTHOR> Btw, responded to your comment on the site, getting some great replies from the audience including yours!

[http://www.replyall.me/the-replyall-cast/breaking-bad-as- a-m...](http://www.replyall.me/the-replyall-cast/breaking-bad-as-a-metaphor- for-entrepreneurship/)</comment></comment>


Ask HN: Which of these 3 email subject lines most grabs your interest? - <AUTHOR>

At Correlated (http://www.correlated.org), we publish a new statistic each day based on the results of all previous days' polls.
Users can sign up for a daily results email, which contains the latest statistic and the current day's poll question.
I'm trying to figure out which subject line is most likely to grab people's interest:
1) [First name], here's your daily results email for Friday, April 15!
2) April 15 results: Cats, cursing, and crying
3) Today's poll: How often do you dine out?
The first option personalizes the subject line by using the recipient's first name, but aside from that it remains pretty standard from day to day.
The second option teases the latest silly statistic.
The third option presents the current day's poll question, which the recipient can respond to by clicking a link within the email.
What do you think, HN readers?  Which of the three subject lines do you think would be most likely to grab your interest on a daily basis?
(I'm also open to alternative suggestions.) <comment><USER2> 1\. A/B/C test it on your actual users. Everything else is a just a guess.

2\. Having said that, my guess is that the first would generate the most opens. The second seems spammy and the third sounds invasive plus "more work."

</comment><comment><USER3> I would A/B test, but they all sound spammy, sorry.

I'd recommend coming up with a totally new headline

</comment><comment><USER4> I say 3.

2 sounds like something I have to read and I probably wouldn't be bothered.

</comment><comment><USER5> 2

</comment><comment><USER6> I vote for 2... but you should submit this as a poll:

<http://news.ycombinator.com/newpoll>

<comment><USER7> See, this is another reason not showing comment scores sucks. Instead of showing that I agree with you (number 2 is best) by simply upvoting you. I have to reply to voice my opinion.

So, this begs the question what problem is exactly being solved by not showing comment scores???

<comment><USER8> His comment had two parts. How would I know you didn't up vote for the poll remark? I'll tell you how... By reading your comment. :-)</comment></comment></comment>


Here's Waldo: Computing the optimal search strategy for finding Waldo - <AUTHOR> http://www.randalolson.com/2015/02/03/heres-waldo-computing-the-optimal-search-strategy-for-finding-waldo/

<comment><USER2> Related: [http://stackoverflow.com/questions/8479058/how-do-i-find- wal...](http://stackoverflow.com/questions/8479058/how-do-i-find-waldo-with- mathematica) [http://stackoverflow.com/questions/8849869/how-do-i-find- wal...](http://stackoverflow.com/questions/8849869/how-do-i-find-wally-with- python)

</comment><comment><USER3> this looks like an artificial neural network problem if ever there was one...</comment>


Codeless CMS - a startup everyone is talking about - <AUTHOR> http://www.businesshackers.com/2007/06/16/codeless-cms-a-startup-everyone-is-talking-about/ <comment><USER2> It looks strikingly like Weebly (down to an identical color scheme and blogging features), but it does seem to come at the problem from a slightly different angle.

</comment><comment><USER3> Nice hyping.</comment>


Layer X – container scheduling across multiple orchestration layers - <AUTHOR> https://github.com/emc-advanced-dev/layerx <comment><USER2> perhaps "container scheduling across multiple orchestration layers" instead of "new cool open source project" would make more sense for a headline?

<comment><AUTHOR> Can you help me by liking it ?</comment></comment>


Developers Debate Deleting 'Master' and 'Slave' Code Terminology - <AUTHOR> https://insights.dice.com/2020/06/16/developers-debate-deleting-master-slave-code-terminology/ <comment></comment>


Show HN: Beeem: Drag-n-drop a mobile website in 2 minutes - <AUTHOR> https://beeem.co/ <comment><USER2> An interesting concept, a few comments:

1\. The site destroys the standard "back" functionality of Firefox.

2\. The section about the team does not tell me anything about what the project does, how it works, or "why I should care."

3\. After viewing the page (more than I would have preferred) I still have very little idea of what the project actually does or how it does it that is relevant from a technical perspective of building mobile websites.

Good luck.

<comment><AUTHOR> Thank you very much for your time and comments!

</comment></comment><comment><USER3> very interesting - been thinking about something like this for an upcoming project. one suggestion, work on the copy on the homepage. I'll admit I was a tad confused by some of the wording, particularly the main heading.

<comment><AUTHOR> Thank you! Will do!</comment></comment>


History shows us that Trump's Iran strategy won't work - <AUTHOR> https://bostonreview.net/war-security/masoud-movahed-sanctions-game <comment><USER2> US tried the same thing on India when the "Smiling buddha" was launched. I remember the sanctions rolling through and it was difficult getting medicines for most of the population. Perhaps this is the reason why India is the world's largest producer of generic medicine.

Also US refused GPS data to India during the Kargil war leading to India launching it's own GPS satellites.

Similarly, US forces were ready to attack India but pulled out at last moment due to Russia intervening. [https://timesofindia.indiatimes.com/india/US- forces-had-orde...](https://timesofindia.indiatimes.com/india/US-forces-had- orders-to-target-Indian-Army-in-1971/articleshow/10625404.cms)

Then India. Now Iran.

<comment><USER3> Haven't heard much about North Korea lately.</comment></comment>


A Subtle Power Struggle for Control of Music Metadata - <AUTHOR> http://motherboard.vice.com/read/there-is-a-subtle-power-struggle-for-control-of-music-metadata <comment><USER2> Is it really that subtle, given the long history of this struggle, and the same names?

[https://en.wikipedia.org/wiki/CDDB#History](https://en.wikipedia.org/wiki/CDDB#History)

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

Given this context, surely the article should at least mention [http://www.freedb.org/](http://www.freedb.org/) or [https://musicbrainz.org/](https://musicbrainz.org/) ?

\--

Edit: Added musicbrainz

<comment><USER3> Why haven't more freely-licensed databases taken off in general? For movies, IMDb (Internet Movie Database) is hugely popular and even lets its users edit, but its data is proprietary. TMDb (The Movie Database) provides an API, but its data is also proprietary and there's no way to download the data for offline use. OMDb (The Open Movie Database) has an API and is licensed CC-BY 4.0, which is great, but also doesn't provide data dumps. Can you really say it's an open database if users cannot redistribute your data or fork it? (Not to mention that the users are the ones contributing most of the information)

What gives me hope though is that two databases you mentioned are freely- licensed and do provide data dumps. This is essential for programmers to be able to create things that rely on these databases. We need to establish more free data stores, because as the article mentions, data is very valuable, and as the Wikipedia links show, proprietary databases have absolute control over their terms, restricting and locking out competition at any time.

<comment><USER4> Musicbrainz is the db you are looking for. Not sure exactly why it hasn't taken off like IMDb but movies and music and the kind of questions we ask about them are very different things.

</comment></comment></comment><comment><USER5> I have home SW that accesses TVDB.COM to get fan art, descriptions, etc., for tv shows. Lately I have been getting 403s for requests. They won't say but I assume they are getting takedowns for their metadata.</comment>


Ask HN: Do you think Temple OS will have a future without Terry? - <AUTHOR> <comment><USER2> It was never so much an operating system as an art project, and its artistic vision is not one which could easily be adopted by any other creator. Its future will likely be much like its past; it will be discovered, marveled over, mocked, and appreciated, but not used or extended.

</comment><comment><USER3> > Do you think Temple OS will have a future

No.

</comment><comment><USER4> Did The Book of Mormon have a future without Joseph Smith?

<comment><AUTHOR> That's a real thing? thought it was a south park joke.</comment></comment>


Psdash: A linux system information web dashboard using Psutils and Flask - <AUTHOR> https://github.com/Jahaja/psdash

<comment><USER2> Not picking on this tool specifically but I see these sorts of things posted on HN a bit and I am struggling to understand the appeal. So genuine quesion: I can understand it is a fun task to build but what advantages does it bring in real world use? Is it just a novelty thing or do people use these sorts of tools and if so why and what advantages do they have over ssh/cli?

My sysadmin brain is always looking to reduce the dependencies and the attack surface. Ideally I want less services running on less ports. Less software to install, maintain and secure. As a result I stick to ssh and shell most of the time. Generally any admin tool that has big library dependencies (eg anything python, node.js or ruby) is on my shit list. I am a bit more sympathetic to Go because of the single static exe but otherwise I prefer plain old shell.

I understand historical graphs are nice to look at and time series data is one of the areas where web tools are a win. Though I am probably more likely to look at alerts based on triggers than watch a graph in real time. I don't understand what advantage tables of process stats in html offers over the same in the cli.

<comment><USER3> I pretty much agree with you. The reason I built the tool was to give a system overview for the vagrant box we use at my work. Especially one that could tail and search logs (the one in supervisor is pretty useless).

And in the end; all devs aren't devops so it's easier to have it web-based.

Who knows, with time, maybe this tool can be extended to be useful for your purposes as well.

<comment><USER2> Thanks. That makes sense as a tool for developers who don't have sophisticated unix skills. I guess quite a lot of people are targeting Linux as a production environment but come from quite different backgrounds and using different platforms for development. Once you mention vagrant it all falls into place. Nice one.

</comment></comment></comment><comment><USER4> Use with caution. I was able to print my /etc/passwd file using /log/read.

<comment><USER5> FYI: /etc/passwd is world readable. You get get the same info with the command:

getent passwd

Reading /etc/shadow is a real problem, /etc/passwd is really not a huge issue.

</comment></comment><comment><USER6> Seems interesting, but I need to see some charts. I think I will use psdash + loadavg ([http://loadavg.com/](http://loadavg.com/)). Until now I was using New Relic server monitoring.

</comment><comment><USER7> How much load do tools like this add to the system. Ideally you want monitoring tools to be like using a voltmeter on an electronic circuit... display what's happening but adding very little influence of its own.

<comment><USER8> Virtually none in this case, though letting the processes page run on my system eats up 2% of the CPU (a long, updating list), versus 0% on everything else. Uses Flask.

Do these things have a harder time pulling such figures off of VPSs?

<comment><USER9> Sadly, the figure was not so conservative on my Raspberry Pi (closer to 25%).

<comment><USER3> That's not very good. On all pages or just the process-list page?

I could add an option that disables the auto-updating. The only thing that's currently polled by a background thread is some network information from /proc/net/dev.

<comment><USER9> Well I incidentally only checked while on the process page (and promptly removed it), but nice work none the less.

</comment></comment></comment></comment></comment><comment><USER10> This is awesome

</comment><comment><USER11> looks interesting, will give it a try.</comment>


Essays on programming I think about a lot - <AUTHOR> https://www.benkuhn.net/progessays/ <comment><USER2> Sadly it's a video/presentation, not an essay, but Simple Made Easy[1] is the single software argument that has made the most impact on me.

___

1\. [https://www.infoq.com/presentations/Simple-Made- Easy/](https://www.infoq.com/presentations/Simple-Made-Easy/)

<comment><USER3> I've been programming for a long time, watched this presentation several times, done a bunch of other research, and still don't know if I understand what this presentation is about. I fear that I've tried to apply these simple- vs-complex principles and only made my code harder to understand. My understanding now is that complexity for every application has to live somewhere, that all the simple problems are already solved in some library (or should be), and that customers invariably request solutions to problems that require complexity by joining simple systems.

<comment><USER4> > still don't know if I understand what this presentation is about

1\. The simplicity of a system or product is not the same as the ease with which it is built.

2\. Most developers, most of the time, default to optimizing for ease when building a product even when it conflicts with simplicity

3\. Simplicity is a good proxy for reliability, maintainability, and modifiability, so if you value those a lot then you should seek simplicity over programmer convenience (in the cases where they are at odds).

<comment><USER5> I find the graph at the top of Sandi Metz's article "Breaking up the Behemoth" ([https://sandimetz.com/blog/2017/9/13/breaking-up-the- behemot...](https://sandimetz.com/blog/2017/9/13/breaking-up-the-behemoth)) to be poignant.

If you agree with her hypothesis, what it's basically saying is that a clean design tends to feel like _much_ more work early on. And she goes on to suggest that early on, it's best to focus on ease, and extract a simpler design later, when you have a clearer grasp of the problem domain.

Personally, if I disagree, it's because I think her axes are wrong. It's not functionality vs. time, it's cumulative effort vs. functionality. Where that distinction matters is that her graph subtly implies that you'll keep working on the software at a more-or-less steady pace, indefinitely. This suggests that there will always be a point where it's time to stop and work out a simple design. If it's effort vs. functionality, on the other hand, that leaves open the possibility that the project will be abandoned or put into maintenance mode long before you hit that design payoff threshold.

(This would also imply that, as the maintainer of a programming language ecosystem and a database product that are meant to be used over and over again, Rich Hickey is looking at a different cost/benefit equation from those of us who are working on a bunch of smaller, limited-domain tools. My own hand-coded data structures are nowhere near as thoroughly engineered as Clojure's collections API, nor should they be.)

</comment></comment></comment></comment><comment><USER6> I read Peter Naur's "Programming as Theory Building" and thought it quite good.

[http://pages.cs.wisc.edu/~remzi/Naur.pdf](http://pages.cs.wisc.edu/~remzi/Naur.pdf)

At the time I found it I was was working where the key challenge was not so much technical as much as ensuring that simple technology, spread across a large breadth of functionality, adhered to a consistent vision of the business domain that was being implemented. The program became an implementation of the mental model I developed of the business domain itself: its purpose, its uses, and its allowances and prohibitions. The Naur paper hit exactly not only on what I had been implementing in code, but on what other developers would have to know in order to maintain that code over time.... and had the kind of knowledge that had been lost over the life of application by the time I came to be involved.... and part of why my project existed.

<comment><USER7> The examples near the start reminded me of another piece shared here before, "How to Build Good Software". Most notably the part near the end, titled "Software Is about Developing Knowledge More than Writing Code".

[https://www.csc.gov.sg/articles/how-to-build-good- software](https://www.csc.gov.sg/articles/how-to-build-good-software)

It has a few great quotes scattered throughout.

"Building good software involves alternating cycles of expanding and reducing complexity."

"Software should be treated not as a static product, but as a living manifestation of the development team's collective understanding."

"Software projects rarely fail because they are too small; they fail because they get too big."

</comment></comment><comment><USER8> So glad to see the Law of Leaky Abstractions in there - that's had a very long-running impact on how I think about programming. It's still super- relevant today, nearly 18 years after it was published.

[https://www.joelonsoftware.com/2002/11/11/the-law-of- leaky-a...](https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky- abstractions/)

<comment><USER9> I'm going through the conversation with a colleague atm where he believes DRY applies to everything.

<comment><USER10> The Sandi Metz talk/post included in the list touches on that:

[https://sandimetz.com/blog/2016/1/20/the-wrong- abstraction](https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction)

My takeaway from it is that we need to distinguish what you might call essential from incidental duplication. Essential duplication is when two bits of code are the same because they fundamentally have to be, and always will be, whereas incidental duplication is when they happen to be the same at the moment, but there's no reason for them to stay that way.

For example, calculating the total price for a shopping basket has to be the same whether it's done on the cart page or the order confirmation page [1], so don't duplicate that logic. Whereas applying a sales tax and applying a discount might work the same way now, but won't once you start selling zero- rated items, offering bulk discounts to which a coupon discount don't apply etc.

[1] Although i once built a system where this was not the case! In theory, the difference would always be that some additional discounts might be applied on the confirmation page. In theory ...

<comment><USER11> I don't understand why people interpret that article as recommending you avoid prematurely removing duplication and comparing it to the rule of 3. The point of her essay is that you should resist the sunk cost fallacy and refactor your duplication-removing abstractions when requirements (or your understanding of them) change.

</comment></comment></comment></comment><comment><USER12> Love the list, but I definitely think Programming Sucks [1] should be on any list of programming essays. :)

1: [https://www.stilldrinking.org/programming- sucks](https://www.stilldrinking.org/programming-sucks)

<comment><USER13> I guess I have read this already, but did not remember it very much. Halfway through, I thought it was written by James Mickens. So, if you liked this, you might also like Mickens' essays like The Night Watch <[http://scholar.harvard.edu/files/mickens/files/thenightwatch...](http://scholar.harvard.edu/files/mickens/files/thenightwatch.pdf>). All should be available at [https://mickens.seas.harvard.edu/wisdom-james- mickens](https://mickens.seas.harvard.edu/wisdom-james-mickens) And they are not only very funny, but also insightful.

</comment></comment><comment><USER14> Lately I've been into what I would call "the classics", Knuth, Peter Norvig, Minsky, Dijkstra... I realised most of what nowadays is called modern software/techniques basically consist in re-framing old essays from them.

Some of my references: the famous Norvig view on design patterns [1] and also his view of clean code [2]. Knuth on programming [3] also really enlighting.

1\. [https://norvig.com/design-patterns/design- patterns.pdf](https://norvig.com/design-patterns/design-patterns.pdf) 2\. [https://www.cs.umd.edu/~nau/cmsc421/norvig-lisp- style.pdf](https://www.cs.umd.edu/~nau/cmsc421/norvig-lisp-style.pdf) 3\. [http://www.paulgraham.com/knuth.html](http://www.paulgraham.com/knuth.html)

</comment><comment><USER15> Joe Armstrong's PhD thesis 'Making reliable distributed systems in the presence of software errors' is good reading.

[http://erlang.org/download/armstrong_thesis_2003.pdf](http://erlang.org/download/armstrong_thesis_2003.pdf)

<comment><USER16> Definitely recommend. I recently bought a book on Amazon on distributed systems[0] which talked about fault tolerance without even a cursory mention of Joe Armstrong's work. I've returned the book, but I wish I could have browsed the bibliography before buying.

[0]: [https://www.amazon.com/dp/1543057381](https://www.amazon.com/dp/1543057381)

</comment></comment><comment><USER17> I think about 'Why it is Important that Software Projects Fail' a lot.

[https://www.berglas.org/Articles/ImportantThatSoftwareFails/...](https://www.berglas.org/Articles/ImportantThatSoftwareFails/ImportantThatSoftwareFails.html)

It's been posted a few times over the years: [https://news.ycombinator.com/from?site=berglas.org](https://news.ycombinator.com/from?site=berglas.org)

</comment><comment><USER18> Arthur C. Clarke's _Hazards of Prophecy: The Failure of Imagination_ : [https://fabiusmaximus.com/2017/12/27/arthur-c-clarke- hazards...](https://fabiusmaximus.com/2017/12/27/arthur-c-clarke-hazards-of- prophecy-lack-of-imagination/)

<comment><USER19> I read it from your link. It was an interesting piece about innovation and imagination versus lack of imagination.

</comment></comment><comment><USER20> "Reflections on Trusting Trust" \- [https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_Ref...](https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf)

<comment><USER21> The first time I read this, I had to read it a few times to really understand. Great essay/lecture, but what else would one expect from Ken Thomposon?

</comment></comment><comment><USER22> "slumming with basic programmers" [https://prog21.dadgum.com/21.html](https://prog21.dadgum.com/21.html)

</comment><comment><USER23> I only think about "Out of the Tar Pit".

<comment><USER24> I've never understood why people like this paper. Over the years I've evolved a bite-sized rebuttal, if anybody wants to fight me:

The authors' "ideal world" is one where computation has no cost, but social structures remain unchanged, with "users" having "requirements". But the users are all mathematical enough to want formal requirements. The authors don't seem to notice that the arrow in "Informal requirements -> Formal requirements" (pg 23) may indicate that formal requirements are themselves accidental complexity. All this seems to illuminate the biases of the authors more than the problem.

Link to the paper, for convenience: [http://curtclifton.net/papers/MoseleyMarks06a.pdf](http://curtclifton.net/papers/MoseleyMarks06a.pdf). I think it's a siren and takes away attention that could be spent on better papers.

<comment><USER2> > But the users are all mathematical enough to want formal requirements.

This seems like a strange interpretation. I understand that the term "formal requirements" has a technical meaning in some disciplines, but I also think it's pretty clear that the author isn't using the term in that way.

It is much more likely that the author meant that users have requirements, but those requirements don't typically map cleanly to actions taken by the computer. This step of translation is necessary in the construction of a program, even if it is typically done piecemeal and iteratively.

<comment><USER24> It's a strange interpretation only if you focus on just the vocal minority that talks about formal requirements. Here are two quotes by Hillel Wayne ([https://www.hillelwayne.com/post/why-dont-people-use- formal-...](https://www.hillelwayne.com/post/why-dont-people-use-formal- methods)), whom I've found to have the most balanced take:

"The problem with finding the right spec is more fundamental: _we often don't know what we want the spec to be_. We think of our requirements in human terms, not mathematical terms. If I say "this should distinguish parks from birds", what am I saying? I could explain to a human by giving a bunch of pictures of parks and birds, but that's just specific examples, not capturing the idea of distinguishing parks from birds. To actually translate that to a formal spec requires us to be able to formalize human concepts, and that is a serious challenge."

"It's too expensive doing full verification in day-to-day programming. Instead of proving that my sort function always sorts, I can at least prove it doesn't loop forever and never writes out of bounds. You can still get a lot of benefit out of this."

The post makes a strong case, IMO. Formal methods can be valuable, but they don't have the track record yet for anyone to believe they're the #1 essential thing about programming.

</comment></comment></comment></comment><comment><USER25> One of the last links, but probably most significant:

Inventing on Principle [https://vimeo.com/36579366](https://vimeo.com/36579366)

</comment><comment><USER26> I saw the Inventing on Principal video several years ago and I'm very happy to come across it again. Thanks for sharing!

</comment><comment><USER27> As a less experienced web developer, i found "How I write backends"[1] very enlightening and I recommend it to all my peers when we discuss useful resources.

1\. [https://github.com/fpereiro/backendlore](https://github.com/fpereiro/backendlore)

<comment><USER28> I just read it but I think it focuses too much on specific tools (Redis, Node,...) and their configurations which might not be the best for most use cases. Especially if it's for a beginner who maybe doesn't have to start out with a load balancer and Redis.

</comment></comment><comment><USER29> "If you choose to write your website in NodeJS, you just spent one of your innovation tokens. If you choose to use MongoDB, you just spent one of your innovation tokens. If you choose to use service discovery tech that's existed for a year or less, you just spent one of your innovation tokens." I think the author is stuck in 2010.

<comment><USER30> The essay was written in early 2015, around the same time NodeJS foundation was set up.</comment></comment>


Building better video - <AUTHOR> http://www.twak.co.uk/2016/08/building-better-video.html <comment><USER2> _" Why does every video player need a play and pause button? They are legacy interfaces left over from hardware devices with actual buttons. There is no cost or side effect of not pausing a video. GIFs are a great example showing that we don't need these controls any more."_

Having extensive control becomes more important with longer videos. Being interrupted while watching, the desire to go back and rewatch a particular segment, etc. becomes more likely

<comment><AUTHOR> I guess I was thinking that a good way to simplify many video UIs would be to remove these buttons. Perhaps the browser-esque way of providing this functionality would be to use bookmarks instead?</comment></comment>


Ask HN: How can I as a coder contribute to climate change? - <AUTHOR> After watching 'before the flood' I started wondering how I could use my skills as a software engineer to contribute to climate change.<p>Does anyone know projects or other things I can have an impact on? <comment><USER2> This isn't the first time you've posted this. Here is the response I decided not to post last time.

You will probably never write a magic thousand lines of code for this. You'll probably have a far greater impact if you do a few simple things we should all be doing anyway:

* Turn off lights you aren't using.

* Turn your air conditioning up or down by a few degrees.

* Turn your water heater down a few degrees.

For computer-specific stuff:

* Don't leave computers running when not in use.

* Dim your displays.

* Use your laptop's battery rather than leaving it plugged in all the time.

I know it's not exactly interesting stuff, and it certainly doesn't build your CV, but neither of those things is actually important when it comes to climate change.

<comment><USER3> You forgot the most impactful change you can make: Stop eating meat and stop consuming animal products.

It's easy and you can start right away. You are reducing your carbon footprint by probably 10 times the amount, of all the other suggestions you listed combined.

</comment></comment><comment><USER4> The biggest impact most people can have on climate change is not having kids. Think of all the energy they'll use in their lifetime(s). You can prevent all of that.

<comment><USER5> Better yet, just kill yourself. Think of the carbon savings!

<comment><USER6> Get burial in your will too

</comment></comment></comment><comment><USER7> Here's one way to think about it: as an individual, changing your behaviour will have essentially zero impact upon global climate change, if your change is independent of other people's behaviour.

I reckon the only way to have any substantial impact is to influence others to change their behaviour / help drive political and economic change.

* our global economy needs further regulation to bake the cost of externalities (CO2 pollution) into the economy. Without a carbon tax or similar mechanism we get what we have today: polluting activities (on both supply / demand side) are effectively subsidised, so there is no incentive not to do them. We need to lobby for this.

* some in the climate movement talk about the "climate emergency" and want to phrase the response as some kind of world-war era national economic mobilisation. I think this makes sense, but this will only happen politically if a majority of the population think there is an emergency.

* someone else in the thread has already mentioned Jevons paradox - where improving the resource efficiency of a process in a market can result in an increase in overall consumption of the resource. Separately from that I think _demand reduction_ should be a clear win. What can you do to reduce demand for energy?

</comment><comment><USER8> To actually understand what we as individuals can do, I recommend reading the Sustainable Energy book.[1] It's free online.[2]

As a developer, you can educate and help people _conserve_ energy. Heating and cooling are enormous culprits. Learn to be comfortable at 60-65 in the winter, and 75-80 in the summer. Transportation is a big culprit as well. Buy a bicycle and use it for everything under 10 miles. Of course green technologies are helpful, and I don't mean to discount them, but the reality is that our cultural attitudes towards consumption are just as much of the problem.

To visually see what I mean, check out this graphic from the book: [http://www.withouthotair.com/c18/page_109.shtml](http://www.withouthotair.com/c18/page_109.shtml) The red bar on the left represents a typical Britain's consumption (which, mind you, is statistically less than the typical American's). The green bar on the right represents the pie-in-the-sky most insanely optimistic output of all the green technologies. Like, if they covered the entire country in solar panels and surrounded it with windmills and tidal power. It's basically a completely unreasonable estimate of the top-end of green energy production, and it doesn't even match the consumption bar.

[1] [http://www.goodreads.com/book/show/4070074-sustainable- energ...](http://www.goodreads.com/book/show/4070074-sustainable-energy--- without-the-hot-air)

[2] [https://www.withouthotair.com/](https://www.withouthotair.com/)

</comment><comment><USER9> Hi there,

check out Bret Victor's essay "What can a technologist do about climate change?" if you haven't read it, it's very good:

[http://worrydream.com/#!/ClimateChange](http://worrydream.com/#!/ClimateChange)

Discussion on HN:

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

</comment><comment><USER10> If you want to contribute to climate change, I think you should push for more JavaScript/J2EE/.NET apps, 4K streaming, Big Data frameworks, mainframes, and proof-of-work blockchains. Make sure people build them in areas that generate electricity with non-renewable resources. Avoid any energy-saving tech in the datacenters, offices, or your home.

If you want to reduce climate change, I think you should just follow FroshKiller's advice. You might also evangelize solutions to the public and politicians that provide decent compromises with reduced pollutants. You should also pay campaign contributions to politicians most likely to do that as this counts more than ten thousand opinions from voters. These will collectively probably achieve nothing given industrial nations overall don't care about climate change vs money, jobs, and disposable goods. You'll at least be doing your part.

</comment><comment><USER11> Here is a list which apply to everyone [1]

You can also stop buying products from most damaging companies [2]

[1] [http://www.un.org/climatechange/take- action/](http://www.un.org/climatechange/take-action/)

[2] [http://www.sciencemag.org/news/2016/08/just-90-companies- are...](http://www.sciencemag.org/news/2016/08/just-90-companies-are-blame- most-climate-change-carbon-accountant-says)

</comment><comment><USER12> Make videochat work reliably so people don't need to get in airplanes to conduct business across continents.

Make it easier to model genetic engineering so we can produce crops with less use of the Haber-Bosch process.

Make public transit easier to use.

Make it easier for people to coordinate life without a car.

Make inexpensive FLIR cameras for people to find leaks in their home insulation. NOTE: if this becomes widespread, it will be legal for police to use those same devices to look into people's homes.

</comment><comment><USER13> You can look for companies that leverage technology to reduce climate change. I worked for Ecosia.org and they did exactly that.

</comment><comment><USER14> In all seriousness, why not find a job working on web apps or databases that enable climate researchers? Or even wildlife biologists studying the impacts of climate change on biodiversity? There is no shortage of technical challenges in these fields, but there is a dearth of technical expertise to surmount them.

</comment><comment><USER15> I heard bitcoin was nothing but a contribution to climate-change /s

</comment><comment><USER16> Please don't.

<comment><USER17> Can you expand on this? As it is, your reply seems very dismissive. I am interested in hearing your reasons.

<comment><USER18> I am fairly certain this person is making a joke around "contribute to climate change" being a wording that, while clear in context, does suggest "make climate change happen faster/worse".

<comment><USER17> Gotcha. Yeah, the wording could definitely be improved :) Might have been useful to mention that in the comment, too.

</comment></comment></comment></comment><comment><USER19> There is also this:

[http://peeonatree.blogspot.com/](http://peeonatree.blogspot.com/)

</comment><comment><USER20> Burning some old tires in the backyard ought to do it.

</comment><comment><USER21> Commute to work in a large pickup truck.</comment>


Zero to Forty in Two Seconds – Quick Growth and How We Use Reamaze - <AUTHOR> http://blog.reamaze.com/2015/10/22/zero-to-forty-in-two-seconds-quick-growth-and-how-we-use-reamaze/ <comment><USER2> Congrats on the growth! Also nice to see startups partnering with startups alike when it comes to choosing tools to use for the run-the-business stuff like customer support.</comment>


Apple Beta Link Not Working properly - <AUTHOR> https://beta.apple.com/sp and just after making the public Beta of El Capitan available! The server encounters error randomly and I'm unable to login as its redirecting me to the same page. Anyone with an idea of how this happened? <comment><AUTHOR> Anyone with an idea of what happened and what's the Passenger?</comment>


Is Steve Jobs Repeating His Past Mistakes? - <AUTHOR> http://www.stevenberlinjohnson.com/2010/06/is-steve-jobs-repeating-his-past-mistakes.html <comment><USER2> "I'm sure somewhere in Jobs' head he thinks that if he had been running Apple instead of John Sculley, the Mac could have out-innovated and out-marketed Microsoft through the late eighties and early nineties, and kept Windows from dominating the planet."

Actually I believe this myself. It's hard to say exactly how well he would have done at fending off Microsoft, but it would have been a closer race than it was. Apple seemed totally lost during that period.

<comment><USER3> I'm sure he thinks he could have done better than Sculley, and it's almost certain he would have. But to cite his oft-cited speech:

 _I didn't see it then, but it turned out that getting fired from Apple was the best thing that could have ever happened to me. The heaviness of being successful was replaced by the lightness of being a beginner again, less sure about everything. It freed me to enter one of the most creative periods of my life.

During the next five years, I started a company named NeXT, another company named Pixar, and fell in love with an amazing woman who would become my wife. Pixar went on to create the worlds first computer animated feature film, Toy Story, and is now the most successful animation studio in the world. In a remarkable turn of events, Apple bought NeXT, I returned to Apple, and the technology we developed at NeXT is at the heart of Apple's current renaissance. And Laurene and I have a wonderful family together.

I'm pretty sure none of this would have happened if I hadn't been fired from Apple. It was awful tasting medicine, but I guess the patient needed it._

\-----

An addendum: I wonder how many decisions Jobs made after returning to Apple would have happened if he'd never been fired. Would he have still embraced Microsoft? Would the radically colorful design of the iMacs have happened any earlier, or at all? Would they have switched to Intel? What about the iPod, which was probably the most significant way Apple could introduce non-Mac users to Apple design, making the value proposition of a Mac credible? I wonder if his time away from Apple hadn't made him more sensitive to the importance of media besides software.

<comment><USER3> Sorry, wanted to add another point but the editing window expired. Basically, I get the sense that the Jobs that got fired was a lot more willing to shake things up when he came back. Whereas it's hard for me to see what Jobs would have done if he'd managed to oust Sculley, aside from killing 3rd party Macs earlier and shrinking the product lineup.

<comment><USER4> I wonder if there's a way we can retrieve the last text we submitted? This way, we can recover text when editing expires.

<comment><USER5> Sometimes the back arrow gets me there with chrome.

</comment></comment></comment></comment></comment><comment><USER6> Steve Jobs? mistakes?

It seems to me really strange to find people like Steve Jobs that belong to the group of "most successful people in the world", economical, personal and socially, being criticized by someone random on Internet, giving him lessons on what he should be doing.

Of course Steve Jobs is human, and makes "mistakes",he is not a deity, but as a human, he had more successes than anyone else I know in the IT field in a sustained way over the time.

In fact what this blogger considers "mistakes" is what I like about people like Steve "everything that Jobs has ever done in his career has suggested that he loves great products more than market share."

Thank God!! some people care about products and not getting more and more rich like the Banks, whose financial successes come from stealing other people work, or getting monopolies from destroying competition and benefiting from that, or getting(paying) the politicians to agree with them.

Not everything in life is money, marketshare ... and I respect the guys of google or Apple because they cared first about the product, and the got money and marketshare as a consequence later because people love good products.

Their primary goal was to benefit their customers and they benefited from that. Those that try to first benefit themselves with crappy products, tricking their customers to buy it using only false advertising, corrupting others to give them market privileges(today you have to pay corrupt officers to have the right to sell to some countries), well, those are the mistaken companies.

<comment><USER7> Need a refill on that Kool-Aid?

</comment></comment><comment><USER8> "'m not so sure that Jobs thinks his Macintosh strategy failed."

True, but not quite in the way that the author thinks. The Macintosh lived on if you wanted one, and Windows itself only existed and innovated to catch up with Mac. The Mac made its dent on the world even if you never bought one, because it forced Microsoft to make their operating system more Mac-like.

Learning to accept partial victories is part of life, and Steve's partial victories are a little more complete than some people's. (Alan Kay, anyone?)

<comment><USER9> Alan Kay is a particularly odd case — he's had to start over with Smalltalk half a dozen times _because it was too successful_.

Because people from elementary schoolkids to Disney to IBM were invested in it, he couldn't keep iterating. He had to leave it to them for it to rot in stasis, and go off to start over again with a new community until it happened again.

</comment></comment><comment><USER10> but the fact that AAPL now has a larger market cap than MSFT, twelve years after Jobs' return to Apple, has to give one pause.

This just reads to me that Microsoft has been failing hard since the great succession and Apple is capitalising on the void more than Apple's excellent strategy would've won the game against Microsoft back in the day.

My take is that Apple will lose, and yes, history is repeating himself. They'll lose in the mobile/tablet space to Android handset/tablets, and they'll maybe lose in the "real computer" space (eventually) to Ubuntu/Chrome OS or a revitalized Microsoft. I'm more confident of the former than the latter though, have heard "year of the linux desktop" just too many damned times.

<comment><USER11> By the same token, Microsoft capitalised on the void left by Sculley-era Apple. While Apple was charging thousands of dollars for underpowered Macs with 9" screens, Windows PCs could leap into the bottom end.

They weren't really good: users actually wanted Macs, but couldn't afford them at home, and businesses wouldn't pay the premium at work, except where absolutely necessary (publishing and design, mostly).

Software and "closedness" had nothing to do with it. The Mac had much better software -- Word and Excel were born on the Mac, as was Photoshop, Quark, Postscript, Hypercard.

The question isn't "is Jobs making the same mistake?" it is "is Jobs making Sculley's mistakes?". And the answer is "no". The iPhone and iPad are aggressively priced, ensuring they go just low enough to put them in reach of people who want them, and success doesn't depend on penny-pinching CYA CIOs.

Windows succeeded because it was good enough, just as Android is. Apple is trying hard to sure you don't have to settle for "good enough", you can actually have _good_ , this time.

<comment><USER10> I don't buy it, Apple products still attract a significant premium just for the brand. You don't see linux users purchasing Apple hardware to install linux on generally, which would actually be a good measure of if the hardware was worth the cost.

They're just trying to tie the software to the hardware and push the benefits of the software to the average user in a way that it can't be separated from the hardware (via their DRM etc in the chips).

Nothing Apple has ever made has been compelling to me in any way, shape or form. So from my perspective, they generally make worse products than the alternatives, this includes OS9, OSX, and definitely OSX touch.

<comment><USER3> Yes, people who buy Macs place enormous value on having a flat, nondescript image of a piece of fruit on their computers. We are all massive brand whores, and there has never been anything compelling about the design of Macs. Also, Linux users, and you especially, are extremely representative of the market for computers.

<comment><USER10> touche and a riposte, I'm well aware I'm not representative of the market for computers, but if you're here this probably applies to you also. So whilst you and the audience of mac users here may not be a massive brandwhore, that doesn't invalidate the point that a significant amount of the mac userbase actually are.

And when you have a company that is selling fundamentally the same product with a different label on it and marking it up 40%, yes, that does tend to be the difference. Maybe back in the Power PC days you had a point, but what's inside the magnesium case is now pretty much the same as what's inside the black plastic one.

<comment><USER3> Ignoring the fact that the hardware design is widely lauded as outpacing the competition, your argument is sort of like saying that two books are fundamentally the same if they're made of the same materials. Most users could care less if the computer's running on an x86 or PowerPC chip: everything is ultimately subordinate to user experience, cost, availability of desirable software, and interoperability. (At least two of those are highly contingent on the individual user: cost and availability of desirable software. If you're a heavy PC gamer, a Windows PC remains much more desirable than a Mac overall.)

Historically, Macs have owned user experience, but lost on everything else. These days, cost is still relatively high (although historically lower, given the drop in component prices), but the other things have gotten better. Growth of the web, cross-platform file formats, ability to run Windows on Mac hardware, shift in gaming from PCs to consoles, etc. have done a lot to mitigate the disadvantages of Macs.

This, by the way, is coming from someone who'd been using DOS and Windows up until a few years ago.

<comment><USER10> The hardware design component I just can't bring myself to care about, a fork is for picking up food, a computer is for computing, I don't care about the sheen on the stainless steel on one or the other, and it puzzles the hell out of me why people do. But I guess that's just human nature or something.

My "user experience" on a mac is utterly abysmal due to the lack of the customisations I use on linux and have been bound to inexorably over the years by muscle memory.

<comment><USER11> You found the OS X UI "bland and ugly" but caring similarly about the aesthetics of hardware is so inconceivable that it "puzzles the hell" out of you? I think you're getting your party lines crossed.

<comment><USER10> The actual software part that you interface with and concentrate on, yes, that part is definitely the part that I'm paying attention to when I'm using a computer.

The black or white or magnesium bezel around it? Not so much, keyboards and mice once again yes, but I hate apple keyboards / mice too (not because of build quality, but because of layout / design)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Actually, allowing 3rd party vendors to make MacOS-compatible hardware is basically what almost killed Apple to begin with.

So no, he's not repeating past mistakes.

<comment><USER13> Why was that so bad for Apple? Why didn't it work?

(I have no strong opinion on the matter.)

<comment><USER10> Because they basically acted as enablers for the competition on their core profit center. I'm prone to agree that it was a bad move keeping in mind what Apple's strengths are, but then I just don't think that highly of Apple's strengths so ymmv.

</comment></comment></comment><comment><USER14> It seems that some people will never learn that going for market share first isn't always the path to maximizing profit. I could understand these arguments when Apple wasn't doing so well, but now it's just silly; Apple has, for ages, been extremely consistent in prioritizing margins over market share. By all measures, it's working brilliantly for them.

Success through high margins is less visible and less obvious than success through high market share, and I'm guessing that contributes to the strange idea that Apple is somehow making a mistake with a high-margin lower volume strategy, but come on, they make more money selling cell phones than almost any other company in the world.

Apple could certainly license their OS to other vendors. But in doing so, they would be throwing out an extremely successful business model for one that eliminates their biggest differentiation from their competitors: the polish and quality they can provide by having complete control over all aspects of their products.

</comment><comment><USER15> Different situation. Developers make more money on the iPhone/iPad/iPod than Android at the moment. Developers will continue to target the platform where they make the most money.

Apple treats Apps as a switching cost. The more Apps and content that a user purchases, the less likely there are to move to a competing platform.

Microsoft won because Office, Outlook, games, etc increased the switching cost. Once you were over in the Microsoft camp, you were there forever. There was zero user churn.

The whole point of the Get A Mac campaign was about how the switching cost was now low.

Google treats Apps and content as a commodity. Ship your App and make crumbs from AdSense and AdMob. Google's switching cost is in the data in Gmail, Google Apps, etc. Google needs to ship Google Checkout worldwide and then store your purchased Apps like mail and docs to build up the same competitive advantage and attract developers.

</comment><comment><USER16> Some similarities this time around:

1\. iPhone leads out of the gate.

2\. Apple charges a premium.

3\. Apple does not license the OS for clones.

4\. Google not only licenses the OS, it's completely free, as is their development kit and app store.

5\. Apple lacks some infrastructure redundancy and is reliant on ATT and Foxcon, maybe others.

Some differences this time around:

1\. Meta standards. There's no longer the Microsoft file formats vs the Apple file formats that locked so much of the world into Windows/Office. These open meta standards eliminate the possibility of lockin. Hence even if Android pulls ahead in market share, it won't have the lockin that Windows had.

2\. Apple has fully transitioned from a computer company to an industrial design company. They just happen to specialize in consumer technology (and are not too shabby with the business tech either, thanks to BSD). Most people, consciously or subconsciously, perceive Apple this way as well. Apple owns this niche.

3\. Unlike Microsoft, Google actually has a sense of design and aesthetics. Not quite at Apple's artistic level, but, crucially, intuitive, easy to use for noobs, with power-user features under the hood.

I do see Android eventually outselling iPhone simply because of its cost, openess (to handset makers, app devs, and end users), economy of scale, and Google brand.

But I think there's room in this field for both, and no lockin to prevent that. Apple will do fine as the BMW of handsets, I don't see them coming so close to death in that role as they did the last time.

<comment><USER17> Good analysis, and I agree with your conclusions.

</comment></comment><comment><USER18> I think the PC succeeded because of the massive demand in business for a reliable, cheaper alternative.

The thing about the markets these days is that a tablet and a phone are very different from an office computer. They're much more personal. They're also cheaper to start with, so people might just be willing to pay for quality in ways that small/medium/large-sized businesses wouldn't for PCs.

But all of this is sort of thinking relativistically in terms of the desktop/tablet/phone space. However, there are too many paths out there these days for things to proceed slowly, linearly and predictably.

That's the one huge advantage that Linux has over all of this. It attracts people who are in left field who are going to change the entire paradigm. Maybe the future is 3D CSS transforms. Maybe it's Apple. But maybe it's a completely different dialogue. All it takes is one or two misguided people on HN, e.g.

</comment><comment><USER19> No, because computers have already been commoditized. The new innovation is in high-end items -- which are also partly _fashion_ and _style_. Sure, you can use an ASUS tablet running Win7 or Linux if you're willing to put up with it, but everyone else will shell out the extra $200 for an iPad. (cf. Swiss watches -> Cheap quartz watches -> Fancy mechanical movement watches, e.g. Rolex)

I don't think Jobs is naive enough to think he could have out-competed Microsoft with the "aesthetically pure products" strategy. I'm pretty sure he does think he could have maintained a much more significant chunk of market share for Apple through the 90's, but I bet he recognizes the strong pressures toward commoditization of the PC concept. And would we have iPods, iPhones, and iPads if Jobs hadn't been fired and grew complacent instead? Doubtful.

</comment><comment><USER20> Bill Gates wrote to John Scully to license the MAC OS to third-party manufacturers. Scully refused. Steve Jobs wasn't around when the first mistake was made.

29:00 into this video.

<http://ecorner.stanford.edu/authorMaterialInfo.html?mid=2457>

</comment><comment><USER21> Even if Apple allowed 3rd party vendors to make IPhone OS compatible phones, Android would still be free and Google would still push it as hard as possible, so the competition would still be there (which by the way is really good). Also, it's not easy to beat "free" from the vendors' perspective.

I think the iPhone will continue having a significant market share and I think Apple will continue innovating. In the meantime, the Android market share will grow, possibly beyond the iPhone share, but I don't see why it's necessary to only have one winner that takes it all. I think both companies, along with RIM, will do fine

</comment><comment><USER22> > who suggested a theory that seemed outlandish at first but is making more > and more sense to me: Steve Jobs just isn't bent on world domination.

Hard to understand how that idea could be outlandish considering how many times Steve himself has repeated it.

</comment><comment><USER17> yes

<comment><USER17> wow i expected up-votes for this. jobs is one of the greatest innovators of our time. but he got completely destroyed by microsoft last time, and he's going to get similarly beaten by android and google.

</comment></comment><comment><USER23> My gut reaction was yes just because I had already had this thought before.</comment>