Why Scrum is fundamentally broken (but we still use it) - <AUTHOR> http://joostdevblog.blogspot.nl/2014/03/why-scrum-is-fundamentally-broken-but.html <comment><USER2> > Purists want you to believe that only pure Scrum works

Purists would realize that Scrum was defined to be a self reflecting, self improving system. Scrum allows people to alter scrum to meet their needs.

> Scrum deliberately asks the team not to look too far ahead

This is not true. The product owner can put as much stuff on the backlog as they like and the team should know about it. Scrum does ask the team to not spend a lot of time estimating out stories that are months down the road (so very loose estimates are ok).

> Scrum forces that the plan cannot change during the Sprint. This way they > know where they stand during the Sprint.

This is true but not totally true. Scrum requires the product owner to "stand back" during a sprint. But, at any time, the product owner can declare the sprint un-productive and it restarts. How does the team know they aren't adding value if the product owner can't stop the sprint?

> For a game to be "potentially shippable" after every Sprint (as Scrum > requires) the certification requirements

See above where scrum allows you to alter the "rules" of scrum to meet the needs of the users. Scrum is not written in stone.

</comment><comment><USER3> The author has a very literal notion of "shippable". Shippable could mean to a beta group. It could mean to the public. It could mean that the feature is "done" but not turned on or it's hidden behind a feature flag.

Also, you are supposed to have retrospectives after each sprint to improve. This sounds like a discussion that should have happened with the OP's team at a retrospective.

<comment><USER4> Agreed. His argument is essentially that you can't meet deadlines with Scrum, because you must always be in a 'shippable' state at the end of each sprint.

I'd argue that if you can't meet deadlines with scrum, there's no way you'd meet them without it. His definition of 'shippable' is very narrow--like you said, just because it doesn't meet console certifications doesn't mean that it's not "doing scrum".

I wouldn't put the app I've got after the first dev sprint on the app store, either. It's not done.

</comment></comment><comment><USER5> _Shipping dates are therefore always met according to Scrum: just stop developing at the deadline and release the product in whatever state it was in at the end of the last Sprint._

The author perpetuates the myth that scrum is incompatible with businesses that have hard real-world deadlines. This is not true. Nothing in scrum requires you to blindly plow forward working through an un-altered backlog one week at a time until you either miss a big deadline or release a half-baked product. All scrum requires is that when adjustments are made (like cutting features in the face of an upcoming deadline), they are made according to an orderly process of prioritization that occurs during sprint planning and while grooming the backlog.

What agile buys you is early warning when inconsistent objectives emerge, so you can make adjustments well in advance instead of in a last-minute panic right before the deadline. Sprint-by-sprint demos ensure that you really know where you stand versus your backlog and roadmap. No more, "I think we're about 20% done with that".

</comment><comment><USER6> It sounds like he is saying that Scrum is not compatible with platform specifications because those are too stringent… From my experience, those are not very appropriate as goal posts, but they don't make scrum unusable; there is just a secondary list of goals between Playable (locally) and Shippable, in addition to game specification.

Not sure why he calls the first one 'Potentially shippable' though, not when he imagines project development with significant artwork drafts that should not be shipped: contradiction is within his own interpretations, there, not incremental methodology.

</comment><comment><USER7> The main principle behind the potentially shippable product increment is linked to the concept of always prioritising the highest business value stories, and in particular vertical slicing of functionality so that its implemented top to bottom.

In the game industry this would generally align with working towards a single level demo, possibly with simple graphics so that its playable and gives the end user an idea of what kind of game it is, and how enjoyable it could be with more work.

Now for a new type of game, or something a little different, this is absolutely the best way to go as you can find out if your belief in this game is supported by interest from those who play the demo before you spend years and huge amounts of money. So the standards you'd need to meet from Microsoft or Sony need to be implemented only when you feel you would like to ship it to the general public.

If used for the next Call of Duty game it may well damage the brand unless it surpasses the standard of the previous game, so whilst it is potentially shippable, it wouldn't be sensible to ship it any further than internal testers until you know its to a high standard.

Scrum is simple to implement but harder to get right, which is why so many groups implement what is defined as "ScrumBut", and when they don't get the suggested benefits blame Scrum rather than their "ScrumBut".

Think of it as being similar to speaking to a Spanish person. Scrum is speaking pure Spanish, and ScrumBut is speaking mostly Spanish and some English as you can't quite master those more complicated parts. If they don't fully understand you can't guarantee its the fault of the Spanish language, but rather its more likely the few English words you've used instead of the possibly mispronounced Spanish ones.

I'm certain there are some teams who have implemented pure Scrum and have not found the suggested benefits, but so many of these posts slagging off Scrum I've read are from people who have adapted Scrum, or haven't implemented it as suggested in books/courses.

I'm certain many of these people will end up slagging off XP, Kanban and every other framework/practice when they don't implement those fully either.

Before any quotes the Agile Manifesto at me, the individuals and interactions part is suggesting that if doing something at a process level that isn't adding any value then you stop doing it as you can achieve the same with less process and more interaction, not stop doing it because you don't like doing it even though its something you should do as it adds value.

</comment><comment><USER8> You don't have to create something ship-able between each sprint, it just has to be demo-able.

</comment><comment><USER9> There's nothing more annoying than a blog that commandeers swipe navigation.</comment>


D-Bus in the kernel, faster - <AUTHOR> http://alban.apinc.org/blog/2010/09/15/d-bus-in-the-kernel-faster/

<comment><USER2> That's the downside of having VM-based system emulation easily available: People who think that userland scripting is too complex take this complex functionality that occurs in semi-critical areas into C code, possibly into the kernel. Because _they_ can debug it just fine when they're trying it out in the VM.

Fast forward: the thing gets deployed by default on Ubuntu (or SuSE, or Fedora ... whatever), and people start getting hard-to-debug crashes. Someone, somewhere, will run into an ugly corner case. Or some app that has been quietly chugging along in the corner suddenly causes serious breakage.

That's the moment when you get all those bugs closed with WORKSFORME, INVALID or other non-solutions, because users can't get the debugging info on their production system, and the enthusiastic developers can't reproduce it on their system and are not as enthusiastic about figuring out which obscure corner case caused the sytem to misbehave.

As an example, see here: [https://bugs.launchpad.net/ubuntu/+source/ureadahead/+bug/48...](https://bugs.launchpad.net/ubuntu/+source/ureadahead/+bug/484677) Under various conditions, the boot process just gets stuck (e.g., when something has juggled the hard drive letters and what used to be /dev/sda is now /dev/sdb and vice versa, or you have a routine fdisk check, or something else), and when you switch off the splash screen (or don't have it switched on at all, for obvious reasons), all you see is the (spurious) message from ureadahead-other. Net result: this kind of spurious hangs on boot, which were reasonably easy to diagnose in the time of SysVinit, are now a serious PITA and the developers which are responsible for the boot process don't give a fart because people don't have the knowledge that's needed to debug the subtle interplay of dbus, upstart, plymouth (it's obvious that "plymouth" is the splash screen software and not a device driver for a CRT-based face tanning, isn't it?), and possibly others. (Full disclosure: I twice or thrice spent a whole morning figuring out a random boot problem without getting anywhere. After several hours, I found out that part of the problem was caused by mountall not finding something, then asking whether you want to continue booting without actually displaying a prompt that says so. Back then, I managed to find the corresponding bug on launchpad among the 5+ bugs about weird, hard-to-diagnose boot problems where all you see is the ureadahead- other message).

TL/DR: if you consider moving X into the kernel, please imagine yourself in a situation where X breaks in production and you have to guide a user through the debugging of X and various assorted components that talk to X in order to find out whether it's X or Y or ABC and what exactly is breaking. If that thought would give you a bad dream, please refrain from putting X into the kernel. Thank you.

<comment><USER3> "X" is a really bad variable to use, seeing as how it's the windowing system.

<comment><USER4> I think you got it the other way round.

X is a really bad name for the windowing system, considering they used it for generic variable name for centuries.

<comment><AUTHOR> UNIX has a history of names that don't make sense to an outsider. The first time I came across bitchx I was very confused.

</comment></comment></comment></comment><comment><USER5> +5 for realizing that dbus-daemon is stupid because IPC is the kernel's job

-10 for fixing it by putting dbus-daemon into the kernel

To redeem yourself please try again with the following requirements:

* No dbus-daemon

* No changing or adding kernel interfaces

Hint: put all the brains inside of libdbus

<comment><USER6> How do you want to implement broadcasting without a daemon or some other intermediary? It's called, you know, d _bus_.

<comment><USER7> I have a question - with systemd [<http://www.freedesktop.org/wiki/Software/systemd>], do you still need a daemonized message bus ?

OSX's launchd, creates listening sockets and when it receives a connection, it starts the service and hands over the socket to the service.

Given such a scenario, can you not simply work with plain-jane IPC ?

<comment><USER6> I don't see how that can be compared with a message bus. They do different things.

</comment></comment></comment></comment><comment><USER8> This really seems like something that shouldn't belong in the kernel. The D-Bus protocol is a bit more complex than other IPC, and it makes sense to me to keep that level of complexity in userspace. (Of course if it were a simpler model -- just a bunch of multicast channels, rather than all this filtering, it might make sense to put bits in the kernel).

</comment><comment><USER9> I'm surprised it has such an impact on an N900 signing on to Jabber. I had no idea it was so reliant on d-bus.

</comment><comment><USER10> Mach messages sneaking into Linux? </sarcasm>

</comment><comment><USER11> D-Bus in kernel, kernel slightly slower?</comment>


Google acquires Motorola - <AUTHOR> http://bostinnovation.com/2011/08/15/google-buys-motorola-for-12-5-billion/

<comment><USER2> I'm guessing the next reference Android phone won't be an HTC then?

Also, does this mean Motorola will stop making their Android phones hard to jailbreak?

<comment><USER3> The current reference Android phone isn't an HTC. It's a Samsung.

<comment><USER2> Doh! How did I forget that? I even -have- a Samsung Galaxy S at the moment, too.</comment></comment></comment>


Samsung releases new set of ads taking jabs at the iPhone 6 - <AUTHOR> http://9to5mac.com/2014/09/10/samsung-releases-new-set-of-ads-taking-jabs-at-the-iphone-6s-battery-screen-and-more/

<comment><AUTHOR> Samsung still doesn't know how to advertise</comment>


Opera Unite vs Tonido. Whose approach is better? - <AUTHOR>

Opera Unite seems pretty similar to Tonido. Will other browsers join the bandwagon: Chrome, IE and Safari. <comment><USER2> This Tonido astroturfing campaign is starting to get pretty tiresome.

Here are the usernames that appear to be a part of this ongoing campaign:

        villagegal
        devbloke
        codemechanic
        amaru20
        dj8nes
        madhan

I'm all for promoting whatever it is you're working on, but please stop with the shady tactics.

</comment><comment><USER3> JavaScript beats C++ but a daemon beats browser integration. It's not clear to me that either platform is that compelling.</comment>


Eschew text editors and IDEs. - <AUTHOR> https://medium.com/cool-code-pal/9e97640a48e8

<comment><USER2> If it wasn't obvious, this post is a troll. Jenn Schiffer is a twisted, brilliant genius.

<comment><USER3> It wasn't obvious to me. I read the entire thing before the _You know what's cooler than spending $99 on a license of Vim?_ phrase caught up with me.

Is satire and/or parody or irony amenable to an Information Theory treatment? Those categories of humor have a "low information entropy" feel to them.

<comment><USER2> I think the quote from "Ashton Kutcher" imploring people to give up text editors is what did it for me (but also that it's Jenn Schiffer!).

<comment><USER4> fdfdfd

</comment></comment></comment></comment><comment><USER5> This ... this is humor, right? I'm not running afoul of Poe's Law? The vim license bit (and what looks like Sublime Text in a screenshot claiming to be vim) seem to be hints. Perhaps even the misuse of "medal" is one too. I want to think this, though.

Taking this seriously: I've used input redirection to write things in dire circumstances a few times, but beyond that, anything that changes that file would be a text editor by definition.

<comment><USER6> No, Jenn Schiffer is firmly anti-satire:

[https://medium.com/cool-code-pal/2412631958ef](https://medium.com/cool-code- pal/2412631958ef)

</comment></comment><comment><USER7> That math doesn't add up. Once you choose your editor, you're no longer spending 90% of your time choosing it. (Other tools, sure, but you can't get away from that - any more than you can build a log cabin by chewing the trees down with your teeth.)

This article also assumes that the editor you end up choosing does nothing to increase your productivity. Nobody's going to be able to effectively work on a large Java app in notepad.exe.

<comment><USER8> Just as "a bad workman (or workwoman) blames his (or her) tools", so "a good workman (or workwoman) praises his (or her) tools". Consequently I spend a good proportion of my time evaluating my tools, my tools being a text editor and a spanner (or wench).

It seems like every week there's a new text editor, and so I schedule regular time to evaluate the newcomer, and compare it against all existing text editors. Simple maths indicates that the amount of time required to compare a new text editor with the growing number of previous text editors expands exponentially. I estimate that by the end of next year I will be spending several months every week evaluating my tools (not including spanners (or wrenches)).

</comment></comment><comment><USER9> I don't get the joke. To me the article is just misinformation.

I'm probably missing the grander social commentary.

</comment><comment><USER10> I am a victim of IDE shaming.

</comment><comment><USER11> I love the smell of satire in the morning. Especially Fridays.

</comment><comment><USER12> That's a screenshot of githubs new editor Atom.

</comment><comment><USER4> fgfgfg</comment>


Universities finally realize that Java is a bad intro programming language - <AUTHOR> https://thenextweb.com/dd/2017/04/24/universities-finally-realize-java-bad-introductory-programming-language <comment><USER3> As someone who primarily makes a living from programming JavaScript, I don't think this is a good idea. Java may be a bit syntactically bloated, but it's a much better engineered language than JavaScript. The parts "fit" together in a more methodical way. And while a learner may be able to get started with JavaScript quicker, as they move into larger projects they'll find the quirky JS implicit type coercion rules to create hidden and hard-to-debug errors.

And with Java's emphasis on interface vs implementation, it's an ideal language for learning data structures and algorithms. I'd say if you struggle with Java's syntax in your first year of CS, you might have a hard time making it as a professional programmer or academic computer scientist.

If they really wanted to move from static->dynamic, I'd agree that Python would be a much wiser choice, even though it too has its idiosyncrasies. As jacquem points out, Python has the added advantage of a rich data science/machine learning ecosystem.

Also, if they really wanted to use the web ecosystem, maybe TypeScript would be another wiser possibility than JavaScript?

Edit: IMHO, perhaps the best didactic language is SML, but that appears to be a losing battle these days.

<comment><USER4> I agree. When I TA'd intro programming courses, I found that most frustration stemmed from a piece of code not doing exactly what you expect it to do. JavaScript is famous for having a million quirks and places where behavior changes based on context ('this', for example). That's going to lead to a million places where students blow up because it doesn't do what they expect it to do. Students need lots of little wins, and JavaScript is full of little losses.

</comment></comment><comment><USER5> I'm not sure I'd consider a decision to move from Java to JavaScript an improvement. They are going from a bloated syntax to a bad-habit goldmine. Why not go Java -> Python instead?

<comment><USER6> Because you only need a browser. When you're just a beginner, setting up an environment can be extremely painful.

<comment><USER7> While the Java ecosystem is terribly and unnecessarily painful, working in a browser isn't exactly trivial either. Personally, I think Go wins the "easy setup" award--download the toolchain, `mkdir -p ~/go/src/project`, edit your files with your favorite text editor (they all have Go plugins), and `go build/test/install/etc`. No ANT/Maven/Gradle/etc files, no CLASSPATH, no IDE, no runtime or runtime dependencies, etc.

<comment><USER8> >mkdir -p ~/go/src/project

Where is the mkdir icon on my windows desktop?

<comment><USER7> I'm not sure what point you're making. It's easy enough to translate my unix shorthand for directory creation into windows instructions...

<comment><USER9> Windows even has mkdir. I'm not sure if this particular line would work though (-p is the default behavior on Windows; I don't think it would understand the switch).

</comment></comment></comment></comment></comment></comment><comment><USER10> Replacing a general purpose programming language with a language that really should have only one application (front-end web development) is a huge mistake. And there are many other, much better alternatives. Python would be fine, java isn't perfect but not all bad either, clojure could be interesting.

Python would have the added advantage that you can go in many different directions from data structures and basics to machine learning, web development or analysis and it probably would come in very handy when collaborating with other students.

Universities that pick javascript for an introduction to programming are making a choice of convenience rather than one that is best for their students.

Well, at least they'll have plenty of bad habits to unlearn later on.

<comment><USER11> Javascript is a general purpose programming language and your comment doesn't make any sense.

<comment><USER10> Hard to decide if your comment is meant as a joke.

<comment><USER11> How would I be joking? Do you even program with JS or are you basing your opinions on hearsay and a bad introduction you had one time in the past and haven't looked at it since?

Last I checked, Javascript is Turing Complete and has most of the common features you'd find in every other language. Just because it doesn't have OS interaction on the browser side doesn't mean it isn't a general purpose language. Have you ever even heard of Node.js? Have you not seen the wealth of great things implemented in Javascript?

Where does your claim that Javascript is not a general purpose programming language come from is what I'm asking. I can't seem to grok how one could come to that conclusion, which is why your comment doesn't make sense.

Don't get me wrong, Python is a great language as well, but outside of a slightly more preferable syntax, I don't see why you seem to think Javascript is such a bad language.

Javascript (in Node.js 7.9.0) even seems to have better benchmarks performance than Python 3.6.1 [1]

Please elaborate rather than making snide replies.

[1] [https://benchmarksgame.alioth.debian.org/u64q/compare.php?la...](https://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=node&lang2=python3)

</comment></comment></comment></comment><comment><USER12> Deciding to ditch it for Javascript...

They could at least move to a language which is not as full of traps for young players and odd quirks[0].

[0][https://www.destroyallsoftware.com/talks/wat](https://www.destroyallsoftware.com/talks/wat)

</comment><comment><USER13> As a Stanford student, an important caveat is that 106J is not replacing 106A. It is still being tested out this quarter, and this is the first time it's being offered. Enrollment in 106A is still around 400 while 106J is 40.

</comment><comment><USER14> From the comments on the site:

> If a simple Hello World program in Java frightens you, you might as well > forget about learning how to code.

Meh at this attitude. It's not that it's 'frightening', it's simply a longer path (and cognitive load) from code to result.

You want to pique a student's interest? Let them navigate to JSFiddle.net and begin making magic happen in an environment they spend all day in VS whatever- you-have-to-do-to-get-Java-running.

Not everyone who takes an _intro to programming_ class aims to build their own kernel. Some simply want to know how to build cool things. A little bit of dazzle in programming 101 will keep the latter interested without alienating the former, and you can get in to the thick of it later.

This 'you might as well forget about learning' attitude is toxic.

<comment><USER15> >Not everyone who takes an intro to programming class aims to build their own kernel.

And, for that matter, not everyone who takes an Intro to Programming class may want to become a CS major. They may want to do stats in R. They may want to be comfortable working with and running fluid analysis models as a mechanical engineer.

</comment></comment><comment><USER16> Winston Churchill said it best, "Java is the worst introductory language except all those that have been tried before."

<comment><USER17> Churchill was one of the best coders out there. Like when he said "My Java code be buged. But in the morning will still run, and you will have to update your npm dependencies".

</comment></comment><comment><USER18> I think something like Racket or other Lisps are much easier to wrap your head around as a first principles language. Python has its own set of problems, and JavaScript is complicated even for experienced programmers. If something more "modern" was needed, Ruby would also be a fantastic choice. It's easy to pick up, reinforces object-oriented design, and it has Rails.

I get why people think learning C first makes more sense as it builds strong fundamentals, but it encourages people to think a certain way that doesn't really apply to newer languages. I think you can really see that when you look at courses that teach both C and C++, where too much time is spent on doing things in C and not really learning how to work idiomatically with C++. If you compare C to a Lisp, I feel like the latter is far more applicable to modern everyday programming than the former, especially with the resurgence of functional programming.

<comment><USER19> I can't comment on the Lisps, Python, or Ruby, as my experience with them is limited at best. However, I believe that C/++ is a fantastic pedagogical choice - admittedly, though, I am biased - this was how I was taught in college. I feel that C allows you to get up and running with the basics very quickly (hello world, basic operations with numbers and strings, file I/O, etc), and builds strong habits around using data structures efficiently.

>I think you can really see that when you look at courses that teach both C and C++, where too much time is spent on doing things in C and not really learning how to work idiomatically with C++.

I think teaching a language should not be the primary goal of most software engineering courses. Instead, a language should be chosen that complements the syllabus. This usually suggests that it plays well with a particular paradigm and doesn't have too many quirks that delay a student's progress with the material. C++, in my experience, is used to introduce students to OOP, and I think it makes a fine choice for this.

>If you compare C to a Lisp, I feel like the latter is far more applicable to modern everyday programming than the former, especially with the resurgence of functional programming.

I think it's a bit early on to say that functional is more applicable to modern programming as compared to OOP. Iterative is obviously a no-go, but most developers today are immersed in OO and BAs/product managers speak it a bit more fluently than they do FP. That said, if you're just starting out, you can probably jump in to FP more easily than you could if you were to learn OO first.

</comment></comment><comment><USER20> I belong to the Java generation but thought it was very clean and nice, promoting good OOP practices. That was in 1998 though and Java was helmed by Sun, and we used something like Java 1.0-1.3. I can understand someone jumping into Java of today could feel far more overwhelmed. So maybe this hasn't always been a truth, but a truth that has been growing?

<comment><USER21> My sentiment exactly.

It did a good job of acting as an improvement over C++ as the language in which business apps were supposed to be written but at some point things like InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState started coming along and ruined it.

</comment></comment><comment><USER22> This came up a when this same news was discussed a few days ago on some other site: The JavaScript first manifest: [https://gist.github.com/rtoal/046c7be95aa077a832fcd87f5b0244...](https://gist.github.com/rtoal/046c7be95aa077a832fcd87f5b024446)

It makes a rather good (IMHO) argument that while, yes, JavaScript sucks, it does have redeeming qualities for usage as a first programming language.

<comment><USER10> I strongly disagree. The kind of bugs you can create with javascript are enough to make pl experts scratch their heads, scope is a mess and while there is no shortage of web frameworks and resources that have to do with web development outside of that the library field is surprisingly barren.

The only thing it really has going for it is distribution, if you have a browser then you can learn how to program in js.

</comment></comment><comment><USER23> Even as a JS developer, I'm not sure JS would be my goto. I actually really like introducing people through pure Ruby (so, not rails) since the syntax is pleasing, it has OO concepts but can also be used functionally, and really cuts down on the "scaryness" of the language.

Python isn't a bad choice but virtualenv, v2/v3 issues, etc do make it a bit scarier. Also there are a lot of bad tutorials out there that teach poor habits (not that JS is any better..)

ANSI C isn't a bad one either but I think it's more difficult to grasp and is slower to get results which might dissuade some new developers.

</comment><comment><USER24> I think JavaScript is a great intro language. Note, it's being used as an introductory language. I use it for teaching kids & it works wonders. Here's why:

* You can show off what you develop to your friends because everyone has a web browser. Being able to show off your work is very important to students' feeling of accomplishment.

* You can go to any website & start modifying their code. People love doing this when they start coding. Most of us that learned in the 90s probably learned this way.

* No special software/tools are needed. This is a bit of a repeat of the above two but it makes getting started so much simpler when you can focus on the code & not the environment.

* You can teach server side & front side development.

* You can teach functional programming & object oriented programming basics.

JavaScript is everywhere. With the skills they learn they can write code for the web, games, IoT devices, mobile devices, etc. Once they advance & start learning more advanced programming, then they can open up Pandora's box.

I believe an intro class should be about teaching very basic concepts & creating passion for the subject. I think JavaScript does a great job creating a snowball effect when it comes to learning programming.

<comment><USER3> It's a great intro language. But it's a poor language for university-level CS major students (I realize that most of these classes using JS are not CS-track classes).

<comment><USER24> I agree that a quality university should teach better languages for the bulk of the major. The class does say "No prior programming experience required" though.

I'm making a similar guess as I believe you are that a lot of non-CS students are taking this class. If that's the case, it works great for them if they want to use a simple language to do some automation later in life in some non programming related job.

From what I can tell, this class isn't part of the CS degree -[http://exploredegrees.stanford.edu/schoolofengineering/compu...](http://exploredegrees.stanford.edu/schoolofengineering/computerscience/#bachelortext) unless this hasn't been updated yet.

</comment></comment></comment><comment><USER25> I had a horrible time with Java when I took CS142 and CS143 at the University of Washington. It was a complex language even back then. As someone who had only played with HTML and a tiny bit of JavaScript back in the late 90s, I found the amount of boilerplate overwhelming and the language confusing. It didn't help that we didn't have the massive amount of online resources that we do today, so figuring anything out required digging through thick textbooks and obscure documentation files... if you could find them.

I ended up getting a 2.8 in both of those classes, and it convinced me that I wasn't good enough for Computer Science. I ended up majoring in something related[1], and eventually found my way to a programming career. But I occasionally think back about those days and wonder what course my life would have taken if the classes were taught in a more friendly language like Ruby or Python (which were admittedly quite obscure back then).

[1][https://ischool.uw.edu/academics/informatics/what-is- informa...](https://ischool.uw.edu/academics/informatics/what-is-informatics)

</comment><comment><USER26> Making Java an introductory programming language was a misbegotten idea IMO. I can sort of see the justifications: "it'll make students workforce ready", "it's a modern programming language and teaches OOP" etc. And relevance to industry is also probably why Stanford might be switching to JS.

For me an intro programming language should have one of two qualities. It should either:

a) have simple, easy-to-understand syntax so that students can learn the fundamentals of stitching together a series of logical steps into a working program

OR

b) be low-level so that students learn computers and programming from the ground up. I mean registers and pointer arithmetic and memory allocation/deallocation.

Either is a valid approach. For a) the most obvious candidate (to me) is Python. For b) it's either some sort of assembler language (my first language was 8086 assembler) or C

Java is a "tweener" language; it's not simple enough to teach programming and logic, but not low-level enough for students to understand computers at a basic level.

<comment><USER27> > introductory programming language

> make students workforce ready

That's the problem right here - the idea that a single introductory programming course can make anyone "workforce ready".

<comment><USER26> Not that one class alone. But it may very well be that students use predominantly Java throughout their degree, starting with this course. I got my bachelors in India so we started with C++ and learned Java for just one course in year 3. But when I came to the US for my Masters everyone who went to undergrad in the US only used Java for class projects. So it may be that for students who graduated in the last ~10 years in the US, Java is their strongest language. I didn't ask anyone about their language choices at the time so I don't know this for sure; others are welcome to chime in.

</comment></comment></comment><comment><USER28> I think JavaScript is an excellent choice. This is about getting people started, and you can start making your own apps in the browser right away with very little overhead. You can also ignore boring stuff like static types and only learn them later when doing bigger things. JavaScript also lets you learn functional programming basic concepts in an incremental way.

</comment><comment><USER29> The title is bit clickbaity: the article is mostly about Stanford's intro course. It's also misleading. Educators have known for a while that Java is not a good language for introductory education. The Greenfoot project attempted to work around some of its limitations, while other curriculums like How to Design Programs (using Racket in an environment designed for teaching) have used entirely different---and in my opinion much better---approaches.

The thing that seems to get skipped in these discusses is that curriculum is hugely important. I believe it's more important than language choice, though a good language for teaching certainly helps.

My own teaching is very much influenced by How to Design Programs. I think this paper is pretty good: [http://www.ccs.neu.edu/racket/pubs/jfp2004-fffk.pdf](http://www.ccs.neu.edu/racket/pubs/jfp2004-fffk.pdf)

<comment><USER30> On that note, the size of the courses are not even comparable. If you look at "Explore Courses", a website that gives information on Stanford's course offerings per quarter, you see a massive disparity between CS106A (the intro course almost all CS majors take if they have no programming experience) and CS 106J (The new course). The "A" course, taught in Java, currently has about 560 people in it, while the Javascript course has about 40. (Source: [https://explorecourses.stanford.edu/search?view=catalog&filt...](https://explorecourses.stanford.edu/search?view=catalog&filter- coursestatus-Active=on&page=0&catalog=&academicYear=&q=CS106&collapse=) )

I agree that Java may not be the best language to teach to beginning programmers, but to suggest there's been a wide move away from Java (as this article does) sort of oversells the situation, in my opinion.

</comment></comment><comment><USER31> I think it's a lot easier to understand OO, for instance, when you know what structs and functions are ("oh, a class is basically a struct with functions [methods] in it with an implicit argument pointing to itself, and some sugar on top? Cool, that was easy.") versus trying to jump straight in, which is what makes Java so painful to n00bs.

I don't see moving to JS helping with that problem much, though. If anything prototypal OO is _more_ confusing without that foundation, and loosey-goosey nothing's-really-defined-for-real-until-runtime languages might be fast to get started in but will quickly lead students into a big ol' swamp of WTF.

I'd think a semester of C as an intro, despite its warts, would make everything that followed much clearer. But maybe it'd turn off too many students because everything they'd do in that semester'd be kinda boring.

</comment><comment><USER32> >Java is popular, certainly, but it's also extremely clunky and syntactically bloated.

And Javascript?

<comment><USER33> The article fails to mention all the quirks with JS that will cause more headaches than "scary keywords".

</comment></comment><comment><USER34> My first two courses were in C++, and after that it was a mix of C++ and Java.

If my first course was in JavaScript I probably would've WAT, and gone into psychology.

It's funny reading the comments regarding some of Java's "bad" features like type safety, which I consider to be a strong selling point of a language.

In 101 my professor educated us as to how many holy wars there are in computer science, and that most of them boil down to treating opinion as gold. Then he told us to never get involved in them, and just do the damn job in whatever language, framework, etc... we were currently using.

</comment><comment><USER35> Java isn't a bad language for an intro programming language -- it strikes a nice balance between hiding low-level details that are often important to be aware of, but are intimidating to firstcomers, it has a rich standard library and well-made collection types, and is statically typed, encouraging type rigor and making it a good fit for dogmatic OO -- but it's undeniable that the allure of instant-feedback environments like in-browser JS is strong, and OO's stronghold in mass-market academia is being challenged by functional programming as it happened in the industry.

In fact, F5-ability, and widespread real-world applicability are the biggest selling points of Javascript-as-an-intro-language, given that there's essentially no standard library to speak of, so every exercise becomes unique to the environment -- either window, or Node's APIs.

As others have said, perhaps Python strikes a better balance between approachability (not too much boilerplate), dogma (indentation), lenience (dynamic typing), standard environment (a featureful standard library), and rapid iterability (interpreted from source). Not sure why it's not more widespread in these settings.

</comment><comment><USER36> The Stanford Daily's article is a much better source: [http://www.stanforddaily.com/2017/02/28/cs-department- update...](http://www.stanforddaily.com/2017/02/28/cs-department-updates- introductory-courses/)

This quote stands out:

> The computer science department has cycled through several languages over > the past decades. When Roberts came to Stanford in 1990, CS106A was still > taught in Pascal, a programming language he described as not "clean." The > department adopted the C language in 1992.

Moving to C makes sense, but the rest of that statement is extraordinary and needs examination. In 1990, Pascal was widely used, as many Hacker News contributors can attest to. In fact, it was designed for clarity, with teaching one of the design's use cases - the other being clarity for a pro coder - and was widely used for many years by many CS courses for exactly that reason. Some schools still use it in its modern OO form Delphi.

Javascript is widely regarded as a less than ideal language. On HN this is preaching to the converted, but: [http://www.javascriptgotchas.com/gotchas/common- javascript-e...](http://www.javascriptgotchas.com/gotchas/common-javascript- errors-and-mistakes.html) and [http://stackoverflow.com/questions/12694530/what-is- typescri...](http://stackoverflow.com/questions/12694530/what-is-typescript- and-why-would-i-use-it-in-place-of-javascript/35048303#35048303) both contain good material.

So the same person who considered Pascal - a clarity-focused and teaching language - unsuitable for teaching, considers Javascript - an unclear and confusing language with lack of type safety and many widely known gotchas, such that many people move to the Pascal-ish or C#-ish Typescript - <USER2> suitable?

</comment><comment><USER37> No one ever wrote a book called "Java: The Good Parts"

(glad I don't write Java (or JavaScript) on a regular basis anymore)

<comment><USER38> I'm not sure if your comment is implying that there aren't any "Good Parts" of Java in the first place, or that nobody needed to write a book that excluded the "bad parts" of Java.

</comment></comment><comment><USER39> I think the value of using an IDE and having access to a debugger outweighed the clunkiness of the stuff I didn't understand (like public static void main(String[] args)).

So much of web development comes across as formidable voodoo because of how many languages/frameworks are needed to even get anything to show up.

</comment><comment><USER40> The move to JS is a great one (although I'm sure many will disagree). When I was first learning programming, half the fun was seeing stuff happen on the screen. Doing programming in HyperCard[1] is one of the fondest memories I have of learning how to write code. And HyperTalk (like JS) wasn't really a "good" programming language, but it was a fun one.

JavaScript has easy access to the DOM, Canvas, and even OpenGL, which should make it a great introductory language. People are able to easily build more interesting stuff than yet another mortgage calculator.

[1] [https://en.wikipedia.org/wiki/HyperCard](https://en.wikipedia.org/wiki/HyperCard)

<comment><USER41> HyperCard was formative in my youth as well, and I definitely think JS is a fine introductory language for the self-taught, bootcamps, or even lightweight tech school courses. But when we're talking about top-flight CS programs like Stanford I think we should be teaching students something that generalizes better.

Java is crufty, but adequate for general algorithms. Personally I did the traditional Scheme in my MIT-based curriculum and so I have a bias for the syntax-less approach with a lisp, but if I'm being honest with myself I have to say that Python really is the best general purpose language for people to cut their teeth on.

It's not that I think JS is a bad language, but it is pathological in its TIMTOWTDI-ness, and that is going to confuse the hell out of beginners. To have a fighting chance you're going to have to lock down the curriculum to a sane subset of JS, Crockford-style, but even then you will run into nasty cognitive dissonance when exposed to real-world JS.

</comment></comment><comment><USER42> I laughed at the phrase: "While there's a lot to like about it, Java is perhaps the harshest language you can learn as a beginner."

"Harshest language" seems extreme, and I could name a bunch of languages that would be much harsher :)

<comment><USER43> My personal favourite is whitespace.

</comment></comment><comment><USER44> I'd recommend Processing as an intro class. I think getting people hooked on programming by giving them from the start the feeling of accomplishment and a quick feedback loop is most important.

It's also very good for learning the basics.

</comment><comment><USER45> Javascript is a great language to learn to program because it gives you feedback. Middle/High school students get something showing up and keeping them engaged.

However, in uni I think Javascript is a very bad first language because there is a level of focus expected (and required eventually for them to be good developers) that you don't need Javascript to help with. It's better to pick a language like Scheme or Python to teach the /ideas/ of programming first and then transition to C/C++ or even Java.

</comment><comment><USER27> Wait, they saw Java as bad beginner's language and they switched to... Javascript? It's like realizing eating carbs-heavy diet may be not healthy and then resolving to dine only on Big Macs & fries from now on.

Javascript is a good practical language, but it was never designed as a beginner's one and has tons of quirks, from minor, to major things like being kinda-OO-but-not-OO and kinda-functional-but-not-functional. And subjecting a beginner to some of the industrial JS framework code would be downright cruel.

</comment><comment><USER46> Learnt with Python, Uni intro went Haskell (which I know is done at a few others) + Java later in the year as an OO fundamentals language.

JS is a very poor alternative, but it's better than the French High School system that introduced it's own completely demented "Algorithm Language" AlgoBox. So many of my classmates swore to never touch programming because "It's difficult and pointless".

That first contact is incredibly crucial, and I don't think JS is the answer.

</comment><comment><USER47> I think that it's a big mistake that universities teaches programming in CS using most popular languages. They should use more didatical languages. Not being a popular language it's in fact a huge bonus, because it will force que students to learn other languages before leaving the university. Learning new languages shouldn't be a big problem for a good computer scientist.

</comment><comment><USER48> Although I agree with the case that Java is syntactically bloated and hostile to newbies. However, a person admitted to computer science programme should be well used to programming already from her high school or self-study. If not, the hostility of Java environment is just a minor issue in the context of other courses, alongside of learning how to survive at the university per se.

</comment><comment><USER49> I may be in the minority here on hacker news, but I think Java is a great language. It was intuitive for me to learn, and it is highly extensible/customizable.

Telling college kids to learn javascript first is a terrible idea. Teach them a static language first. Anybody who knows what they're doing in a static language will have no trouble picking up non-static languages like javascript.

</comment><comment><USER50> JavaScript offers too many opportunities to learn bad habits. The first programming language should ideally be 1) strongly-typed 2) syntactically simple and readable 3) better over-enforce rules than under-enforce

</comment><comment><USER51> I'm showing my age here, but in my first year of CS we used Pascal and COBOL.

My second year was the first year they taught Java, and back then it seemed incredibly easy and powerful by comparison!

<comment><USER52> Mine wasn't quite as 'aged', but not sure it was the best choice.

First programming language my school taught was C++.

</comment></comment><comment><USER53> Even PHP would've been a better move than to JavaScript.

<comment><USER54> As much as I loathe PHP, I have to agree.

</comment></comment><comment><USER55> when writing code, I like the idea 'fail fast, fail hard'. i.e. my IDE helps me fail fast by showing me bad code. my program crashes and burns with a verbose stack trace when I commit some runtime heinousness

javascript doesn't do that, and the first time they walk into a coding landmine they'll be scratching their heads for hours debugging it

</comment><comment><USER56> A better language? Pascal.

A lot of people here forget this.

</comment><comment><USER57> Good choice. I hope later they understand that algorithms are not necessary. All that you need is npm install.

</comment><comment><USER58> Not as bad as APL in 1978. It turned me off the idea of programming for 10 years

</comment><comment><USER59> Javascript? Ugh. On the other hand, this may increase my job security. :)

</comment><comment><USER60> are they going to blow the dust off an old good SICP one day?

</comment><comment><USER61> Java -> JavaScript :: C -> FORTRAN

</comment><comment><USER62> This is hilarious. I can't believe anyone looks at Javascript and thinks "aha, a better intro programming language". I agree Java has problems, but seriously?</comment>


The Shoe That Grows - <AUTHOR> https://theshoethatgrows.org/the-shoe.html <comment><USER2> This is awesome. Design that matters.</comment>


Google Hotpot - <AUTHOR> http://www.google.com/hotpot

<comment><USER2> I actually really like this product and think it's a genius move on Google's part.

Yes, they're late to the party, but what really stuck out to me was the fact that Google had a list of all the locations I'd asked for directions to in the past, by merit of the fact that I have Web History turned on. I don't have an iPhone or Android Device, so the fact that I had all the restaurants I might want to rate placed right in front of me was incredibly appealing.

As minor a detail as this seems, I think this slingshots Google into the venue-rating space. If I were Yelp, I think I'd actually be worried now.

EDIT: One thing that's a little weird, if you click on the comments area, it takes you to a blank page. See [http://maps.google.com/maps/place?cid=9906659489061041176...](http://maps.google.com/maps/place?cid=9906659489061041176&view=feature&mcsrc=detailed_reviews&num=10)

<comment><USER3> If I were Yelp, I _wouldn't_ be worried - reason: think Google's other failed attempts: buzz, latitude, video (before acquiring Youtube) etc. Google is best at Search, no doubt, but there are certain areas Google engineers just don't get, which is more of the result of its corporate culture and strategic focus. Especially since Google seemed to have failed at creating social-based products many times in the past, whereas review sites like Yelp, is very social.

Of course there are exceptions, like Gmail and Maps. But the mere fact that Google is entering my market wouldn't make me worry. Keep calm and carry on!

<comment><USER4> saying "there are certain areas Google engineers just don't get" doesn't exclude Google engineers from "getting" an area in the future

<comment><USER3> Sure, but at least until now we haven't seen the tipping point for a change in Google's product design approach.

In any case that wasn't my point, my point was that as an entrepreneur one shouldn't be deterred by the mere fact that a big competitor is moving into your market

</comment></comment></comment></comment><comment><USER5> I've been looking for a service that does this _exact_ thing. Give me personalized recommendations on restaurants so I can stop trying to comb through mountains of sometimes non-sensical, irrelevant Yelp reviews to decide what new restaurant to try.

A lot of comments here have complained that this has been tried and done. My question is, where? Does Yelp already do something like this? I went on Yelp a few days ago looking for this exact service. I'm not a Yelp user, and I just wanted something quick and lightweight that would give me recommendations based on my preferences. Found nothing to that effect. In order to contribute at all, I have to write a full review for a bunch of restaurants.

<comment><USER6> If you refuse to sign up to sites, you aren't giving them a fair chance.

<comment><USER7> The only people who give a startup a truly fair chance are the founders' parents. Everyone else skims, misreads, jumps around, and then tells their friends about a verdict formed mostly on misconceptions.

Great consumer businesses optimize for this behavior.

<comment><USER8> That was really insightful. Where's the Temple Grandin[1] of designing web experiences and UIs for Joe Blub? Complaining about not getting a chance to show off what you do is just complaining about your poor understanding of the behavior of the internet herd that's trampling all over your website or app. Stop whining, start designing. See also Luke Wroblewski's ALA article "Sign Up Forms Must Die"[2] from nearly 3 years ago and compare[3].

1\. <http://en.wikipedia.org/wiki/Temple_Grandin>

2\. <http://www.alistapart.com/articles/signupforms>

3\. [http://www.msnbc.msn.com/id/5271434/ns/business- consumer_new...](http://www.msnbc.msn.com/id/5271434/ns/business- consumer_news)

</comment></comment></comment></comment><comment><USER9> Thanks for the link. This is the first Google product launch I can remember where I have immediately liked the interface.

<comment><USER10> Agreed. I've never bothered to write a review on Yelp, but this interface was quick enough that I found myself writing a couple on here.

</comment></comment><comment><USER11> I guess everyone has to have one of these too :/

Is it just me or is anyone else sick of seeing the same features being developed on different platforms? Can't google and Facebook fill different spaces?

Buzz was late. Hotpot is late. Where is the innovation Google? Slept on Gmail unification. Wave was awesome but released the wrong way.

Google is starting to make the same mistakes Netscape made. They should stop trying to be another Facebook and continue doing what they do best.

I already have Facebook and Twitter. Give me a better online office app and keep kicking ass with Gmail and Search!

I'm just saying ;)

<comment><USER12> I guess they should have never done, gmail, chrome, search, advertising, mobile OS because someone else have done it already.

As long as they are pushing things one step farther I have no problem with them entering existing or even saturated market. It pushes everyone else to innovate instead of settle for mediocrity. Chrome has done that to the whole browser ecosystem, it shaked everyone up from their sleep. They might not do it every single time, with every single product. But there is no way to know if they will change the langscape, if they don't try it.

<comment><USER11> Pavs, I totally agree with you. Gmail, Chrome, Search and iOS were late. I was all over them when they came out too.

I was all over Wave and still think they should have slowly integrated its features into Gmail.

I was excited to get my hands on those first releases but I'm just not feeling any of their new stuff.

</comment></comment></comment><comment><USER13> Clever name. Hot pot is Chinese family-style fondue where everyone takes some meats and vegetables and puts them into a communal boiling soup bowl, waits for a while chatting, then pulls out _something_ delicious. I'm definitely interpreting it favorably, but it fits the service very well.

<comment><USER14> That was exactly what I thought of when reading the name. Hotpot is great, lets see how well the recommendations will be.

</comment></comment><comment><USER15> <http://www.google.com/support/hotpot/>

_Google Places and Hotpot isn't just about telling others what you think. It's about discovering new great places based on your personal tastes and preferences. Once you've rated places and added friends, start looking for recommendations of new places to try on Google Maps.

Next time you're looking for a new dentist, hair salon or restaurant search on Google Maps to see what your friends have to say. Your Google Maps search results will be prioritized according to your preferences. Then you'll see explanations from friends, so you can find the right place for you._

So like yelp, I guess. Was I supposed to know that already? The linked landing page has only the barest hint about what it is, and you have to be logged in to even see that.

</comment><comment><USER16> It's pretty silly that Hotpot doesn't use the geolocation feature in some browsers.

Also, it's kind of bizarre that even with the non-standard design, you can just _tell_ this is a Google product by the colors, font, and spacing of elements.

<comment><USER9> My first suggested search was my home address, which is set as my default location in Google Maps.

</comment></comment><comment><USER17> There seem to be a lot of rough edges here.

Is there a way to load more items to review without reviewing five? Otherwise, it's easy to get stuck if it pulls up a list of things you don't have an opinion about.

When I click on the number of reviews, it loads a mostly blank page. I'm assuming something going wrong because I would expect to see the reviews there.

The Google Maps tie-in is also confusing. Now it seems to show the things I've rated first, which is a bit weird, since I already know about them. When you rate new things in the Maps search results, nothing appears or changes dynamically to indicate that you've done so.

Also, my favorite restaurant seems to be missing, but maybe that's a good thing. :)

</comment><comment><USER18> I like it that the "best ever" rating is limited to 10 (will possibly be dynamic over time), so trigger-happy folk who tend to hyperbole will actually have to think before going "BEST EVAR!!" indiscriminately.

</comment><comment><USER19> This is unbelievable - the site isn't working for me!

I tried loading on Chrome and Firefox (Chrome says there's a redirect loop, Firefox gives a similar error.) I've also tried clearing my cookies, doesn't seem to fix it.

<comment><USER20> Try signing out and signing back in, loading in an incognito window, etc. (especially if you have an apps account).

<comment><USER21> "Have you tried to sign out and in again" is the new "Have you tried to turn it off and on again"!! :D

</comment></comment></comment><comment><USER22> Dont know the reason, but I actually typed 5 reviews after seeing the link. I have never done it on Yelp or Urbanspoon. I wish if they could display reviews from other anonymous users, instead of just my friends.

</comment><comment><USER23> Am I the only one to get "This webpage has a redirect loop." ? even after logging out from google accounts

<comment><USER24> If you are using Chrome you might try the "Remove cookies" extension. I found this solved some Google Account issues in the past.

<comment><USER23> well, I tried that, and every variations of browsers, google accounts and proxies I could think of, and redirect loop is all I got.

</comment></comment></comment><comment><USER25> It says the page is not available in my language. Where does it infer my locale from? I have set USA as my location in my Google account and preference for en-us in Firefox.

Hey Google, I don't want all pages to be in my language. Show them in English, please.

</comment><comment><USER26> Hmm. Rated 4 places, but the counter kept saying I'd rated 2. Reloaded page and only 1 rating showed. I clicked stars, wrote a paragraph, and rated the subcategories, and "published".

If it didn't save all that, I'm never using it again.

<comment><USER27> It's properly counting the places I've rated, but it's constantly taunting me, saying "Rate 4 more places to get new recommendations". Since 11 > 4, I think they ought to eliminate that bad message.

</comment></comment><comment><USER28> I reviewed 11 places in maybe 10 minutes or so. The UI is simple, intelligent & addictive. Brilliant approach to quickly catch up with the qypes, yelps & foursquares of this world.

</comment><comment><USER29> I _love_ the counters. It turns rating into a bit of a game :)

</comment><comment><USER30> This places the venues front and center and relies on a community of friends to generate any real interesting recommendations. What made yelp so successful was the community involvement.

This really feels like a recommendation engine based on your google profile and not a place to really get a feel for restaurants in your area.

</comment><comment><USER31> The problem I have with sites like this (and any restaurant review site in general), is that they always include national chains in the reviews/recommendations.

Really, do you need to read a review of the McDonalds on Main St. vs the McDonalds on Park Ave., before deciding what you are going to eat at dinner? Why not just group all McDonald into one place.

Not to mention that, due to limited palates, funds, or whatever, places like Olive Garden, Chili's et.al. always end up in the top ten places to eat. Over 5-star restaurants, or even genuinely better local restaurants in the same category/price range (in my city at least).

/rant

</comment><comment><USER32> This is cool, though I still don't have a way to offer a correction to a piece of data. One of my local restaurants has the address wrong in Google Places and I've yet to find a way that I can help correct it.

<comment><AUTHOR> On individual venue pages there is an "Edit this place" link.

Example: <http://maps.google.com/maps/place?cid=2313806217463839235>

<comment><USER32> Ah.

I was expecting a full read/write interface within hot pot.

</comment></comment></comment><comment><USER33> What I want is to email friends for their recommendations and have someone parse their prose and put it on a map for me. Friends ask friends for recs all the time and its tricky to google each place, put it on the map, figure out if you're near anything recommended when you're on the go. So just take what google already does with the survey forms, stick that in a simple email you can send to friends, and their recommendations automatically get pulled together into hotpot.

I wanted to build this but Hotpot has too much of a head start.

</comment><comment><USER34> Dunno if it works that well. I rate two or three sushi places (along with Chinese, Thai and American joints) and now my recommendations page has nothing but Japanese restaurants. In IR, this is called a diversity problem.

<comment><USER35> Wait a month or two. They'll have more reviews in their database, and they'll have had time to tweak their recommendation engine.

<comment><USER34> Sure, or it will go the way that Wave and so many other products before did. Or it will linger in zombie obscurity like Notebook did for so long. I'm not too worried about it either way.

</comment></comment></comment><comment><USER36> holy crap I didn't want to and ended up writing up a bunch of reviews... bravo.

</comment><comment><USER37> Hotspot would have been much better. What's a hotpot?

<comment><USER38> <http://en.wikipedia.org/wiki/Lancashire_hotpot> ?

<comment><USER39> Let's hope so.

</comment></comment></comment><comment><USER40> Oh, goodie, another Google service I can't use until it works with a Google Apps account. Looks like they really need to fix Google Profiles…

<comment><USER41> Generally I have two browsers -- chrome for google apps, and safari/firefox for everything else. The latter is logged into my normal gmail account.

<comment><USER40> I've done the same: I'm just shocked by how badly broken the google apps support still is (no profiles or youtube while logged in, even with multiple accounts enabled?), given that they have actual paying customers using google apps.

</comment></comment></comment><comment><USER42> Am I the only one who feels that six rating levels is too many? I'd rather just say "go there" or "don't go there".

<comment><USER43> Going to agree with you on this one. Viewing ratings is always questionable considering one person's 3 is different from another person's 3. On the other hand, the review system is supposed to be personalized, like Netflix. All it does is map you to those with a similar taste and recommend to you restaurants that you've yet to try that others with similar tastes have tried. The more you use it, the better it gets.

</comment></comment><comment><USER44> Probably a dumb question: Are the reviews private (or only shared with friends) or public like other sites?

<comment><USER45> The reviews are public, but you choose a nickname to identify you (you're not identified by your Google account). The "friends" feature lets you get recommendations from those people. In addition, a friend sees your Google Profile name and picture, not just your review nickname.

</comment></comment><comment><USER46> Does not work for me. <http://imgur.com/j6bta.png>

</comment><comment><USER47> Very funny ... HotPot is a Suki restaurant in Thailand - <http://www.hotpot.co.th/></comment>


Show HN: Fast and free VPN that unblocks internet and protects your privacy - <AUTHOR> https://tunnello.com/ <comment><AUTHOR> Hello dear hackers,

Last time that I posted a link here, that was about 2 years ago. I just wanted to spread the word about a tool that I made [https://curl.io](https://curl.io) for myself, but thought that it could be useful for people, especially sysadmins. I remember that I got huge of accurate and interesting feedbacks on this platform, so today, I'll try my chance again.

The dream of near-lagless VPN began in a cafe in Chiang Mai, Thailand, in early 2016. We wanted an ultra-fast but deadly simple VPN that even your mom could use it. Tunnello, a joint venture between a famous french VPN company and a new team of developers, was the outcome. After several months of R&D, Tunnello was soft-launched in beta in March 2016.

Tunnello is a next gen Google Chrome Extension. It uses new tech that (barely) affects the speed. It really really secure too, we use SPDY technology (which became HTTP/2) + TLS to encrypt your connection inside an AES-128 encrypted tunnel over an RSA-4096 bit certificate for key exchange. This delivers a nimble VPN protocol that is just as secure as the more clunky VPN setups, making it ideal for seamless web-browsing and video streaming with no lag.

We have been in beta testing since March and the community has really helped us with all their feedback on how to make Tunnello even better. We have improved the network quality and stabilized the connection. Our aim is global and we have already launched in 13 different countries, with some of those with strict censorship laws making it really challenging for us to continue to help our users bypass any kind of firewall, deep packet inspection so they can access the "real internet".

Last but not least, please note that we don't sell your data and we will never do it.

This has been a real adventure for us and we really love all the support that we get from our members across the world.

Enjoy the free unlimited bandwidth guys!

If you have any question feel free to ask us! :)

<comment><USER2> Could you justify the "10x faster" statistic? 10x faster than what?

<comment><AUTHOR> Compared to OpenVPN's technology on long distances (Chiang Mai to Paris).

<comment><USER2> I have an account with NordVPN, and I can still max out my bandwidth at almost any of their endpoints (assuming the endpoint isn't too congested). How can you improve on the bandwidth bottleneck?

<comment><AUTHOR> Good call!

Well, technically, the SPDY technology (now HTTP/2) allow to multiplex connections flow, So SPDY will make faster requests on web browsing concern.

Plus, other VPN technologies (OpenVPN/PPTP/L2TP) got heavier headers, which takes more bandwidth.

How much bandwidth you got? With 150mbps Fiber, we were maxing out the bandwidth with Tunnello (120mbps+), but OpenVPN was struggling between 20-30mbps with more latency on the same server and line.

You can test it by yourself, we'd love to get a feedback if you could try both on the same country.

</comment></comment></comment></comment></comment><comment><USER3> It's a pity that Tunnello doesn't work for Netflix: While Tunnello let's me browse listings that I otherwise would be unable to find, Netflix complains that I'm using a proxy the moment I attempt to play any of those movies.

<comment><AUTHOR> Yes we're aware of that issue, we're still finding a way to fix that.

<comment><USER3> Cool, thanks!

</comment></comment></comment><comment><USER4> Great product guys, nice to see KoHub work giving fruit :)

<comment><AUTHOR> Hey, thanks a lot... but who's talking? :-)

<comment><USER4> Friend of Hugo :)

<comment><AUTHOR> Excellent, cheers mate! :-)</comment></comment></comment></comment>


How Rogers is making their customers vulnerable to fraud - <AUTHOR> http://www.kennberg.com/2012/10/10/how-rogers-is-making-their-customers-vulnerable-to-fraud/

<comment><USER2> Rogers is actually pretty ridiculous. I was about to make a post about this, but:

Rogers also sends text message spam every month. You can't opt out. I have called on 4 separate occasions and spoken to a manager, asking to be opted out of the spam. The first few times, they apologized and told me I'd be taken off the list. After I wasn't, I asked to speak to a manager, who called me back.

He told me, "Sir, that isn't spam. Those are Rogers marketing messages." After I told him that I, the customer, considered it spam and would no longer like to receive them, he told me, "I will forward your request to our marketing department, and they will determine whether it is spam."

Best company.

<comment><USER3> I've passed up the 4S, the 5, and the S3 just so I can let my contract run out in December and not have to deal with them anymore. What I wouldn't give for some _real_ competition in the mobile provider space.

<comment><USER4> If only there were something even resembling competition in the Canadian mobile space. I'm not sure if Rogers is better or worse than Bell or Telus, because to me they're all pretty bad.

Recently, Bell customer service called my other out of the blue and talked her into getting a new package for her long distance on her land line. She's a senior citizen on a fixed income and she was under the impression that this was a cheaper plan. It turns out this wasn't a better plan at all. When she tried to cancel the plan she was told that she was on a contract and would have to pay an early termination fee.

The really great part is that she was never told that she was under contract and she never signed anything. There was apparently something in the fine print of the paperwork they sent her after the phone solicitation that said "we sent you this, so consider yourself as having agreed to a contract".

I couldn't believe it, so I called Bell customer service myself and I got the same response. She switched providers and refused to pay the fee (over $100), but Bell debited her bank account anyway, since she had set up pre-authorized billing. Nice way of doing business.

<comment><USER5> You have up to 60 days to dispute anything taken out of your bank account via ACH. If I were you, I would pursue that route.

</comment></comment></comment></comment><comment><USER6> I had to talk to rogers about getting some money back after finally cutting all of my services with them.

Because my old cellphone number was the account number, they started giving me information about the Department of National Defense employee who now owns my old cell phone number.

Hows that for a security failure on Rogers' part?

<comment><USER7> I experienced another security failure on Rogers' part: Just a few weeks ago I was able to reset the passcode on my Rogers cell phone account by supplying just my cell number and date of birth. This was through an automated system and no other information was requested. I wasn't even phoning from the cell phone; I was phoning from a landline that isn't associated with my Rogers' account in any way.

</comment></comment><comment><USER8> Totally agree that this isn't a great idea on Rogers part. But it strikes me that there is a relatively easy way to detect social engineering in this case. Just give the caller ridiculous answers in response to their first few queries and see if they balk. Only someone who knows the correct answers will challenge you.

It would be really nice if there was a better way to ensure the identity of parties on either end of a phone call. In my case, an inability to remember dates causes a headache every time I try to do telephone banking where it seems to be the only type of security questions they use.

<comment><USER9> _"Just give the caller ridiculous answers in response to their first few queries and see if they balk."_

Sure, you me and many others on HN could try this or be defensive when we get asked for our information but the common customer wouldn't balk. They would just rattle off the information and continue the conversation.

The point of the article is that this style of marketing is training customers to feel comfortable with giving out personal information when they're on the receiving end of a call.

<comment><USER10> Crazy. Are there any news articles where these type of social engineering scams have been successful?

<comment><USER9> I remember when it was a big deal on AIM and other IM services. You'd get a message from an official sounding screen name asking you to verify your password.

These types of attacks are why you typically see messages like "we will never ask for your personal information" from service providers.

<comment><USER7> _"we will never ask for your personal information"_

It's a nice first step, but then they break the security model by sending emails with a link to click on.

Every single service provider, bank, credit card, airline, or utility that sends me email, sends it with embedded links.

Customers have now been trained to click on links and give their passwords to login screens if they look halfway authentic.

<comment><USER9> At least in this case, I'm calling the bank. Meaning, I'm vising their page and I can confirm that it's actually the bank that I'm communicating with.

Browsers have been getting better about protecting users when it comes to online bank phishing attacks. Secure connections are emphasized more and getting rid of basic auth in the URL helps defend the customer from spoofing tactics.

</comment></comment></comment></comment></comment></comment><comment><USER11> Canadian cellphone companies are pretty much a oligopoly with 3 big players, Rogers, Telus, and Bell. All 3 of them are super expensive and locks people in on super long 3 year contracts. These companies are so shady they create multiple "discount brands" to make consumer feels like they have more choices. It's not till recently that Canadian government realized the need to create competition and auctioned off some AWS spectrum to a couple "startups", namely Wind and Mobilicity and couple other ones.

<comment><USER12> And the competition has quickly sued the government over Wind not being Canadian enough. [http://www.theglobeandmail.com/technology/tech-news/court- sc...](http://www.theglobeandmail.com/technology/tech-news/court-scraps- cabinet-ruling-on-globalive-dealing-blow-to-new-entrant/article572948/)

</comment></comment><comment><USER13> At work we had privacy training videos shown one was an employee who spoke about the mobile phone company he has service with, no names but he'll call it "Mogers".

When he signed up for service with "Mogers" they messed up his name on his bill, instead of e.g. "John Smith" they put "J ohnSmith".

Then a week or so later he starts getting junk mail addressed to a "Mr J ohnSmith".

</comment><comment><USER5> The same thing happened to me, but in the US. I think it was one of my credit card companies calling me, and they started asking me to identify myself. I refused, and I asked them for a number I could call in to. They gave me a number, I googled it to ensure that it was legitimately them, and then called the number.

</comment><comment><USER14> I had the same thing happen with my bell account, I got a voice mail saying a representative was coming to my house to install a cable box, which I hadn't ordered, the number that was left wasn't the traditional bell 310 number, so I called the bell number on my bill, only to find out that they had not left that actual message - I never called that number because I didn't want to get more spam. These types of calls from tel comm have become so prevalent, once for cable, once for mobile, once for my internet, that I've become numb actually listening to what they are actually saying anymore; I'm sure if my parents were left this message they would have easily given personal information no problem.

</comment><comment><USER15> Full disclosure: I work for the aforementioned. Much of this stuff doesn't appear to make any sense from the outside, and sometimes puzzles those on the inside. I'm not company PR nor am I trying to be. Actually, to be honest as I'm disgusted by the company for how they are handling things. Morale is in a slump and pressure from above to cut costs and increase profit is insane.

But to get back on topic: The policy this blogger has encountered deals with how a dealer must authenticate a customer before making any financially- impacting decisions or contractual obligations. As far as the lawyers are concerned this is to protect the company. If we mail out a new iPhone 5 and charge an account $100, then when it turns out you are not who you said that's simply too bad for us. We just lost an expensive phone. Arguably, it appears to make no sense in some scenarios like the one mentioned (where one could reasonably assume they are speaking to the correct person) but the reality is the person calling you has no bloody clue who you are. The account likely came up on their screen and the system dialed your number. You could be the account holder or a kid holding the phone.

The poor sucker calling you is likely sitting in a mile-long row of phones tethered to the desk by cords forced to listen to people complain all day long. Really, that's no different than just about every call centre. You asked for a manager... now guess what? You (if you're lucky) just got transferred to another call centre. Go figure.

Sales and service isn't all about money but that's all these big blind companies are able to see. You can complain about it all day long and it doesn't change a thing. Call up and cancel your service, perhaps then one of the dolts overseeing operations will see the light.

</comment><comment><USER16> Relevant: [http://www.youtube.com/watch?v=F2EJJ8BCfCg&hd=1](http://www.youtube.com/watch?v=F2EJJ8BCfCg&hd=1)

</comment><comment><USER17> Just redirect calls from Rogers and other toll-free numbers to your voice mail</comment>


McLaren F1 Developer Designs New Auto Driving 100 MPH on 96 MPG - <AUTHOR> http://www.businessweek.com/news/2012-05-29/mclaren-f1-developer-designs-new-auto-driving-100-mph-on-96-mpg <comment><USER2> >goes 100 miles (160 kilometers) per hour. It gets 96 miles to the U.K. gallon (1.2 U.S. gallons)

>100 MPH on 96 MPG

Not to knock 96 mpg at any speed but the headline is rather more impressive than the claim in the article.

<comment><USER3> Yup. This is a common pitfall when talking about European cars. They're sometimes quoted in Imperial MPG even when they're not for sale in Britain.

<comment><USER4> No, that's not the flaw (although it is true).

It can get 96mpg. It can go 100mph. It _cannot_ do both simultaneously.

<comment><USER5> The more fundamental flaw is how to drive _on_ a mile per gallon rate.

</comment></comment></comment></comment><comment><USER6> T.25 diarama photos:

<http://www.gordonmurraydesign.com/t25-diorama-photos.php>

Recent reviews of T.25 and (electric) T.27:

[http://www.autocar.co.uk/car-review/murray/t25/first- drives/...](http://www.autocar.co.uk/car-review/murray/t25/first- drives/murray-t25) [http://www.autocar.co.uk/car-review/murray/t27/first- drives/...](http://www.autocar.co.uk/car-review/murray/t27/first- drives/murray-t27)

</comment><comment><USER7> _Since an iStream factory would be two-thirds smaller, it would consume about 60 percent less energy._

This is either a journalist misrepresenting the actual claims, or else the actual claims have no grounding in rigorous analysis.

In a nutshell-- he plas to revolutionize auto manufacturing by making the body in two steps rather than five, using composite materials instead of stamped and welded steel, but the basis of his energy estimates is the size of the building that houses the work? A little hard to take seriously.

<comment><USER8> Actually you will find that Amory Lovins has done a lot of research into the costs of making cars ( <http://www.rmi.org/Autos> ) which I suspect feeds into the article's analysis.

There are challenges of course, when you collide with something at 70 - 80 MPH and you're in a composite material vehicle without a steel frame the energy gets distributed in harder to control ways. Its not an unsolvable problem [1] but it is another wrench in general acceptance.

Another challenge is of course 'style' points but styles change so its less of an issue. I expect that the continued high cost of oil will keep these sorts of ideas popping up. I hope that some of them get to production so that we can iron out the other problems.

[1] In the forgettable movie "Demolition Man" a collision system which fills the car with foam is presented. That is actually an actually proposed solution but one where false starts are hard to recover from.

<comment><USER9> 70-80 MPH collision?

Do you have any reliable source for working systems that protect you at that speed? I'd consider collisions at that speed lethal - or it's your lucky day. Ignoring the body material. In DE you are told (not that I can confirm that by experience) in your driving lessons that collisions > 30 KPH (K!) are very, very dangerous and that the statistical 'you might be heavily injured' line is somewhere around there. So .. I'm having trouble imagining something that hits anything else with 70-80 MPH.

<comment><USER8> McClaren (the guy in the original article) works on F1 race cars. They regularly have collisions at greater than 100MPH with out any injuries to the driver. (and yes some of them are into fixed objects like the track wall).

Here in California there is a wealth of data on injury and damages in collisions between 50 and 100MPH [1]. In general, when all applicable safety systems are employed (seatbelts, nothing obstructing airbags, Etc) the injuries sustained are rarely fatal and for the most part don't required a hospital stay. We have a condition called "Tule Fog" which is a dense low hanging fog that can occur rather suddenly, which every other year or so results in the collective colliding of anywhere from 3 to 75 vehicles at speeds from 10MPH to 60MPH. Again, people don't die in these pile ups generally unless the passenger space of the vehicle is compromised (like being shoved under the trailer of a semi-truck for example). In their table of 'injuries and fatalities' for 2009 [2] out of 201,660 collsions there were 2,594 with fatalities so a 1.3% rate.

[1] <http://www.chp.ca.gov/switrs/>

[2] <http://www.chp.ca.gov/switrs/pdf/2009-sec3.pdf>

</comment></comment></comment></comment><comment><USER10> 96 mpg (imperial) = 2,94 l / 100km

<comment><USER11> is that 80 mpg (US)?

<comment><USER4> Yes, more or less. 1 Imperial Gal = 1.2 US Gallons.

</comment></comment></comment><comment><USER12> _Sporting chiseled side panels that swoosh back from the front wheels like air currents, they exude quickness and agility._

Honestly, "quickness" and "agility" are the last adjectives that come to mind when I look at that picture. Not to mention I don't even think I would fit in that thing. Though I am impressed by the car's supposed 100MPH top speed.

OT: if any businessweek.com web developers read this, giant position:fixed headers are even more annoying than 1990s frames. Especially with the trend toward widescreen displays (not that I actually maximize my browser), taking away vertical space is just... wrong.

</comment><comment><USER13> but what is new? Glass fiber cars have existed for decades. Studies and experience shows that metal stamping is much more cost effective once the manufactured amount grows beyond a pretty low threshold. The article gives no information on how Murray's techniques differ.

</comment><comment><USER14> _"Murray [...] makes his autos out of a lightweight composite material similar to carbon fiber used in race cars._

 _"That allows him to jettison the robots and machinery that stamp and weld about 300 pieces of metal together in a typical car body."_

That seems to imply hand-layup, which along with the "composite material similar to carbon fiber" makes me have some doubts about the "8,678 euros ($11,000)" retail price for the gas model.

Anyone know any more details about the materials and process?

</comment><comment><USER15> How will this ease congestion? Making driving relatively cheaper will only encourage more driving.

<comment><USER16> Even if every current vehicle was replaced by one of these I don't see how it helps congestion. Sure cars can drive slightly closer together but not enough to make a big difference. And unless every road has lane width reduced and new lanes created we won't get more cars abreast either.

The only things that will help is fewer journeys at peak times, and some sort of inter-car communication system that manages traffic flow far better than our slow awkward human brains.

<comment><USER17> While you're probably right overall, we all know that larger vehicles slow down traffic for a number of reasons. Therefore there must be some truth that if we all drove smaller, more agile vehicles, there'd be improvements in traffic.

</comment></comment></comment><comment><USER18> This form factor paired Google's self-driving car tech seems like a no- brainer. High MPG rivals electric cars, cheap manufacturing cost, and for once, even the licensing interests align. I'd buy one.

</comment><comment><USER19> iCar? ;) that could be awesome ;)

</comment><comment> excuse-me An Audi A2 diesel does that, with four doors, so does the VW lupo 1.2 diesel.

Perhaps they need to re-brand diesel in the USA? They could call it "heavy- oil, a real MAN's fuel" !

<comment><USER20> In my experience: "real men" like diesel just fine here in America. So long as it's bolted to an F150 frame and can tow your whole house, and also your neighbors house, and his garage, with two Toyota Prius' parked inside.

<comment><USER21> I'm still disappointed that Toyota doesn't make their diesel trucks available in the US. I would kill to have a diesel in my 4Runner (before they made the 4Runner covered in plastic and less capable). 35MPG and torque from here to the moon... why Toyota? Why?

<comment><USER22> Same with my FJ. Why can't we have a diesel FJ Cruiser? Diesel seems like a natural fit for the FJ.

</comment></comment></comment></comment><comment><USER23> > 100 MPH on 96 MPG

WUT? Translation for the civilized world, please.

<comment><USER24> [https://www.google.bg/search?q=96+mpg+in+l%2F100km&ie=ut...](https://www.google.bg/search?q=96+mpg+in+l%2F100km&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en- US:official&client=firefox-a&channel=fflb)

96 miles per gallon = 2.45015191 l/100km

<comment><USER25> They're UK gallons, so it's actually 2.94 L per 100 km.</comment></comment></comment>


Ask HN: How do you validate your startup ideas? - <AUTHOR>

Hey guys – how do you validate your ideas beyond family and friends? Do AdWords+LaunchRock and MTurk work? Is there a better way? <comment><USER2> I'm not a fan of LaunchRock and similar services. If you want to gather email leads just put a MailChimp form on a free heroku instance.

Here's what I am a fan of:

1\. Step back and think about your idea real quick. Where did it come from? Is it a blue-sky "you know what might be neat" idea, or a "this is a pain in my (or someone's) a __and I'm gonna fix it" idea? If its not the latter, you might reconsider.

2\. Build a MVP or some mock-ups. Spend a couple days max.

3\. Grab a pen and notebook, get up from your desk, go outside and talk to people who may have the problem you're trying to solve. MAKE NO ASSUMPTIONS. Say "I have this idea and I'd love you're feedback but most of all I'd like to know what your biggest issues are."

4\. Craigslist is surprisingly effective in finding people that can give feedback.

5\. Use ifttt to alert you when people post Craigslist gigs related to your idea.

<comment><USER3> Hi callmeed, which section/column in Craigslist should I ask feedback?

</comment></comment><comment><USER4> There's no substitute for getting out there and selling to your target market, even if you only have a quick prototype.

AdWords + Launchrock can be a helpful baseline filter in established markets. But it won't tell you if you'd be successful in creating a new market.

I'm personally skeptical of surveys. There doesn't seem to be much correlation between what people say they'll do and what they actually do.

</comment><comment><USER5> Validation methods vary and depend on what you're doing. I am big into quick prototypes and going to market and seeing what happens. You'd be surprised how fast things get shared via facebook. Tell us more and I am sure we can riff off a few ways to validate.

</comment><comment><USER3> I had the same question, which was answered by reading the following book:

The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses

written by Eric Ries

</comment><comment><USER6> It depends what you're trying to validate. Read Lean Startup!

AdWords + LaunchRock might work, but it's become a bit over-used. And it only works for products that people Google..

</comment><comment><USER7> I'd also suggest Ash Maurya's Running Lean book. It covers how to implement Lean Startup principles for a product idea in detail.

</comment><comment><AUTHOR> micrypt over in the HN IRC channel mentioned using Kickstarter, has anyone had success with that?</comment>


Tiny Piano sales quadruple due to Apple commercial - <AUTHOR> http://blog.squarepoet.com/post/35196629175/tiny-piano-sales-quadruple-due-to-apple-commercial

<comment><USER2> I'm confused with the comments here - we do all know Garageband is the app in the ad, right? It just so happens that people see a piano and search "piano" in the app store.

I may also be missing jokes and/or sarcasm :)

<comment><AUTHOR> Yes, GarageBand is the app in the commercial. Why would Apple feature someone else's piano? :-) But it is nice that they said "App from App Store" instead of being more specific. That allowed the rest of us piano app developers to benefit.

p.s. I hope I'm not the only one around here who thinks of Tom Hanks when I hear that tune. I suppose all the kids downloading my app don't think of "big" when they see the TV ad.

<comment><USER3> Or Robert Loggia. I hope they never remake that movie.

<comment><AUTHOR> I loved Big! And Vice Versa (with Fred Savage). I think I fit their target demographic.

</comment></comment></comment></comment><comment><USER4> I saw this commercial and I was upset that Apple didn't explicitly say which App they were using for the commercial. At the end at the bottom it just said, "App From App Store" . Glad that people are finding the app though, the commercial is great advertisement!

EDIT: Ok, apparently this app is not the tiny piano app I thought it was in my initial comment. Thanks for clearing this up. The confusion is why I was upset they didn't explicitly say which app they were using. I guess its a just a good day to be a piano app.

</comment><comment><USER5> In other words, TV advertising is the most effective way to promote an app?

<comment><USER6> Depends on how you define effective. If you are getting free air time, with Apple PR picking up the bill, then yes, there probably is no better way of increasing your own revenue. However, if you are paying for the ad yourself - well, I guess there is a reason why we don't get a huge number of ads for individual apps (at least, that's the case here in the UK). Its simply not cost effective.

</comment></comment><comment><USER7> When I had an app featured in an Apple commercial it appeared in an "As Seen on TV" section of the App Store in that country, and lead to a sales boost.

</comment><comment><USER8> More like people trying to find a use for their iPad mini

<comment><USER9> No its more like people being interested in the application, finding value in it and actually wanting to buy it. When I got my Nexus 7 it came with £15 free content on the play store and I couldn't even spend it all because there was so little quality applications available.

</comment></comment><comment><USER10> 3 million downloads bringing in $10K revenues, that dosen't seem like a huge amount of money considering the spike in users of the app.

<comment><AUTHOR> Sorry for the confusion. I meant Tiny Piano achieved its 3 millionth download since its launch in February 2012. The TV ad is bringing in about 4x the daily sales.

</comment></comment><comment><USER11> Curious how you landed on the color scheme for the keys. Is that how you hear them?

I just ask because I've always heard D as "red" and you had yours at red/orageish. Was wondering if it was just coincidence.

EDIT: Scratch that. Just realized it was ROYGBIV with C as the root. :)

<comment><AUTHOR> I honestly don't recall. I am not a synesthete, and in fact I'm not a musician. That's why I make apps that make it easy for people to feel like they are a musician... :-)

This web app references various historical tone-to-color mappings. Check out the settings menu: <http://mudcu.be/piano/>

</comment></comment><comment><USER12> I read this title much more literally, I thought they had seen an uptick in physical tiny piano sales ([http://upload.wikimedia.org/wikipedia/en/c/c3/Schroeder_Pian...](http://upload.wikimedia.org/wikipedia/en/c/c3/Schroeder_Piano.jpg))

</comment><comment><USER13> In a way this reminds me of how Etch-a-Sketch sales skyrocketed after the Mitt Romney Etch-a-Sketch comment earlier in the year.

(Say what you will about the former presidential nominee, but Etch-a-Sketch is a pretty cool toy for kids!)

</comment><comment><USER14> I ran into Ron at Startup School. We, like many others, exchanged business cards. He added me on LinkedIn the next day, and was the only person I met who added me. I think Ron makes his own luck.

Congrats Ron!

<comment><AUTHOR> Hi Blake!

</comment></comment><comment><USER15> I actually thought the app in the ad was Garageband for iOS! Congratz man!

<comment><USER16> The app in the ad _is_ Garageband. However people just saw a piano and went searched for "piano" in the App Store and downloaded this instead of GarageBand (probably because the thumbnail looked like what they were looking for).

<comment><USER17>
        (probably because the thumbnail looked like what they were looking for)

Probably because GarageBand is five bucks and TinyPiano is free.

</comment></comment></comment><comment><USER18> The author's message is roughly "ship and improve", but I think he is understating "pay attention, work hard, and learn" which also show, though subliminally, and might be so ingrained in him that he didn't notice.

In the screen snap of the piano apps, notice that half of his competitors say "Download" instead of "Free"? That means he has already bought them, but they are not installed on his device. Research. Learn.

Also notice that he has a variety historical metrics easily at hand to guide him.

<comment><AUTHOR> Yes, I try to download most related apps. It's important to be aware of the competition. But don't be dissuaded by them.

I use as much analytics as I can. If anyone is interested in app development, they should definitely check out: App Annie & Flurry Analytics.

</comment></comment><comment><USER19> 10K is good monetization for 3 million free downloads. Its not easy to get that kind of money from ad displays. On a normal site you get a bit less for that amount of impressions.

<comment><USER20> Slightly less? What ad networks are you using at $10k that would be an eCPM of $3.33 which for non-mobile ads is pretty high for what the app is.

<comment><USER21> I don't know how that app works, but I would assume that it generates more than one impression per _download_. I assume it shows adds before/during/after usage, not just at download or first run.

</comment></comment></comment><comment><AUTHOR> Hey everyone! Feel free to leave me any questions here or on the comments section of my blog post. I'm happy to answer your questions regarding indie development.

I'm always glad to help another indie developer by sharing my experiences. The more information that's out there, the better it is for someone trying to make it!

-Ron

</comment><comment><USER22> Taken another way, this campaign would have clearly been -ROI if the Piano apps themselves ran it themselves. Although a mass-market television commercial clearly isn't the best way to reach a niche audience, I think it definitely says something about the market potential and profits of most apps these days.

<comment><AUTHOR> For sure, but I'm pretty sure Apple has been happy with this campaign. Not only did it result in increased iPad sales, it has increased app sales and iAd impressions, from which they get 30% commission.

The #2 iPad paid music app right now is a $10 app! That developer also owns the #1 iPad free music app. If I were him I'd be buying a plane ticket to Hawaii right about now. :-)

</comment></comment><comment><USER23> I consider this to be somewhat misleading advertising. The playing, especially towards the end, has the full chord and a bit of glissando which I'm not entirely sure you can do this on any app......

<comment><USER24> I don't hear a glissando in the ad, where should it be?

At around 0:15, just as the bigger iPad is going out of the picture, a third piano enters the song.

<comment><USER23> There's an ever so slight little twinge of something, maybe gliss is the wrong term... perhaps like a slight flam-like jazzy diminished 32th note into the actual note?

</comment></comment></comment><comment><USER25> Congratulations! Luck plays a role but ultimately it is your hardwork that brought you success! It is encouraging that independent developers do and can thrive. Thanks for sharing!

<comment><AUTHOR> Thanks! Yes, that reminds me of the quote usually attributed to Thomas Jefferson:

"I am a great believer in luck, and I find the harder I work, the more I have of it."

If anyone is thinking of doing indie development, it IS a lot of hard work. But if you ship and continually improve your app(s), there's a good chance you'll get lucky (someday).

<comment><USER21> Chance. Maybe not good chance.

</comment></comment></comment><comment><USER26> It's all very well deserved Ron, your app in fact demystified to me how to actually play the piano. Not to mention that my toddler loves it.

Greetings from Kyoto ;)

<comment><AUTHOR> Hi Paco! Glad your kid likes it. Let me know if you have any song requests, as I'm currently working on song packs for the next update.

I'm missing some Churro Star right about now. :P

</comment></comment><comment><USER27> Am I the only one to find this a bit sad? People do what Apple does. I know, it's always been like this...

<comment><USER27> Well, I guess it's good for us developers. Great news for you guys, congratulations!

</comment></comment><comment><USER28> I'm not surprised, it's a cute ad.

</comment><comment><USER29> That's great news, very happy for you :)

</comment><comment><USER30> I came here expecting a sarcastic joke at a sarcastic apple ad. Leaving pleasantly surprised :)</comment>