How Patents Are Ruining the Adoption of HTML5 Video - <AUTHOR> http://blog.framebase.io/post/51231726236/how-patents-are-ruining-the-adoption-html5-video <comment><USER2> _The third format is OGG as Linux does not support H.264 nor VP8 out of the box._

That's a wrong claim. VP8 support on Linux is commonplace. As well as H.264 support (if we are talking about system frameworks like gstreamer and etc.).

Browsers is another matter, and they ship with their own decoders. Mozilla provides an option to use gstreamer for Firefox, but it's not built by default. Mozilla can't use built in H.264 decoders simply because it will require licensing and will make it non redistributable.

Also, OGG is not a codec, it's a container. The author probably meant Theora.

<comment><USER3> I wonder why it's not on by default. It can't be illegal to ship a browser that uses gstreamer, right? Users can purchase and install fluendo's codec pack to decode h.264 videos, or use the hw decoders in their graphics cards.

<comment><USER4> The main reason was Mozilla's openness martyrdom, but they've relaxed that position somewhat. There are still problems with pluggable codecs (of while GStreamer is one form): different users will have different codecs installed, leading to poor interoperability and trojan "codec packs" have been a vector for malware.

</comment></comment></comment><comment><USER2> Google recently made an agreement with MPEG-LA, though it can be incompatible with open source licensing:

[http://www.h-online.com/news/item/VP8-WebM-cross-licence- inc...](http://www.h-online.com/news/item/VP8-WebM-cross-licence-incompatible- with-open-source-1867383.html)

Then there are also attacks on VPx by Nokia, which became a patent troll serving MS interests lately:

[http://www.h-online.com/open/news/item/Nokia-lines-up- patent...](http://www.h-online.com/open/news/item/Nokia-lines-up-patents- against-VP8-video-codec-1829299.html)

[http://www.h-online.com/open/news/item/Third-Nokia-patent- ta...](http://www.h-online.com/open/news/item/Third-Nokia-patent-takes-the- field-against-VP8-1871391.html)

See also: <https://datatracker.ietf.org/ipr/2035/>

There is hope that Nokia is just FUDing, and these patents can be invalidated or shown to be irrelevant to VP8. (That's the story with Opus audio codec being attacked by various patent trolls). But all this takes time and these trolls naturally hate the idea of open HTML5 video.

<comment><USER5> It's not incompatible with anything, Simon is saying if it _was_ an open source license it would be incompatible. But it's not an open source license, it's a separate agreement with no bearing on either VP8 or the existing patent grant.

You can sign the cross license, and still be able to release/reuse/whatever any open source versions you like.

<comment><USER2> Sure, this agreement doesn't really affect any encumbrance or non encumbrance of VP8 by any patents. One can ignore this agreement altogether. The reason Google made it was to reduce FUD, but Simon Phipps suggests that it might not reduce, but actually increase it.

</comment></comment></comment><comment><USER6> Is this post coming from the past? It cites a table from diveintohtml that was made in 2011. Figures of h264 penetration also dating from 2011. Things have changed since then: firefox has announced it would support h264. Opera has had versions supporting h264 but no longer does. Also, it fails to mention Google's agreement with MPEG-LA.

Finally, more than not giving anything new, it contains mistakes and confusions, the paragraph on Linux is terrible as it confuses containers and codecs, claims wrongfully that linux does not support h264 nor vp8 on the browser out of the box (all graphical linux browsers do support h264 or vp8, most support both). The only good thing to keep from this article is its title (oh and the update about firefox nightly).

<comment><USER7> Keep in mind that Firefox's H264 support is still dependent on your OS coming with a licensed H264 encoder (licensed as in patent license fees)

Mozilla still can't ship a H264 decoder of their own.

<comment><USER8> They don't have to. Ship a crippled version of libavcodec so I can replace it. Or in the glorious linux case: link to a system version of libavcodec.

Or just get some balls and ship like you are Videolan.

<comment><USER9> Unlike VideoLAN, Mozilla has a big, obvious income stream for H.264 patent- holders to go after. Mozilla, quite reasonably, thinks they should spend that income advancing their mission rather than paying off patent holders (in a way that undermines it). They're also, again unlike VideoLAN, headquartered in a very, very software-patent-friendly jurisdiction.

Mozilla isn't refusing to ship H.264 because they lack "balls". They're refusing because there are serious practical constraints that get in the way.

</comment></comment></comment></comment><comment><USER10> I was under the impression that Mozilla has already moved to support h.264 by using the host OS support for h.264:

[http://www.webmonkey.com/2013/01/mozilla-brings- native-h-264...](http://www.webmonkey.com/2013/01/mozilla-brings- native-h-264-to-firefox-nightly/)

<comment><USER11> Their opposition to H264 and MP3 was always more about political grandstanding than anything to do with them having to pay money.

They gave in on the MP3 issue too: <http://stackoverflow.com/a/12203792>

_Update October 2012: Wooohooo! Brendan Eich just announced on his blog that work for MP3 and H264 support in Firefox is underway. You can track the work on BugZilla: Support H.264/AAC/MP3 video/audio playback on desktop Firefox_

 _Update February 2013: After much heavy lifting from Firefox developer Chris Pearce, this patch flips the switch to enable MP3, MP4, H.264, and AAC playback by default in HTML5 <audio> and <video> elements when running on Windows 7 and later. We should see some native web MP3 support in the next stable FF release._

 _Update April 2013: Woohooo! The latest stable Firefox has experimental support for MP3. To turn it on, type about:config in Firefox, find media.windows-media-foundation.enabled and set it to true. Restart Firefox, and you're all set; go to a site with HTML5 audio (e.g. my radio site) and you'll see Firefox is indeed playing the native MP3 and not resorting to a Flash fallback._

 _Update May 2013: At last! Firefox 21 was released today, and it includes native HTML5 MP3 support on Windows. I just verified it supports native MP3 audio out-of-the-box, provided your operating system supports it. I tested on Windows 8, but I believe this will automatically work on Windows 7 and Vista._

<comment><USER2> Such opposition is reasonable. Someone has to fight against closed codecs. But fighting alone is hard. Google pretended to be the "white knight" when they promised that they'll drop H.264 support from Chrome, but they deserted the battle and didn't keep the promise. They could really influence the industry by dropping H.264 support from Youtube, but they don't have guts to do it since it's quite disruptive.

See also [https://hacks.mozilla.org/2012/03/video-mobile-and-the- open-...](https://hacks.mozilla.org/2012/03/video-mobile-and-the-open-web/)

<comment><USER12> I'm positive that anyone who misuses the word "closed" to refer to patent encumbrance has never had to suffer through working with actual by-definition closed codecs.

<comment><USER2> You should have enough information from the context, to distinguish closed as "no known specs", from closed as "not free to use". May be the term non free / free (as liberated) codec is more descriptive, but closed/open will do as well.

</comment></comment></comment></comment></comment><comment><USER13> H.264 / MPEG4 part 10 / AVC

Yes it is patented which is a definite disadvantage compared with a theoretical[4] patent free codec but it has some real advantages.

1) The standard is controlled and defined by a collective industry group under the auspices of ISO. [1]

2) Most of the major players in video technology at the time took part in the standardisation so are committed to FRAND patent licensing terms. [2]

3) In almost all cases and commercial business models (that do not involve Free software) the MPEG-LA H.264 patent license is really very reasonable and unlikely to cause problems to an otherwise healthy business. Note that the license Google has to the MPEG-LA pool of patents while free is NOT compatible with Free software.

4) Any companies not in the MPEG-LA pool that popped up now with demands really would trolls in the original sense that they have sat under the bridge for a long time waiting for a juicy opportunity rather than being upfront earlier. I don't think that this would help them in a legal case although there is no guarantee that they don't exist. [3]

5) H.264 is really quite good although the latest codecs are showing what can be done with further development and processing power.

6) H.264 decoding (and often encoding) is cooked into a massive amount of existing and deployed devices in ways that cannot be adapted to VP8/VP9 by a software update.

For now H.264 is the no brainer option for any commercial system although multi codec support may be worthwhile in some cases. If you want patent free I recommend MPEG1 as I believe any patents on it should now be expired or at least expiring very soon if they were granted a long time after filing. I'm glad that Firefox has backed down and will now use the OS codecs to allow playback of H.264.

[1] The OOXML case shows that this isn't foolproof but in my view it is a better option than the standard being controlled by a single company even if the controlling company publishes the source code. This applied to Microsoft when they offered VC-1 as a free alternative to H.264 (there is now an MPEG-LA pool) and to Google now with VP8 and VP9 now. Google is the new Microsoft and has fully learnt the lessons of "Embrace, extend and extinguish".

[2] Not Free software compatible but better than nothing. And even Google's license to the VP8 patents from the MPEG-LA pool does not seem to grant Free software compatible rights.

[3] There is a greater risk of people popping up with claims against VP8 or VP9 as they are newer and less prominent. The MPEG-LA's call for a pool of patents has helped draw out those patent owners and many have joined the pool and reached terms with Google (although Nokia and maybe others haven't.

[4] Realistically for patent free greater than 20 years old is the answer so it probably needs to be MPEG1.

<comment><USER2> Whether it's better or not in some aspects, in practice patent encumbrance makes such decoders non redistributable, therefore open source browsers can never normally adapt such codecs, and it makes sense for W3C/IETF to choose mandatory codecs only from explicitly open (i.e. free and non patent encumbered). The best course of action is not to bow to codec cartels like MPEG-LA, but to fight against current closed codecs domination and to advance open ones by improving and creating new better codecs.

 _There is a greater risk of people popping up with claims against VP8 or VP9 as they are newer and less prominent. The MPEG-LA's call for a pool of patents has helped draw out those patent owners and many have joined the pool and reached terms with Google (although Nokia and maybe others haven't._

This is common FUD. Whatever was in that "pool" - the end result no one attempted to attack VP8 with patent claims, except for Nokia. The strange counterexample to the claim that "prominence" guarantees safety is Google, who used H.264 against Microsoft themselves. Nothing is protected against sudden patent attacks. But if there are no known patents - then paranoia won't help anything.

<comment><USER13> I don't claim that W3C or IETF should standardise on H.264. I think it is perfectly sensible for them to hold the line but the practical reality for implementers is that H.264 is a commercial requirement.

Note that I said "greater risk" not that there was no risk for H.264 or that it is a massive showstopper for VP8. I stand by my statement although this really isn't critical EXCEPT for the fact that due to FRAND commitments potential claims are limited (as the Motorola/Google case is showing). If you have made no FRAND commitments you can get injunctions or ask for outrageous (hundreds of millions of dollars or even billions) licensing fees but if FRAND commitments have been made you cannot do this as the courts are educating Google/Motorola.

The obvious baseline for W3C to adopt would in my view be MPEG1 allowing a fallback to a safe free codec and modern non free codecs to be used otherwise.

<comment><USER2> Quality is important. Using poor quality common denominator is a bad idea. Once Nokia attack is cleared, VPx would be good to use again as a base available open codec. FRAND or non FRAND can affect damages, but as I said above it doesn't change the non redistributable nature of anything that depends on it.

<comment><USER13> I'm not convinced Nokia will lose.

Even if Nokia lose and no-one else comes forward the Google licence is non- redistributable anyway so for many purposes is no better than the AVC one.

Freedom, zero cost, quality, low legal risk. Choose two.

<comment><USER2> Anything can happen, but On2 was diligent in evaluating public patents related to video. So it looks like Nokia is spoofing things up. Time will tell of course. One of the benefits of the IETF process is the requirement to disclose all the patents, so they can be evaluated and refuted if possible. I'm sure WebM project is busy with reviewing this.

 _Freedom, zero cost, quality, low legal risk._

Where did you find freedom and zero cost there? Low legal risk is a myth in the land of patent minefields.

 _the Google license is non-redistributable anyway_

Again wrong. VPx content as well as encoders and decoders are redistributable under the current license which is fully open source compatible.

<comment><USER13> >> Freedom, zero cost, quality, low legal risk.

> Where did you find freedom and zero cost there? Low legal risk is a myth in > the land of patent minefields.

I made it up, couldn't narrow it down to three. MPEG1 is low risk, free and Free now. AVC is low risk now it has been a juicy target for long enough to draw out trolls and it is high quality. VP8 is high quality and zero cost.

The license that Google has from the MPEG-LA doesn't seem to allow for those who accept the license to sub license. If this is incorrect please send a reference.

You seem to be of the view that the pool contents are either invalid or non- essential. Until I see a detailed study of them that indicates this with claim by claim explanations I will assume that at least some may be valid. Now Google has taken the license it is highly unlikely they will challenge the pool patents (and they may be contractually obliged not to). This means there is no big player likely to fight the patents and make the status clearly open source compatible.

<comment><USER2> Ah, I see, I thought you meant all 3 as related to H.264.

 _> The license that Google has from the MPEG-LA doesn't seem to allow for those who accept the license to sub license. _

The license is a FUD reduction tool. You can simply ignore it in the context of the open source license of the codec itself - it's not part of that license at all.

 _> You seem to be of the view that the pool contents are either invalid or non-essential. Until I see a detailed study of them that indicates this with claim by claim explanations I will assume that at least some may be valid. Now Google has taken the license it is highly unlikely they will challenge the pool patents (and they may be contractually obliged not to). This means there is no big player likely to fight the patents and make the status clearly open source compatible._

I'm not sure what you are talking about - patents that MPEG-LA supposedly has against VP8, or the patents that Nokia presented against it?

If the former, those contents can as well be simply non existent and their potential existence used as a tool to spread FUD. Until anything is publicly presented (like Nokia did), there is no reason to pay attention to that "pool". Note that Google didn't license any patents that are known to be affecting VP8. Nothing like that. They just licensed "something", so that MPEG-LA would stop making statements like "what a good codec you have here, a pity if something would happen to it _if and when_ we find some patents against it". I.e. Google bribed them to stop spreading FUD. In no way does it demonstrate that MPEG-LA has any actual patents against VP8.

If the later - the list is published, and now in the process of being reviewed / refuted. Let's see how that works out.

<comment><USER13> I listed four features and suggested that only two were available from each of the current codecs.

You are also free to use open source AVC implementations and ignore that MPEG- LA license too. Depending on who you are and what you are doing with AVC the probability of action by a patent holder could be very low.

I meant the patents under the MPEG-LA from the eleven companies (some of whom I would take seriously) and including at least two of the biggest Android manufacturers rather than Google's enemies:

CIF Licensing LLC

France Telecom

Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V.

Fujitsu Limited

Koninklijke Philips Electronics N.V.

LG Electronics Inc.

Mitsubishi Electric Corporation

MPEG LA, LLC

NTT DOCOMO, INC.

Panasonic Corporation

Samsung Electronics Co., Ltd.

Siemens Corporation

You are right that the patent list does not seem to be published which is unfortunate. If the patents in the AVC pool owned by these companies were checked against VP8 by someone credible and preferably independent it would give quite a good degree of assurance about them.

Do note though that Google claimed to have bought On2's patents and they too only seem to be offered under the same non-FOSS compatible licence as the MPEG-KA ones.

As for the Nokia patents I don't think that they would have been brought to courts if Nokia didn't think victory was a realistic outcome. However the drop out rate for claims is very high in all the patent disputes although it seems very hard to predict at the start what will stand up and what will fall so it is entirely possible that they will fail. From my perspective this seems a bad sign for the consistency and predictability of patent law which needs major reform rather than proof that Nokia is claiming rights that IT doesn't believe it has.

<comment><USER2> Patents related to VP8 which Google bought from On2 are freely licensed, see <http://www.webmproject.org/license/bitstream/>

The list of companies doesn't impress me. Many manufacturers are engaged in patent racket. It's Google refusal to play the same game that caused their ire and fear mongering. As I said, until they actually publish what's supposedly exists in that pool - there is no point to pay any attention to their claims.

<comment><USER13> Still not FOSS compatible as the patent grant is only for implementations of the specification. It is still a pretty generous grant without other caveats though.

The patent "racket" is the system enshrined in the current laws which I agree need fixing but our wishes for that to happen don't make it so and the patents won't disappear unless it does or until they expire.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> HLS (http adaptive streaming) is non-existant in Chrome, except for on the Google TV. So I end up having to develop in Safari, which is painful. Especially when I'm making apps for the Google TV (and other SmartTV Platforms).

::le sigh::</comment>


Palm Pre, Who? Recession, What? Meet The $99 iPhone. - <AUTHOR> http://www.techcrunch.com/2009/06/08/palm-pre-who-recession-what-meet-the-99-iphone/ <comment><USER2> I want one so bad. But isn't the service still like $60 a month? That adds up in a hurry, plus I'm locked in with Verizon right now.</comment>


How to never complete anything - <AUTHOR> http://ewanvalentine.io/how-to-never-complete-anything/ <comment><USER4> I can't imagine ever shipping a side project. That's not why I build them. If I ever got to the point in my life where I do want my own company, a side project is not the way I want to go about it. Companies take a lot of work, that work has to be understood, then delegated and shared.

The technology aspect is really only 10% of it. Sure, it's the essential 0-to-1 kicker that gets you going, but once that's done you still have to find product-market fit. That quickly assumes second-job status and can wreck your personal life. I've seen it happen.

A side project means you're taking all that on yourself without any help or real guidance. Not having that help means that when you finally do ship your side project, it's probably not going to achieve the kind of rapid growth you need to make scaling up possible.

And you really need rapid growth in order for working on a startup of your own creation to beat out having a reasonably-decent job. And if you don't have a reasonably-decent job, it's way easier to switch jobs / industries than it is to build out your own company.

What I want out of a side project is the kind of deliberate practice that is often lacking in my real job. Also to chase down random mind hares that seize my interest.

<comment><USER5> This is a rationalization and you know it.

There are tons of other people who also think side project is a way to learn something new, yet they ship.

Also there are tons of startups that started out as side projects. Facebook did.

You have no excuse. Stop lying to yourself because it's not doing yourself any good. The only reason you're not releasing your side projects to the world is because you are afraid of criticism.

<comment><USER4> Oh believe me, I did try. Moved in with a business cofounder and started working on an idea. We squabbled over a lot of things before I realized that it was a marriage and not a transaction, and what I wanted was more transactional. So I bailed and got a job.

I still talk with the guy and fill out estimates for his potential clients whenever he wants. We'll eventually hack out a working professional relationship and start a company together.

The fact of the matter is that personal life matters more to me than professional life. I think a lot of people wind up using professional accolades to make up for things they can't get in their personal life. Maybe that's not you, but for me, working on my relationships and my emotional health is 100x more important than a big pile of money and influence ever will.

Maybe your answer to this is to "just work harder." To that I just have to say, 'absolutely not'.

<comment><USER5> > Maybe your answer to this is to "just work harder." To that I just have to > say, 'absolutely not'.

I said "ship" it. not work harder. You can even ship something you built in a couple of hours.

It IS ok to not ship every single project you work on, but it is not ok to be proud of how you never ship.

Personally in terms of "learning" I learned 90% of what I have learned AFTER shipping. You think you are learning but you are only scratching the surface.

<comment><USER4> It still takes time. Time spent away from your loved ones, away from your friends, away from doing the things you really want to do with your time. It's great that you find meaning in learning from the market. But the only love the market can really give you is colored green.

<comment> at-fates-hands As someone who started a side business with the thought of doing both that and my normal 9-5 until my side business took off, everything you've said in all your responses is completely accurate.

I found out that after landing six clients and taking on a ton of business, myself and my partner (who was also working a full-time job too) got in and suddenly my personal life vanished. Sure, the money was rolling in, but all of my relationships suffered, I didn't have time to do the things I really wanted to do.

Worse yet? I felt like all my clients would want the latest and greatest web technologies and applications to make their businesses run smoother and easier to manage. Nope. They just bickered with me and it was a series of struggles to get anything done. Twelve iterations of design and several "come to Jesus" meetings couldn't stop the non-stop changes for one client. Another client was stuck in a paper and pen world and didn't want to automate or change anything about the one process that hindered their business. Another wanted web design from 1995. It was maddening.

After a year, I fired three of my clients, finished two of the sites and cut those clients loose and then kept the only one that was a joy to work with.

My life returned to normal, but it made me realize exactly what you said. My LIFE is more important than a pile of money. Maintaining my relationships with my family and friends should be more important.

</comment></comment></comment></comment></comment></comment><comment><USER6> I finished my side project a couple of years ago, released it, and then found I was able to quit my Python webdev job and go full time making video games.

The key difference is that my project was a video game (this one: [https://www.youtube.com/watch?v=YwXl8lDrxn8](https://www.youtube.com/watch?v=YwXl8lDrxn8)) and that takes a lot of temptation to do what the OP is writing about, rewriting stuff in Haskell for example. The interesting bit when it comes to side projects (and now my full time projects) for me isn't actually the tools or the methodology or anything like that, but the end result. I spent my teenage years building games that I never finished, and it made me quite miserable, because I so just wanted to finish something. Anything.

I remember the first game I ever finished was a clone of Snake. There was nothing remotely interesting in the implementation or in the design, but I was so flipping pleased with myself, I had finished something! And that let me slowly build my projects up to more interesting endeavours, and eventually to one that could be sold. Starting small was the key for me, as I learned two things: 1 - what was 'too much' for me to try and tackle at the time and 2 - self-discipline, not chucking the project the moment I got bored, or had a 'better idea'.

<comment><USER7> Thanks for the inspiring story.

One question - how hard is it to actually deal with the administrative, non- code tasks of turning your side project into your main business? I'm talking about incorporation, supporting clients, basically all the stuff that goes on outside the source code repository.

<comment><USER6> Honestly, not very much. I'm incorporated in the UK, which involves a 15 minute filling in of a web form to accomplish. I have an accountant who really helped me in the early days walk through some things I needed to know (normal stuff like save my receipts) and handles the VAT filings. The biggest time killer for me is the quarterly MOSS filings (registering European VAT) but that's a couple of hours of work four times a year.

Supporting my customers ought to be the biggest time sink, but actually, I never needed to patch the game.

Organising discounts and Steam sales and things like that takes thought, but I actually really love that side of my business.

For my current project, marketing is going to be a big deal for me, but I learned a lot doing that for The Cat Machine, and for me it's as important as anything that goes on inside my Git repository.

</comment></comment></comment><comment><USER8> _Ship daily_

This is the advice I can give to anyone who has a side project. Get to the point where you can show something to the users and just start adding stuff.

Even if it's just two lines of code or changing the favicon - still worth it. In practice, it's harder to do than it sounds, but I've been doing it for some time and it's been going great.

In reality, you won't have millions of users on day 1 no matter how great your product is. If you start small and keep adding stuff you will have more success.

In fact, the biggest challenge for side projects is marketing and not the tech or infrastructure.

However, it also depends on the goal - if you want to build the project that makes money it's completely different story to experimenting with tech. In the end, you get the experience.

For example, a few years ago I managed to build an overengineered CDN product that compressed images on the fly (almost on the fly). I shipped the project and it even worked great for testers, but I didn't get to the point where it makes money, so I shut it down as with half unfinished features as it was taking too much time.

While building it I managed to learn Go, improve my AWS skills, plus some other tricks. Now it sounds like a great investment even though I feel that I haven't completed the project.

<comment><USER9> "Ship daily" only works with web applications. If I were to ship my applications daily (or rather: each day where there occur changes), I would just be compiling packages all the time. (Before you ask: This cannot be automated further. I will not give my GPG key to some automation to sign the packages with.)

<comment><USER10> I automate my deploy process by passing my password as an argument to my automation script. maybe you can try figuring something similar out.

Because yeah, by hand, even deploying my webapp would take a couple hours. it took me maybe 8hrs of labor to setup my deploy script but given as I've deployed maybe 50 times so far it's paid off.

<comment><USER11> Hours? Could you elaborate a bit what exactly you mean with "by hand"? I'm probably not thinking manually enough, I can't come up with what could possibly that time intensive about any deployment.

<comment><USER10> "By Hand" I mean running each command required to deploy line-by-line, at the command line.

For me, that would be:

1) provision VM

2) configure the new VM (security hardening, install utils)

3) download app from git and configure it

4) take image of vm

5) install new image into my autoscaler

6) hot-replace live instances of previous version with new version.

doing each of those commands by hand and waiting for each to complete could easily take 1.5 or 2 hours of work. I did it by hand the first couple times but once I figured out my workflow I automated it (bash script) as fast as possible.

I spent a couple days looking into ansible, but as I have a very specific need I didn't want to spend 2+ weeks adding another chunk of "technical debt" to my product.

</comment></comment></comment></comment></comment><comment><USER12> Okay, I am going to share my secret for finishing.

I discovered this late, but am glad I did. Are you ready for it?

The secret is this:

don't start something till you finish the last thing, no matter how poorly.

This goes even at a "micro" level, so don't start distributing the load on servers till you finish the last thing (interface), no matter how poorly you finish the last thing.

Now you have the secret. Go forth and complete.

<comment><USER13> I beg to differ. Sometimes things need to settle down or you have to gain some distance. This can take months or even years.

If you don't have an external deadline, you can afford finishing things when you are actually ready for it.

<comment><USER14> My wife gets frustrated when I set aside a side project or a hobby for a while and pick up a new one or return to an old one. She says she finds it difficult to support my new hobby knowing that my old one is languishing. But the way I see it, the day I _have_ to work on a hobby, the day I _need_ to put hours into a side project, that's the day it stops being a hobby. That's the day it stops being a side project. On that day, it officially becomes a second job, one that likely isn't paying me anything.

I have two half-finished Rails projects, a half-finished Arduino robot, and a guitar that hasn't been played in a couple of weeks. And you know what? They've all given me some joy, and have been set aside temporarily when that joy started to feel like work. That's the reason I switched majors _away_ from computer science. I like programming. I don't like _being forced_ to program. I don't like making software for someone else. It's a hobby for me. Not a job.

</comment></comment></comment><comment><USER15> As someone who is trying to learn to code on their own, I feel like I understand this. The first question of "which language/stack/etc should I learn first?" has haunted me for the years I have been trying and getting nowhere.

Not EXACTLY the same problem as the author, because I am not building out scalable infrastructure. I just spent a ton of time learning the fundamentals of angular and node, then try to understand express, then grunt, and mocha and bower and... now I have weeks into this pile of stuff... nothing working and I am frustrated, disappointed, and oh look Overwatch patch notes.. time to try out the new hero.

<comment><USER16> Unless you want to focus exclusively on Web development, I wouldn't recommend picking Javascript as your first programming language. The ecosystem is fragmented, and the language itself is probably not the best for teaching. Have you considered learning Python or Ruby first?

On the other hand, if you're committed to Javascript, I think you should start at the most basic level. Angular is good, but it's a complicated system that takes time for even experienced Javascript coders to get used to. Same with Express, Mocha, Grunt, etc. These tools incorporate complexity to hide it from the programmer. But as a novice programmer, you DO NOT want that complexity hidden right off the bat.

Assuming you've gotten past the very basics (syntax of programming language, executing Javascript in the browser, reasoning about simple scripts), I would recommend the following as an exercise for learning:

Pick a fairly simple website and try to re-implement it, without looking at the original code. Don't start with angular, bower, or anything else. Just Javascript, HTML, and CSS. This is the fundamental language all browsers speak, and you have to be able to understand it for everything else to make sense.

As you work on the project, you might start to find things annoying. Like, dynamically changing page content with Javascript requires a lot of code. How could you make it easier? Think about, and possibly even implement, a solution that makes sense to you. Then, _once you don 't need it_, you can reach for a pre-baked solution (like Angular, Vue, or React in this case).

<comment><USER15> I have no intentions of dealing exclusively with web, but it seems to be the most accessible and it is easy to come up with projects to do. Where sitting down in front of visual studio trying to learn C# or similar is just way too big and harder to come up with things to do.

I started programming by working with codeacademy.com and taking a MEAN stack bootcamp - which was a good experience but not a great way to learn to code. I took this specific class because it met my work schedule, was online, and not very expensive. Hell, it was better than nothing at least.

I appreciate your feedback. I am at a point where I can build simple websites with html, css, java. I use bootstrap because css makes me angry. I take your point though, work with the fundamentals and progress from there. Thank you for your reply.

</comment></comment></comment><comment><USER17> Your problem is you have no momentum. You _need_ to build momentum and get over your fear of shipping.

My advice: pick three "side projects": one that you can build in a day, one that you can build in a week, and one that you can build in a month.

Build the first one in a day and _ship_ it. This will motivate you and build your confidence in your shipping abilities. Then build the second one in a week and ship it. Then build the third one in a month and ship it. You've now shipped three projects, good going!

That said, I want to echo what @vinceguidry said. Side project != business. If you want to build a business, the same logic applies... just get something out the door. But you need to be serious about ongoing support and maintenance. Whereas a side project could be anything, like a fun open source project, a personal website, experimenting with new frameworks, etc.

p.s. Don't be so hard on yourself. You just shipped a blog post to the top of HN. And you've got a long history of blog posts on there. Maybe you should ask yourself why you can ship blog posts but not side projects?

</comment><comment><USER18> Suffering with dysthymia taught me many things. One of the things is that I may be fine working under pressure but my brain is not.

Side projects tend to be small , fast and enjoyable. This is the way the human brain works and is actually much more efficient than taking big steps.

Also make sure that your main goal is fun, if it is not, it will only get worse. Fun is the fuel of the brain. You cannot fight fun, because you cannot fight the brain. The brain always win.

Make your brain your ally and success will come. You are not your brain , your brain is a lot more than you.

Let me say once more , brain.

Brain

Oh and if you think your code will never sell , remember that fortunes have been built selling rubber bands for hair. There is always a way.

" use the brain Luke "

</comment><comment><USER19> It depends on your goal. Is your side project aiming to become a side business or an experimentation to learn new things? If it's a business, it's important to get things done. If it's for fun and to experiment, sometimes the end goal is not to actually complete it. The endeavour itself will be reward enough, perhaps.

It's true that a lot of programmers do jump from shiny new tech to the next shiny new tech. If it's to start a business, it's probably best to stick with boring stacks.

</comment><comment><USER20> I share the pain. I'm incredibly productive at my day job architecting and tying together a plethora of microservices to deliver a platform of unified products. Outside of work i am absolutely freaking worthless. My problem is largely perfectionism. I've started working on seemingly great ideas and then took a turn to build a tool that would make task A less hack-ish. A few weeks later I'd open-source the tool/library and jump back on to the project only to find yet another thing to bothers me. My thinking here is that while I'm working on something in my spare time I should enjoy doing things the right way instead of cutting corners to meet deadlines. If i don't do this I cannot help but feel unbelievably dissatisfied and usually quit within a few days. Still don't know how to get over the hump. I'm almost thinking i have some kind of psychological disorder. On a side note, this same behavior helps me a lot in other areas, like working on a project car where attention to detail and just taking time makes the end result much better.

</comment><comment><USER21> There's a Garrison Keillor quote I love that I think relates to programming as well, "A written work is never finished, it's simply taken away from you at some point."

I think the author's intent is a good one and it overcomes the "perfect is the enemy of the good" trap we can all fall into at times. As the technical lead on a multi-team project last year, I had to beg my developers to just check in _anything_ at one meeting because they were terrified of having the other teams see their imperfect code. When I assured them their code couldn't be any worse than mine, which I had checked it several times and actually had rejected by the version manager, that they were able to laugh and agree to start committing their work to the repository.

Your code is going to get criticized no matter how much you polish and engineer it. If you can accept that, then I think you will find yourself free to be more productive.

</comment><comment><USER22> I built a search engine for lectures ([https://www.findlectures.com](https://www.findlectures.com)), partly so I have something I can show people (e.g. my family otherwise has no idea what I do).

Trying to build something in your free time forces you to think about dividing work up into very small pieces (what can I do with a free hour, etc). I've found this very beneficial in a work environment.

If you get to the point where you can show people, showing people changes how you think about the project - some invisible social pressure to do better, similar to code reviews.

You also have to think through the structure of the entire project on your own - often in a work environment, you're joining something in progress.

This is also a great way to research new tools. Instead of thinking how cool they are, you evaluate how they fit into a "real" project, but without the pressure to actually make it work.

</comment><comment><USER23> Obligatory, but important:

Do the Work - [https://www.amazon.com/Do-Work-Overcome-Resistance- Your/dp/1...](https://www.amazon.com/Do-Work-Overcome-Resistance- Your/dp/1936891379)

The War of Art - [https://www.amazon.com/War-Art-Through-Creative- Battles/dp/1...](https://www.amazon.com/War-Art-Through-Creative- Battles/dp/1936891026)

You have to build a muscle for this stuff. It's hard.

</comment><comment><USER24> I struggled through the same thing once I started with TDD. I've never had problems completing and shipping new products (a solo founder i launched 20 saas sites last year) but after reading dozens of documents about why TDD is an absolute must for any serious programmer my hubris got the best of me and I decided that I too will join the bandwagon. Boy, was i wrong.. Maybe for big teams it is a must but for solopreneurs and 2 people teams I wasted nearly 8 months before i realized that not only my productivity had rock bottomed but I started hating something that I once passionately loved. Since that day I went back to php and angular js.

I do get occasional this feature not working mails but at least I'm creating new sites again and making more money. If there is anything you want to take from this rant is don't waste your time doing things that other people are telling you to (how ironic). Do what you love and you will get shit done.

<comment><USER25> For a small team you should probably only TDD the most critical stuff, and not everything. Stuff that has huge paybacks, critical code. Generally I have been reverting to coding first, unless in scenarios where I waste more time trying to manually test it.

<comment><USER24> You are absolutely correct, but I learned it the hard way.

For solopreneurs the time is much better spent on marketing especially generating leads because it gives 1,000 times more return than time spent on writing tests and probably saving a few bugs later.

</comment></comment></comment><comment><USER26> It's okay not to ship personal projects. No one's _really_ holding you accountable for that. Look at it this way, unfinished personal projects still give you value because you might still be using it in its incomplete state, and you learned something when making it. As you become a more experienced engineer, it's common to have more unfinished personal projects because you have difficulty approaching it with a hacker mindset where you throw all best practices out the window and get it working as quickly as possible. Accept it and try not to lose sleep over it.

The problem is when this behaviour crosses over into your professional life, because you're not delivering value to your customers quickly enough and as a result you'll either get sacked or the company can go bust. Having someone else to keep you in line works great, it doesn't even need to be a Product Manager or Product Owner. And if you don't have someone else to keep you disciplined, then you better work hard on improving this area where you're lacking. Write down ideas on paper for example and ruthlessly prioritise and prune them every morning. Sayings like "work on what's highest priority", "do the least amount of effort that results in the greatest value", "keep it simple", "reduce scope", "you aren't gonna need it", "defer nice to haves", and so on are things we hear so often because it really is good advice that you should follow.

<comment><USER27> You get depressed if you have an idea in your head all the time, but you can't finish it. Or you boggle down your head with details and never end up having something you can show to your second half. That's the problem with shipping personal pet project. You are your own manager unhappy with yourself as an employee.

</comment></comment><comment><USER28> I have this same problem. My finish rate is abysmal, but I've actually finished a few.

I've realized that finishing a project is roughly 10% exploration another 20% getting to working and at least 70% polish. The exploration phase is very enjoyable and it's what keeps me hopping from project to project. Occasionally, the enjoyment will phase will encourage me to keep plugging away at it until I get to working. This is the minority of my projects, but it happens naturally to some extent. But I rarely put in the time and work to do that other, much larger bit to get to a done state. Because that part is actually work and it's not fun.

But what I've discovered in looking at my projects that actually got to done is that there's one thing that, for me, leads me to finish...having a social pressure. The projects that I've discussed with friends and gotten them excited about are the ones that I finish. My attention will wane and I'll drop it for a bit, but then I'll have a conversation where someone asks what what the status is and I'll pick it up and work more. And if that repeats enough, I finish. The best case scenario is getting someone excited enough to actually code with me on a project. In those cases, we usually get to done pretty quickly.

I think this is why being a solo founder is so difficult. You're going to run into difficult stretches and you'll want to focus on something else. It's a very rare person that can continually return their focus to a single problem, even in the face of adversity. But if you've got someone else to steer your focus back, you can keep working long enough to succeed.

So here's my advice to a coder who's never finished. For your next side project, when you get the inspiration, instead of immediately sitting down at a keyboard, contact a friend, go out for drinks and tell them about your project. Better yet, get a group of friends and discuss it. Get them excited about it and let them know that you're excited about it. Only after that step should you start coding.

<comment><USER29> Right, it is like going to the gym. Doing it with a buddy means that each of you can take a turn at motivating when the other is tapped out.

</comment></comment><comment><USER30> Two things have made a huge different in my ability to finish/ship:

1\. External Deadlines. I'm a career teacher, mostly self-taught Python/Django developer, and am applying for dev jobs. The school year's over in June, and I want to be able to step into a new jr position in July/August. I'm planning to resign my position this spring, and cannot be out of work. My benefits and salary will stop in September. I'm f'ed if I'm not working by then. The need to ship projects (if only into my portfolio) is high.

2\. "Deep Work" for time management. Ideas from Cal Newport's book "Deep Work" have been foundational in my getting more done. It's hard to find the energy to build my side projects/portfolio after wrangling eight year olds all day, so I started getting up at 5 am solely to work on my projects. I make coffee and toast then get to my desk. I close all applications except Atom, Dash, and Firefox; turn on Do Not Disturb; look at my to-do list in my notebook; then get to work. Having 75 un-interrupted minutes before my wife gets up allows me to get a huge amount done, and it's become gratifying to watch the 6 am commits pile up on my github punch card. I've also found that exerting discipline in this facet of my life has had a positive knock-on effect in other areas.

<comment><USER31> I came here to mention 'Deep work' (which I found a very effective way to do and talked about on HN previously [1]) AND another tactic which is giving me good results.

The trick I found to complete things is:

 __Do not switch ladders of abstractions. __When working on a modern web application (with backend, frontend, css, testing etc) if you start with writing backend API calls, then just write all of them first. Starting with the API call for /user', /signup, /login, /compose, /rate, /play. Don't worry about it working. If you do TDD then fine, but if you don't tests before you write the code, then avoid writing tests until you're done writing the basic code for your API. Then you write tests for it and make sure that each endpoint at least works.

Then write E2E testing for it(for the backend). E2E tests are a great way to build your app with it's core functionality full working and validated. In other words, write unit tests which first call /signup, then /login, then /compose then /play (which is I presume one full flow of a user). This will help you figure out issues with your API and it kinda feels like writing a full app.

Once you're done with testing, then write the frontend, just simple HTML, don't worry about CSS. Don't try to grab React + ES6 + Redux boilerplate or things like that. Just go with the simplest thing. Even if after every action user has to refresh to page, so be it. Oh you heard about CycleJS and think that you should be using that instead? Well guess what, you purposefully chose a really terrible technology to build this app, so once you're done making your app in that crappy tech, then you can rewrite it in CycleJs or anything else you want.

This way, even if you abandon your CycleJS rewrite effort halfway, you'd still have a completed project(and trust me, you will never let your app be stuck at static HTML with no CSS). Chances are that you'd abandon it, when you've already written your app in CycleJS but made a new rewrite effort to write it in Vue.JS.

Basically idea is, you think in terms of one layer at a time, and you defer all desires to refactor things until you are done finishing that layer.

1\. [https://news.ycombinator.com/item?id=13813173](https://news.ycombinator.com/item?id=13813173)

<comment><USER30> Mental Models sounds fascinating, thanks for the suggestion.

</comment></comment></comment><comment><USER32> You could think of building a scalable back end you don't actually need as a form of premature optimization, and I think the way around that is to evaluate & measure what you actually need - problems you have now, not problems you might have later (no matter how sure you are). @gerlv's suggestion to "Ship daily" is great because it not only forces you to ship often, so you feel like you're getting something done, it also forces to you evaluate what you need, and forces you to quickly get feedback from users that should be the true driver of what you need. (Assuming you want users, rather than a finished side project just for you.)

Michael Abrash has some books on optimizing code in assembly language, and he takes special care to talk about why & when to optimize that would also apply here. The point he makes repeatedly is to optimize from the user's point of view - don't do something the user won't notice.

[http://www.phatcode.net/res/224/files/html/ch01/01-01.html#H...](http://www.phatcode.net/res/224/files/html/ch01/01-01.html#Heading2)

We all do it though, this is a human trait, but we programmers and computer scientists often amplify the problem. We love obsessing over what's "best", without regard to whether we actually need the best. We are taught during our Computer Science degrees to generalize and abstract at every opportunity, to plan for future problems we might have, and for future problems others have had that we might never have. We discuss incessantly how important it is for software to be scalable, and how to use the "best" everything, best language, best database, best algorithm, etc.

Strive to solve only the problems you're already personally experiencing, wait to solve problems until you are already experiencing pain, and ignore the problems that only "might" happen, then it will be easier to finish things.

<comment><USER33> > You could think of building a scalable back end you don't actually need as a > form of premature optimization

I've heard this described as "solving the problem you _wish_ you had". A globally-distributed, scalable cloud infrastructure of microservices is good for the likes of Google, Facebook, Amazon, Baidu, etc. because it solves problems they face: handling millions of hits in a timely manner; avoiding downtime, every second of which is user-visible, loses them money and damages users' confidence in their service; etc.

It's _very_ unlikely that a side-project will _ever_ face these problems; an off-the-shelf Web server on an off-the-shelf host (say, Apache running on EC2) is probably fine.

A side-project which isn't shipped will _never_ face these problems, because it doesn't have _any_ users, _any_ uptime, _any_ revenue, etc.

</comment></comment><comment><USER34> > _NO MORE TRYING TO REWRITE THINGS IN HASKELL. JUST. GET. SHIT. DONE._

I chuckled at that, because while it makes for a good joke, I've learned from experience that writing stuff in less mainstream languages like Haskell is probably the best way to avoid getting distracted by trendy new frameworks all the time, since they tend to have smaller, more niche focused communities that don't produce new frameworks every week that would even be relevant to you.

</comment><comment><USER35> The same thing happens in many other creative endeavors, such as photography. If you don't have a client that needs pictures soon, you can spend months and years reading on the best lenses and techniques and buying new gear.

Acquiring all that knowledge leads to a feeling that you _potentially_ can do more. You are _potentially_ more powerful. It is a good feeling. You can never be disappointed in yourself if you don't finish anything.

<comment><USER36> At least in tech, the equipment is free.

</comment></comment><comment><USER37> > If you're using AdBlocker, fair play, I don't blame you. But please consider > chucking me a couple of quid: > [https://monzo.me/ewanvalentine](https://monzo.me/ewanvalentine)

Am I missing something? It's a nice set of thoughts, but I can't imagine paying to have read somebody's personal blog, and would have been vaguely weirded-out at him having ads on it.

<comment><USER38> Agreed... Such a strange thing to close with. I had to scroll up to see what he'd given me for free?

</comment></comment><comment><USER39> The number one thing to remember is almost no one cares what tech you used. Just get it shipped.

People have built million dollar business that had it's first iteration in MS Excel, if it is useful to someone and kind of serves the purpose then that is enough for a start.

<comment><USER40> Totally agreed. It is all about your solution for removing the customer's pain. The sooner you can do that, the better it will be for you and your customer.

</comment></comment><comment><USER41> One technique that has helped me is what I call "atomic actions". What is the smallest action you can undertake, that you can build upon, which will help you realize your goal?

I've wanted to write for years but thought I had to pen esoteric essays composed of thousands of words. Recently I just started writing short, simple posts that are helping me establish a habit, develop fluency and enjoy the process of writing.

My first post was on this idea of atomic actions: [https://alexsingh.svbtle.com/atomic- actions](https://alexsingh.svbtle.com/atomic-actions)

Maybe it'll be of help to someone else :)

<comment><USER42> Thanks for this advice. I love that the simplicity of your post demonstrates the concept it's teaching.

</comment></comment><comment><USER43> I feel you've been on the right track all along. Instead of doing the opposite on the programming side you might need to do the opposite on the product and selling side. Instead of building something you have no passion for look for ways to sell what you have already created. In other words see if you can productize your "auto-scaling, multi-zone, cloud infrastructure". There's definitely other people who would like to use that.

Or teach people how to use the new shiny thing.

Or help them decide the pros and cons of new technologies by talking about the subtle distinctions you have noticed between them through your experimentation.

<comment><USER44> > In other words see if you can productize your "auto-scaling, multi-zone, > cloud infrastructure". There's definitely other people who would like to use > that.

While working to build out the "auto-scaling, multi-zone, cloud infrastructure" product, OP (or anyone for that matter) will get caught up building his own front end JS framework that will address some shortcomings of AngularJS or reactjs.

If I understand correctly, the point of the article is that it's incredibly easy to lose focus of what you set out to do and get distracted by something that is not very important to your project/startup.

</comment></comment><comment><USER45> Bonus reminder: If you're reading this, you'd better go work on your side- project like totally now.

</comment><comment><USER46> Infrastructure wise, I'm absolutely guilty of this as well. I have found that there's a middle ground...

You (probably) don't need the microservices and the complexity that comes with it, upfront. A monolith (and the simplicity in terms of deployment, logging, monitoring, etc. etc.) will probably do early on.

However, you don't want to shoot yourself in the foot for when it turns out you _do_ need those things.

I _try_ to write code in self-contained modules, with well defined boundaries, and glue it together in a monolith. If/when it needs to be split out into separate services, it becomes much easier.

So, application/business logic code: keep the standards high, do shit properly. Glue code to keep it all together? Less important. You can rip that out later and move to different infrastructure with the same code.

That's very generic advice, and I seem to always break my own rule on this at some point... but I find it's a better mentality for when shit just needs to get done.

Doesn't help with tech choice in general though (and I'm often guilty of this as well...).

</comment><comment><USER47> This hurt to read because it's something I've recognized in myself and I've been thinking about how to solve it for a while now. Looking back it was a habit I started long before I ever touched a line of code–I used to sketch and paint a lot but would never finish a piece. Analyzing that I realized I was chasing a "high" that you get from exploring new ideas and even when I wanted to finish something I made it incredibly difficult by not having even a loose idea of what "done" looked like. I think having the "finished" figured out (even if it changes) might help a lot because anything that makes things harder once you're past the fun part is a multiplier for demotivation.

It does make me feel a little better knowing I'm not alone in my shame though. And hearing about other's solutions is really helpful too.

</comment><comment><USER48> I'm on the verge of completing one of my side projects. The most useful thing that I've found that helps me stay focused is to already have users who you know will want it. By staying focused on you users and what they want, you can stop a lot of this shiny chasing before it starts.

<comment><USER49> That's where "eat your own dogfood" comes in. It does not replace having real users, their feedback is invaluable. But if you yourself really use the functionality of the project, the production version the others see as well, then you can become yourself the user that pushes you as a developer to get things done and online.

Well, you probably know that. But for me that was important, so I'll mention it anyway.

</comment></comment><comment><USER50> My side projects usually aren't meant to get completed. I specifically use them to try new things. If it works out, I might use the new stuff in my job. If not, I gained some knowledge.

Some of my stuff is good enough to use (as in early alpha), but doing the final 20% won't pay off anyway.

</comment><comment><USER51> You are one of the 2/3rd kids who were part of the marshmallow experiment. You cant control your desire for immediate gratification. I feel that with the level that you are in, you need a bigger problem to solve, rather than start a new startup(whatever that is). I know your type, I was like you, most of my friends are like you.

Also did I mention that you are an introvert by nature (read susain cain). You are easily distracted by shiny things.

P.S. I am no expert, those are just the things that I realized about myself....

P.P.S Shit. I think I am still like you, because otherwise I would have worked on the code review that I was supposed to do....

<comment><USER52> the marshmallow test actually isn't quite as straightforward as predicting willpower or delayed gratification, as the original researcher points out in this article: [https://www.theatlantic.com/health/archive/2014/09/what- the-...](https://www.theatlantic.com/health/archive/2014/09/what-the- marshmallow-test-really-teaches-about-self-control/380673/)

</comment></comment><comment><USER53> Here's the thing, there's a lot of social pressure in our industry to start a startup.

I wonder if OP has ever question why he wants to create these startups.

I found a while ago, that I like kids, I like playing with them, I would never have one though, I see Startups as the same way, it's something you'd be stuck forever, like my JQuery Mobile based product of my own startup, I can tell you now that I get to fuck around in my free time, now I'm happier.

You need to question yourself more, are you a programmer or an entrepreneur?

</comment><comment><USER54> This is pretty familiar! I've been going through this now with a little game I'm working on. It's been a way to learn React Native. I thought I would be done in a week, but I'm still working on it 6 weeks later, and I keep having to add new features.

It's crazy how the little things add up, like sounds, icons, animations, hosting, advertising, analytics, websites, landing pages, facebook pages, codepush, in-app purchases, etc. etc.

Hopefully I'll launch soon though, and be able to share it on HN.

</comment><comment><USER55> Right on the money this one: [https://neilonsoftware.com/2017/03/10/my- response-to-how-to-...](https://neilonsoftware.com/2017/03/10/my-response-to- how-to-never-complete-anything/)

I have been developing professionally for 7 years now and had similar experiences. It's important to allow yourself to stand still, if vacations aren't possible, exercise and meditation might help you a lot too.

</comment><comment><USER56> I've finished at least 3 major multi-year side projects. One of my open source projects was pretty successful but none of my side projects went anywhere business-wise.

Usually some well-funded competitor comes up later with the same idea and takes all the market.

My advice: Don't bother starting a side project unless it's really niche, easy to implement and you just want to make enough money to replace your own income (the market has to be small).

Unless you personally know people who have tons of money to invest in your side project, then it's a complete waste of time. It has to be people first.

9 out of 10 businesses fail and it has nothing to do with abilities, drive or persistence; it's only about luck.

I've met a 17 year old who built a wordpress website that generated $10K per month after just 6 months (though it already had tons of traffic in the first month) and couldn't write a single line of code. I've heard of hundreds of similar stories.

Some random person somewhere on planet earth randomly puts together an app because they think it's cool without any thought whatsoever; it blows up in popularity out of nowhere; then some smart engineers/people who actually understand the potential find out about it early enough and join up in exchange for a stake in the project; that's how actual smart people do business.

<comment> J-dawg > _I 've met a 17 year old who built a wordpress website that generated $10K > per month after just 6 months (though it already had tons of traffic in the > first month) and couldn't write a single line of code. I've heard of > hundreds of similar stories._

As developers, we tend to think the technical stuff matters _way_ more than it really does. I think non-technical people almost have an advantage here - they'll choose the minimum technology to get the job done.

I've seen some really nice websites created by friends using nothing more than Squarespace or similar. I fear that if I'd been given the job I'd have procrastinated for ages over all the different options and ended up wasting a lot of time and ultimately creating something less impressive.

</comment></comment><comment><USER57> Keeping things simple is so key. For anyone working on a SaaS startup I would strongly encourage you to do the boring CRUD method using Ruby on Rails or Django or whatever the default framework is in your preferred backend language. Don't get into the JS SPA world, that's a rabbit hole of decision making you'll never escape from.

You _can_ put that off until you have a successful startup and I bet by then you'll realize you don't need it anyways.

Personally, my problem is that I just have too many side-projects. I have one startup side project, but I probably have a half dozen of other OS side projects that I'm either working on here-and-there or I'm at least thinking about when I should be thinking about my startup.

I think this is one of the disadvantages of doing a startup as a side project while still working full time. Even though I allocate 1 hour and a 1/2 to 2 hours a day to work on my startup I still find myself working on other hobby stuff nearly half the time :( A lot of those hobby OS projects come out of some problem I'm experiencing at my day job but don't have the time to solve in the elegant OS way I would prefer to.

I'm super happy to have read this article and plan to take the advise. No more side-projects, just get my startup shipped.

</comment><comment><USER58> Superstructure is only useful if you have something to support. Otherwise, it just scaffolding without building.

I guess all of us learn something similar to this at some point in our lives.

</comment><comment><USER59> Well, learning is the fun part for me. As long as I do not have to finish I probably would not.

<comment><USER60> I feel the same way. ;-)

Most of the projects I work on in my free time I start because I want to learn about something (new language, new UI framework, whatever), and once I feel I have achieved that, my motivation drops dramatically.

Also, not having to deal with deadlines, strange and ever-shifting requirements, or angry users is part of the fun. Walking away from a half- finished program is not something I could get away with at work, so it is kind of a relief to be able to do that sometimes.

</comment></comment><comment><USER61> What's the scope of your side project(s)? Do you have a business plan? Who are your target users? Is your code quality all over the map, why and in which modules?

In the quiet times, I ask myself these questions and get sheepish, embarrassed answers. When you can give reasoned, confident answers on hard, painful questions about your future business rather than current tech demo, then your project has a shot at life.

I have an amazeballs tech demo for my side project. It is scoped way too huge. Heroics and not knowing what I was signing up for got it to where it is today.

Honestly, if I were to do it again, my first features would have been user management and payment processing. I wish I could take users and have them pay me as soon as they saw value in my growing hobby project. But I can't because I didn't prioritize getting users and using their subscriptions to fund my work. I have a ton of neat features and no users, argh!!

</comment><comment><USER62> Consider the psychological angle. ADHD, stress, depression and the like can contribute to these feelings of underachievement and frustration, and a professional can help explore these possibilities.

Perhaps you simply "haven't learned to finish what [you've] started", but sometimes there are deeper issues at play.

</comment><comment><USER63> Methinks our author is too hard on himself. Tinkering is a slow process that can seem undirected, for decades even.

Tinkering with stuff to figure out how it fits together is good. When the right project presents itself, the persistent tinkerer will be ready. She or he will have the advantage of knowing how to do the project.

</comment><comment><USER64> You simply watch how js-required blog shows you neverending progress, instead of working on it. That's how.

</comment><comment><USER65> Reminds me of this comics that I just sent to coworker: [http://www.commitstrip.com/en/2014/11/25/west-side- project-s...](http://www.commitstrip.com/en/2014/11/25/west-side-project- story/)

</comment><comment><USER66> I've become vastly more productive, productive in the sense that I actually finish things by scoping way way down.

I used to dream up grand plans, start building, and before I got to the end I'd have thought up three more things I wanted to build. That isn't any way to finish anything, it's a good way to learn about limitations and develop new skills.

By scope way down, have a few ideas and consider what they share between them. What single feature will I need. I build that. But, that feature in and of itself has a lot of parts so I pick one and I build that. If it has smaller parts, I build one of those.

Instead of building some grand machine, I build gears. It's far more satisfying.

</comment><comment><USER67> Recently, I found some things that works for me and put it out as a book. Interestingly, I finished the book also using the same techniques. A key trick to keep you motivated is to reward yourself handsomely and IMMEDIATELY if you achieve the goal on the PLANNED DATE. For eg. I rewarded myself an iPhone 7 plus ( which is currently the hottest phone in the market) for finishing the book in 30 days. This helps you overcome the fear of loss that, what if no one buys your product and your effort goes in vain. However I still find marketing is harder! (My book here:[http://amzn.to/2iUYaOH](http://amzn.to/2iUYaOH) )

<comment><USER68> If you have poor self discipline in the first place what stops you from just buying the iPhone in the first place regardless of goal completion haha?

</comment></comment><comment><USER69> I disagree. Experimentation is an important part of learning and yes, initially there's a lot of "wooo, shiny!" going on. It doesn't matter - <USER2> are STILL learning.

It also helps to remember that software projects are never finished - <USER3> abandoned.

<comment><USER70> I think the author of the post was trying to say that he has disproportionally allocated his time from finishing projects to just learning new things. There needs to be a good balance between keeping up to date with technology and producing something from the technology.

</comment></comment><comment><USER71> I can relate to this. I created several products that I never launched. Now that I look back, I wish I hadn't been so reluctant to publishing them. Granted, I learned a lot but I wish I launched early and often to get over the psychological hurdle. Most people don't really care about your project anyway.

I finally bit the bullet and launched [http://www.survivalscout.com](http://www.survivalscout.com) in January. It's a definitely whole new set of challenges going from coding to trying to market and sell your project.

</comment><comment><USER72> At the highest level, the trick is to actively do things to increase momentum while avoiding things that reduce momentum. Pick a stack you know, build a way to collect money, release before you've even written code, etc.

I wrote a post titled Side Projects: Avoiding Failures to Launch[1] a few months ago that touches on these same ideas in more detail.

1: [https://blog.benroux.me/avoiding-failures-to- launch/](https://blog.benroux.me/avoiding-failures-to-launch/)

</comment><comment><USER73> Get to the point where you have something that barely functions, and put it on the web, then constantly iterate it. This is how you "finish" what you've started. I'm totally addicted to learning, and seeing how people use my stuff, so that's what motivates me to get the concept out there as quickly as possible. My only real issue now is having the time to be able to put ALL of my ideas out there. I must have a hundred domains of "ideas" that I want to get shipped.

</comment><comment><USER25> I've frequently been defeated myself because the project size was too large and too ambitious. Being a perfectionist also really doesn't help, but it's my nature. So I've learnt to instead focus on a wayyy smaller project, and I'm making more progress than ever because well, the finishing line is much nearer.

Also, using Pivotal Tracker or some agile tool to track stories gives me a kick to doing things. Commit to a small number stories per defined sprint period and get it done.

</comment><comment><USER74> Have a grandson, name him Kylo, he will finish what you started.

</comment><comment><USER75> I often find that when I'm working on a really good side project I severely underestimate the time to finish. Of the few times I've forced myself to actually finish it ended up completing in the wee hours of the morning.

So I've became more picky about the side projects and if I'm unwilling to commit to finishing it in the wee hours of the morning then it probably isn't worth doing at all.

</comment><comment><USER76> Weird, I developed so many side projects. But my most successfull one is a webshop which I configured in woocommerce with 1 product in it

</comment><comment><USER77> Maybe part of it is coming up with a project that you consider too inherently important/interesting to experiment on. I feel like there are projects that are essentially excuses to learn a new skill, and then there are projects where you perceive a real need and simply want that product to exist.

</comment><comment><USER78> What's with the cheap shot at haskell at the end? I've shipped a couple of side projects in haskell.

<comment><USER79> I interpreted that not as a cheap shot against Haskell but a warning to avoid constantly chasing the perfect technological solution. (IOW just ship what you've got instead of constantly tinkering)

</comment></comment><comment><USER80> I wrote a blog post in reply: [https://neilonsoftware.com/2017/03/10/my- response-to-how-to-...](https://neilonsoftware.com/2017/03/10/my-response-to- how-to-never-complete-anything/)

</comment><comment><USER81> Recently I wrote a blog post about how I finish side-projects [http://d1ffuz0r.com/how-to-finish-side- projects.html](http://d1ffuz0r.com/how-to-finish-side-projects.html)

</comment><comment><USER82> Many side projects are not shipped because writing code is only a small fraction of actually launching a side project. There are a myriad of other things that need to happen to launch, most of which have little or no relation to writing code.

</comment><comment><USER83> I keep finishing things. I do MVPs, but they are so simple that noone really cares, and after all the effort I put into them. motivation is gone. So while I'd completely agree with this, every day that goes by I disagree more.

<comment><USER84> Just my two cents, but I just looked at [http://everydaycheck.com](http://everydaycheck.com) and I think it's both a great idea and (from what I can judge) well executed.

Also one piece of advice: Do Shown HNs more often. For me, they are regularly an great source for feedback.

<comment><USER83> Thanks :)

I don't really want to spam HN but I might give it another try and see if I can get some feedback :p

</comment></comment></comment><comment><USER85> The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.

</comment><comment><USER86> It sounds like an alcoholic after a major hangover saying "never again".

<comment><USER86> More seriously, it reminds me the time when I was working on a major side project (I was unemployed, so it should maybe called a "main project") and at some point, I started to work on a very nicely crafted library that was necessary for the main project: I lost all interest in the main project and abandoned it for bad reasons.

</comment></comment><comment><USER87> The brilliant lecture by John Cleese on Creativity is apt: [https://www.youtube.com/watch?v=9EMj_CFPHYc](https://www.youtube.com/watch?v=9EMj_CFPHYc)

</comment><comment><USER88> Only thing you need is [https://www.youtube.com/watch?v=1n9ykP5NJ2s](https://www.youtube.com/watch?v=1n9ykP5NJ2s)

(if its a bad joke, dont vote me down :) )

</comment><comment><USER89> I always complete my projects but each project takes a long time - months or years.

I'm highly motivated to find something that people want and the only way to do that is complete things.

</comment><comment><USER90> The downside to taking "get shit done" is incurring technical debt.

This can be a good thing, if it helps you move forward, as long as you pay it off + don't let too much build up.

</comment><comment><USER91> Make smaller projects, divide things in manageable pieces and define a clear end.. before starting it. A project never gets finished just because we never stop adding to it..

</comment><comment><USER92> "I'm challenging myself now to do the opposite, keep things extremely simple, unglamorous, dumb, sometimes ugly. But done."

Here here my friend.

</comment><comment><USER93> The real motivation behind acquiring technical debt is that 80 percent of your development work will be dumped eventually. Remember this.

</comment><comment><USER94> My side projects are tools I use for work. I don't necessarily finish them, but I use them all the time.

</comment><comment><USER95> >no more overly ambitious build pipe-lines.

What exactly are build pipe-lines ? is it javascript webpack kind of stuff?

</comment><comment><USER96> same problem here but slightly different solution i impose myself to not start another thing until the previous is done. doesn't matter how long it takes but i cannot do another thing until the previous is not ready i know this will bring me to 10-year-long side projects...

</comment><comment><USER97> And I haven't learned to start what I can finish. Maybe one of these days...

</comment><comment><USER98> FWIW, the only side projects I have actually shipped were written in Haskell.

</comment><comment><USER90> An update after 3 months of this might be good, to see if it worked ?

</comment><comment><USER99> Guess I'm so far gone couldn't even finish the article...

</comment><comment><USER100> Do what makes you happy

</comment><comment><USER101> I pretty much go to work and code. Then I come home and code until I cannot code anymore and pass out from exhaustion. Good article. Started off with me thinking I actually wrote it. But I think you lack motivation to finish because you are content with the way your life is.

I first started creating a project or two that were completely free. These projects helped me learn what people like and if people were even interested in using anything I created. Turns out.. I've got good ideas that people actually find useful. I'm not after creating the next Facebook, Twitter, or LinkedIn. Rather, I'm after creating things on a much smaller scale that help with everyday life. Once I got that concept down and accepted that I would not be creating something huge like a social media network, but other useful things on a much smaller scale, more specialized and to the point -- many programs start off great -- then the developers add too many things to it and it becomes bloated and no longer focused on what it was originally meant to do.

So whenever I start a project: I write out all the things it should do; its function and purpose. I do my best never to deter from what I had intended it to do. This keeps me focused and helps me complete projects much faster. I did more research in how to charge for the things I made. I would love to give away everything for free, but I need to eat and pay my mortgage too. I'm certainly not looking to charge anyone an arm and a leg, but if I charge a fair price for the products I create, taking the time and consideration, and how some of it does actually make life easier, than why not ask my users to pay a small fee to use the product that helps them in their everyday life?

If everyone pays a small fee to me, than I can continue supporting my products and creating more. I've certainly lost motivation and interest too many times to count, but money is certainly a motivating factor. To help stay motivated, I originally calculated how much potential income I could make from X amount of people signing up and paying the monthly or yearly recurring fee from any project I start. Anytime I lose motivation, I look at those numbers as the potential revenue that I could be making and it instantly puts me back in the mood to continue my side projects.

I was so serious about my side projects that I registered an LLC in my state, opened a business bank account in order to collect money via Stripe, and I talk about and act like I am already a business owner creating products for my business. I have a few "solid products" out there, but the ones I'm charging for are still in beta and testing phases. My journey into understanding how to design products for people began at the end of 2015 and it is now the beginning of 2017. So I'm about a year in so far. I will eventually get to where I want to be.

The other thing that keeps me motivated: I'm tired of working for someone. I've done it for almost 20 years... I have dealt with my fair share of arrogant asshole bosses, backstabbing co-workers, or just being under- appreciated or under-paid. It is exhausting to have to show up to a place for 8 to 9 hours a day, only to be treated like you are just a means to an end for a company. I get it: they need to make their money too, but to treat you as a human being and show respect and help you to keep your dignity and sanity goes a long way.

I get to watch other departments who are all eligible for things like "CEO's Club" or "Honored Vacations" or "Gold Member Status" while my department is "not eligible" and completely ignored and treated as if we don't matter, despite the fact that we bring in millions of dollars every year for our company. We design the products for the entire business and control how things are distributed and what they look like. We literally influence how web design looks on the Internet. I'm tired of watching my co-workers make mistakes and not get in trouble for it, while I make a single mistake, far less worse than theirs, and I am singled out, and a whole meeting is called to address the issue. Sure, I'm probably held to a higher stand because I have been there much longer than my co-workers, but everyone should be held to that high standard. I've worked on projects that have brought the company in tens of thousands of dollars in a single shift. I'm also tired of being the developer who can complete 4 or 5 projects in a single shift, while my co-workers can hardly complete one or two projects, yet there is no bonus to me for doing that, yet it is expected that I am the one to be the sort of "sweeper" who ensures that all projects meet their deadlines, no matter what, while it is okay for my co-workers to leave me those projects to do because they know I will do them -- and I have no choice.

I'm certainly not complaining about my job or the money. I love both! I love web developing. I love web designing. My paycheck isn't the greatest (because most of us.. could always stand to make a little bit more -- and more never seems to be enough), but it allows me to pay my mortgage and other bills and feed myself and my family and enjoy life a bit. I also live about 10 minutes from my job which is awesome. Imagine all that money saved in gas and car repairs. On the warmer days, I ride my bike to work. It is such a relief to be so close to work! But giving 8 or 9 hours of your life every single day, 5 days a week, 52 weeks out of the year... it is very draining. It is like I am paying for my house to sit there all day and be empty.

So this is why when I go home.. and I am working on my side projects, I feel I am working for a better life: Designing products for others to use, hopefully products that don't have too many bugs in them, and my hope is to create that recurring income, so that I can work 20 hours a week and not 40 or 50 hours a week.

Sure, this is totally "first world problems" \-- I'm happy that I'm not working in fast food. I'm happy I'm not in construction or that my job is not backbreaking work or intensive labor. I'm happy I'm not working for minimum wage. I probably have a better life than most people do. Again: I am not complaining about my job or the money. I'm not even really complaining about my company. The issue lies in not being treated with more dignity and respect and appreciation, which I think is completely lost in much larger corporations, where you are just one among thousands of employees.

So to never complete a side project means you are content with your life as it is. The only way to get ahead in life is to create things that other people like, want to use, enjoy using, and would actually pay you for it (or win the lottery or manage to successfully sue some corporation or whatever).

You could try to create something like Facebook, though Google Plus showed us it is not possible to even contend with that type of influence and stronghold. To not charge any money at all, you have to basically get to the point where you are receiving so many visitors that advertisers love you. Therefore, your only option is to charge a small fee for the usage of your product. You may not become the next Mark Zuckerberg, and that is okay. But if you can generate enough income to actually quit your day job, than I'd say that is success right there.. at least, it is success for me and certainly keeps me motivated to complete those side projects!

<comment><USER102> I am a manager. Wanna know why other departments have advantages and yours doesn't? Because they are more important. Truth hurts, I know but bear with me. You've been programming for 20 years and not moved into management. That is a big huge red flag right there. It means you just like coding and don't care about the business. Business always comes first. For you it seems it doesn't. So it's only natural that you don't deserve the same respect as people who think, correctly, that cutting cost and improving profits is the only thing that matters. If you care about the business and care about making a much larger impact, go into management. Don't be a code monkey for life. We already have enough of those.

<comment><USER101> I do get what you are saying, and what you state is all the more reason why I continue to be motivated to keep working on side projects and getting my business going.

Unfortunately, they chose a guy who was there for 15 years with no experience over anyone else. I had to train him. I had no say in that matter. He has been buddy-buddy with the Vice President of the company for that long as well. Again: There was nothing I could do about it. Other than his attention to detail, he has no coding skills. He doesn't have any management or leadership skills, either.

I have another boss who is above him who has me work on some side projects too, steals those ideas, presents them to the company as if they came up with it, and completely takes all the credit. What do I do about that? Say no and get fired? Suffer losing a job that I do actually enjoy doing that pays me enough to pay my bills? If you are a manager, you know that corporate world very well, don't you? Everyone is out for themselves. Everyone is just a number and is expendable. I know this -- my company has a high turnover rate.

I have bills to pay so I have to put up with this for now. The difference between me and other people (except for the ones on Hacker News :P): I'm doing something about it. I could go get hired by another company and make double what I am making now, but I run into the same situation over and over again: I am working for someone and putting up with the same exact bullshit. Every job. Every time.

I am comfortable with my current job so I see no reason to leave. I am working on improving my situation to get out of it. If I can do both: I would happily continue working for my company while running my side business and making a ton of money doing it.

So you are absolutely correct: I'm not trying to be a code monkey. I'm trying to run a business on my own that will help me escape the corporate slavery that I find myself stuck in at this time.

<comment><USER102> I'd still try to change jobs. I mean you could make double and there is also a chance you don't run into the same types of assholes. I am not saying you won't, I am saying there is a chance. Also, high turnover rate is a big big red flag. Be a part of that turnover rate :). Of course, keep on trucking on your own personal projects and good luck starting your business!

</comment></comment></comment></comment><comment><USER103> Write meta blog posts

</comment><comment><USER104> Offtopic: I got quite a NSFW Ad when I clicked through to this. Well depending on the workplace. But yeah not something I'd love a colleague to see over my shoulder.

<comment><USER105> Here are links to some images: [http://i.imgur.com/yz6eVNk.jpg](http://i.imgur.com/yz6eVNk.jpg) [http://i.imgur.com/KqaFVFc.gif](http://i.imgur.com/KqaFVFc.gif) [http://i.imgur.com/WczRkHy.mp4](http://i.imgur.com/WczRkHy.mp4) [http://i.imgur.com/EyEJStB.jpg](http://i.imgur.com/EyEJStB.jpg) [http://i.imgur.com/RnvkYXJ.png](http://i.imgur.com/RnvkYXJ.png) [http://i.imgur.com/6IqwNtn.jpg](http://i.imgur.com/6IqwNtn.jpg)

Zero or more feature nudity, ditto sports, one's a flowchart, but they have one thing in common: Nude or not, none of them have anything to do with your work. So what makes _any_ of them NSFW? (The subject of this discussion is "getting things done".)

</comment></comment><comment><USER106> YOU NEVER ACTUALLY TOLD HOW

<comment><USER107> "No more big re-writes because there's some hot new JS library. No more microservices for the sakes of it, no more overly ambitious build pipe-lines. NO MORE TRYING TO REWRITE THINGS IN HASKELL. JUST. GET. SHIT. DONE."</comment></comment>


Eliminating GIL in Ruby Through Hardware Transactional Memory (2013) - <AUTHOR> http://researcher.watson.ibm.com/researcher/view_person_subpage.php?id=4800

<comment><USER2> A more recent version of the work: [http://researcher.watson.ibm.com/researcher/view_person_subp...](http://researcher.watson.ibm.com/researcher/view_person_subpage.php?id=5206)

I saw the first author of this paper present this work in my building about six months ago. Myself and others were impressed with both their results, and the rigor in their analysis. They experiment on multiple hardware platforms, and even compare against other VMs. In short, this is what good systems research looks like.

Note that the page I linked to has both the full paper and the slides from their conference talk. I should also disclose that I also work for IBM Research, so I may have some bias in liking this paper.

(Copying a comment I made on an older submission; that may be why this poster submitted the older research report.)

<comment><USER3> Darn - I'm still mad about Intel's TSX-HTM bug[0]. I really wanted to compile this and play with it.

[0] - [http://techreport.com/news/26911/errata-prompts-intel-to- dis...](http://techreport.com/news/26911/errata-prompts-intel-to-disable-tsx- in-haswell-early-broadwell-cpus)

</comment></comment><comment><USER4> I summarized this paper in my blog if anyone wants a higher-level overview of what it means:

[http://www.mikeperham.com/2013/12/31/rubys-gil-and- transacti...](http://www.mikeperham.com/2013/12/31/rubys-gil-and- transactional-memory/)

</comment><comment><USER5> Is it me or does anyone here thinks that with the recent progress in static compiled language in user-friendliness, the path of optimizing the ugly parts of dynamic languages outside of the language design itself is a waste of time ?

Note : not saying this research isn't interesting, because it may lead to many different uses. Just about the example chosen itself.

<comment><USER6> I have used many of the fancy staticly typed languages and still find dynamic languages more productive, and more accessible to a larger range of people.

<comment><USER7> I only find them more productive until about 300-500 LoC.

It's about at that point, particularly if there's multiple files, that I find myself suddenly wishing for stronger type systems.

That being said, most things I write (outside of work) aren't that long, and you can get started faster in dynamic languages.

<comment><USER6> I haven't felt any improvement in productivity at higher KLOC counts with statically typed languages in my coding. I've also worked at several large companies and have watched teams using both types of languages, and I have not seen more productivity from those using statically typed languages.

More importantly, there is no conclusive empirical evidence either way.

<comment><USER8> Which statically-typed languages are you using?

<comment><USER6> I've used many of them. Java, Scala, Haskell, ocaml, etc.

Also, in the open source world there is no visible difference in robustness or productivity.

Edit: I forgot to mention go, and I thought HN was better than down voting someone that has a different opinion.

<comment><USER9> jshen: I feel your pain. I think there's been too much down-voting by the karma bullies on HN lately, and I think that's the number one reason there's been less comments on HN.

Of course, there are folks who will feel that even though there are less comments lately the level of discourse is higher.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> ...on a mainframe....

<comment><USER11> Ruby is the new RPG! :)</comment></comment>


First quantum jiggles detected in solid object - <AUTHOR> http://www.newscientist.com/article/mg21328495.200-first-quantum-jiggles-detected-in-solid-object.html

<comment><USER2> Jiggles, twangs... who comes up with these names?

</comment><comment><USER3> A silicon bar of 12x1x1 micrometer cooled to near absolute zero more often takes energy from incoming photons than imparting it on the photons, once more confirming that quantum mechanics accurately describes the experimental system.

I think "First quantum jiggles detect in object the researchers or PR department chose to label as 'solid'" is more accurate. I doubt an experiment like this one hasn't been done before, because we've had the technology to do it for quite a while. There also wasn't any reason whatsoever to doubt the outcome. It's great that they checked, but to present it with a headline such as this one, suggesting there is something profound about this result, is just unwarranted.

</comment><comment><USER4> It's simple: if it jiggles, it's fat.</comment>


Introducing Tinitell a wearable mobile phone for kids - <AUTHOR> http://tinitell.com/ <comment><AUTHOR> It's a European wearable startup (Sweden) and think it's very interesting.

The Android app for this has just been released with the iOS version appearing soon, apparently. [http://tinitell.com/blog/tinitell-app-is-now-available-on- go...](http://tinitell.com/blog/tinitell-app-is-now-available-on-google-play/)</comment>