Ask HN: Must programmers be fast? - <AUTHOR>

How fast do employers expect me to program?<p>I'm fond of programming in general, however, when I'm being stressed and have to meet deadlines here at my university I get uncomfortable. And I feel like a code generating machine, where I cant afford enjoy the activity by honing my assignment. Will this change when (if) I become a working programmer? <comment><USER2> If you are working for someone, yes there will be always someone on your back. Just get it done. Quick and dirty.

A good place for a programmer is founding or co-founding a startup. The deadlines will be self imposed. Self imposed deadlines are a lot more achievable and realistic. However being a part of a startup brings with it the headaches of generating revenue and/or wooing investors.

</comment><comment><USER3> When you're close to a deadline you're stressed and a code generating machine? That sounds like you do pretty well actually. Stress can be incredibly beneficial for you (in fact if it weren't it probably wouldn't have been naturally selected in every animal on earth): <http://en.wikipedia.org/wiki/Eustress>

"I cant afford enjoy the activity by honing my assignment."

I don't know if this is your case (correct me if not), but it sounds like you're striving for a perfect project, and can't get to it because of the deadline. At some point you have to say "this is good enough."

"Will this change when (if) I become a working programmer?"

It'll change if you get a lax job with a low work expectancy (corporate job). But if you have a job with high expectancies and quick deadlines (startup), then no it probably won't change.

</comment><comment><USER4> In industry you often get to set the estimates yourself. Missing the deadline has less severe consequences because its unlikely you'll get fired for missing the deadline by a day. But on your course its a fixed date and a big fat 0 awaits those who miss it.

Its worth mentioning that estimates are not plans to deliver. Make sure that as you give them in units that represent the amount of confidence you have. Industry recognises things aren't perfect and so often deadlines are a bit more fluid.

If someone else is setting your deadlines and estimating on your behalf its best to treat those with the contempt they deserve and provide your own estimate. Its a sad fact of our industry that this happens so frequently, but its best to nip it in the bud.

In general things are a lot more fluid in industry, the requirements need detailed understanding and the estimates are never right. The pressure is normally less severe, but it really depends on your boss and your dynamic with him/her. In a startup its self imposed pressure so you get to choose how severe it is and how hard you end up working.

Its important as a young developer to make sure you learn the things you are working with well. You need to avoid spending too much time at work so you can get in the necessary reading and practice that makes a better craftsman.

</comment><comment><USER5> Yes, it gets better. _Much_ better.

One big difference you'll encounter after working for just a bit in the commercial world is the amazing, energizing power of a (fat, steady) paycheck. Which somehow really, really helps us bear down and get that (let's face it) nasty slog of niggly, piggly, nose-in-the-mud gruntwork that is most commercial development.

You'll also encounter the opposite, from time to time, i.e. employers who just don't grasp the incredibly _demotivating_ effects of the skimpy, late, or consistently unreliable paycheck (and their sidekicks: poor physical working conditions, bumbling junior management, conflicting and/or basically impossible goalposts, and my favorite, utterly made-up deadlines with no connection to business or technical reality).

But fear not: once you've had a steady enough taste of the former type of environment, you'll be able to recognize (and pivot yourself out of) the negative/unstable environments, before too much damage has been done to your savings and/or your resume.</comment>


How do I learn Ruby & Rails? - <AUTHOR> http://weblog.rubyonrails.org/2009/8/3/how-do-i-learn-ruby-rails I often get asked this question as well - I'll be sure to remember this page as a resource to send folks to. <comment><USER2> I really love www.railscasts.com

While some of this stuff has changed over time due to changes in the Rails API, it's still a great resource to learn things you didn't even know you could do and to see how certain situations can be handled. Ryan does a great job making the screencasts short and very focused too, so you can always go there looking for something specific, and chances are Ryan has covered it.

</comment><comment><USER3> A wise man once yelled at me after I badgered him with questions one too many times, "Use the source Luke". And that's what I'd recommend. Read as much Ruby source code as you can (ahem, github), make the effort to understand why the authors designed a piece of code the way the did. The Rails source continues to evolve into a great example of interesting to read Ruby - but you might want to start out with something a bit simpler like Sinatra :)

<comment><USER4> Sinatra is a great framework to start off with when you're getting into Ruby. Especially with the omitted boilerplate that you would get when you create a new rails project.

</comment></comment><comment><USER5> Some docs, tutorials, and assorted stuff at <http://www.ruby-doc.org>

</comment><comment><USER6> might not teach you ruby, but totally worth reading anyways.

<http://poignantguide.net/ruby/></comment>


Node.js 0.4.1 released, fixes bugs - <AUTHOR> https://groups.google.com/forum/#!topic/nodejs/lyJOuUHF-04

<comment><USER2> Perfect timing to see this on HN. I was thinking about playing with either Hadoop or Node.js tonight (both for the first time), I guess this post made up my mind. It's installing now. This is exciting to work with, and a lot different for me being a long time C# developer moving to the Linux world.

<comment><USER3> Be curious to hear what you think of node after toying with it a bit.

<comment><USER2> Hello World. It worked :) In general, I love JavaScript so I don't see why I wouldn't like Node. I'll have to write a real program to truly have an opinion.

What's the best way to start and keep Node running?

<comment><USER4> The best way to keep any service started and running runit. <http://smarden.org/runit/>

<comment><USER3> We give credit, when due... Check out forever.

[http://blog.nodejitsu.com/keep-a-nodejs-server-up-with- forev...](http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever)

<comment><USER5> I was inspired by forever, so I also created my own management tool:

<https://github.com/luxdelux/restarter>

</comment></comment></comment></comment></comment></comment><comment><USER6> They are going very fast, just changed out for a module that is a fork of a fork of a module made for .2 line that keeps getting obsoleted with every point release

</comment><comment><USER7> Wow. I just finished compiling v0.4.0

<comment><USER8> I did too, yesterday! Can't be happier to see progress on node.js though :)

</comment></comment><comment><USER9> sudo add-apt-repository ppa:jerome-etienne/neoip && sudo apt-get update && sudo apt-get install nodejs <\- to install node.js 0.4.1 on ubuntu</comment>


Iridium – Secure Browser - <AUTHOR> https://iridiumbrowser.de <comment><USER2> The developers of Iridium don't reveal that their browser phones home to their servers, and that's cause enough for distrust here.

A quick "grep -r iridiumbrowser.de" of the source reveals that they replace calls home to Google with calls home to various hostnames of the form "trk- NNN.iridiumbrowser.de", where NNN is a three-digit number. Presumably these hosts act as proxies. For example, lines 37-38 of chrome/browser/history/web_history_service.cc:

        const char kHistoryQueryHistoryUrl[] =
            "https://trk-139.iridiumbrowser.de/history.google.com/history/api/lookup?client=chrome";

Edit: The git log for this change:

[https://git.iridiumbrowser.de/cgit.cgi/iridium- browser/commi...](https://git.iridiumbrowser.de/cgit.cgi/iridium- browser/commit/chrome/browser/history/web_history_service.cc?id=3bb27d9887bef87a41b56f2ec5ef62df81319a0a)

"Replace URLs to Google services by URLs to our own server, so as to analyze where we still have to patch the browser to make it stop blurting data out."

That's an acceptable excuse in a debug branch, but there's no reason for this kind of privacy-impacting debug code to reach a public build.

<comment><USER3> This is really great feedback. Reading this and the other comments makes clear that we need to improve documentation what and why we changed things. All the trk-xxx.iridiumbrowser.de hosts are there to find connections which we were not able to disable yet. All these end up at nothing (404 not found) and are not proxied in any way. Essentially Iridium browser should never contact them - if it does then it is a code path we have missed and a bug.

<comment><USER4> Then replace them with a crash or popup ("Line <x> was reached but shouldn't be reachable. Please report this." or whatever)

Phoning home without permission goes against the entire concept of a secure browser.

Have you ever seen the underhanded C contests? There are _far_ too many ways for something like this to turn nasty. Especially given there's inherent plausible deniability.

</comment></comment></comment><comment><USER5> Given that Chrome (and Google in general) has possibly the best defensive security team in the world, it's hard for me to take these security-oriented forks too seriously. Indeed, the last "secure Chromium fork" I heard about, WhiteHat Aviator, turned out to introduce a bunch of new vulnerabilities:

[https://plus.google.com/+JustinSchuh/posts/69qw9wZVH8z](https://plus.google.com/+JustinSchuh/posts/69qw9wZVH8z)

Even if the fork doesn't add bugs, you are now relying on the fork's maintainer to push security updates. Will they be as good at this as Chrome's team? This is unfair, of course: no startup or small project is ever going to have Chrome's resources. But when it comes to security, speed of updates really does matter.

<comment><USER6> > Given that Chrome (and Google in general) has possibly the best defensive > security team in the world, it's hard for me to take these security-oriented > forks too seriously.

I think it depends on who and what you most eager to secure yourself from. If you think hackers are the greatest online threat, perhaps you should go with Chrome (if you chose between these two browsers). If you don't trust Google to stay classy when it comes to privacy and data collection, perhaps you could consider running a one or two versions old Iridium version of Chrome. Personally, I use Firefox. I prefer not to use a browser from a company that lives on data collection.

Chrome might be kosher now (to be honest, I don' know), but a decision at the headquarters can change that at the next automatic update.

<comment><USER7> >Personally, I use Firefox.

I seem to recall a recent hn post that made FF sound like a bit of a privacy disaster in its own right - specifically on the topic of addons (they all seem to phone home).

<comment><USER8> Those add-ons are things _you install yourself_ on top of the browser. What does that have to do with Firefox's privacy? Nothing.

Random software installed from the Internet can be harmful, who'd have thought!

<comment><USER9> Except that the browser is missing a lot excepted features and historically positioned itself as "just pile extensions on top of FF to get features we won't add or have removed".

adblock ? disable javascript ? mouse gestures ? download manager ? privacy protection ? duplicate tab ? and so on all are extensions because mozilla refused to implement or removed those features.

</comment></comment></comment></comment></comment><comment><USER10> The one question you really want answered from any "secure" or "private" browser fork of Chromium or Firefox is: exactly how, in excruciating detail, do they track upstream security fixes? Are they getting notification of issues alongside the browser vendor, or do they find out only when the public does, when the embargo on disclosure is lifted?

Keeping up with vulnerabilities in browser codebases is a full-time job and there are very few teams in the world who can fund it, so odds are, forked browsers are going to need creative ways to piggyback on their upstream.

</comment><comment><USER11> Every time I read a story like this, I'm reminded of Iron: [http://neugierig.org/software/chromium/notes/2009/12/iron.ht...](http://neugierig.org/software/chromium/notes/2009/12/iron.html)

</comment><comment><USER12> Okay, so their current release is based on chrome 41, supposedly with some security improvements. You know what else made security improvements over chrome 41? Chrome 42.

</comment><comment><USER13> None of these "secure browsers" seem to actually do any real hardening.

<comment><USER14> "But it does call home to Google." This doesn't seem to be that much more secure if it still has to contact their servers.

</comment></comment><comment><USER15> Yet Another Chromium Fork. "Iridium has various enhancements where it forces strict security to provide the maximum level of security without compromising compatibility." \-- what does that means, exactly?

<comment><USER16> The homepage says:

Disable transmission of partial queries, keywords, metrics to central servers without consent.

Builds reproducible, modifications auditable.

<comment><USER15> Couldn't those recommendations be pushed to the Chromium project, without the need to create yet another brand of Chromium?

<comment><USER17> I second that "Chromium" used more in Linux distros.

</comment></comment></comment></comment><comment><USER18> All chromium forks seem rather useless IMHO. They don't support chrome extensions AFAICT and at best they are a few hours behind Chrome in shipping updates and at worst days/weeks/months/years. Sounds like I have to trade quite a bit for "reproducible builds" which I'm not saying isn't anything, it is but just not something I'm super interested in giving up so much for. We ALL use code everyday that we can't see the full source for (I seriously don't believe that anyone actually working in tech and staying up-to-date can run an OS + all open source software, I just don't believe it) so adding one more piece doesn't seem like that big of a deal.

Don't get me wrong I think security/privacy is HUGE and I don't want to sound defeatist but come on... I'd love if everything was open source and I could inspect/debug everything I run but that's not the world we live in and you would have to go back to the "dark ages" of computing in order to live by that standard. It's similar to people who have android phones with stock roms who will tell me they prefer android because it's open source. Oh really? Cause all I see is binary blob in your hand just like me. 1-2 of them play with custom roms and this but NONE of them go as to install F-Droid (or whatever to FOSS marketplace is) and ONLY use apps from it.

At some point you have to say "Yes I know I can't know 100% the security of this app/device" and STILL use it. It's that or be a hermit, I don't like it but that's how it is.

<comment><USER6> > All chromium forks seem rather useless IMHO. They don't support chrome > extensions [...]

The Chrome extensions from [https://chrome.google.com/webstore/category/extensions](https://chrome.google.com/webstore/category/extensions) seems to work just perfect in Iridium.

<comment><USER18> Then I stand corrected, I had read somewhere before that they didn't work.

</comment></comment></comment><comment><USER19> I would have picked a different name since there is already an Iridium in the tech space (satellite phone company). Not sure if it matters in Germany.

<comment><USER20> Yes it matters (at least to me), i was confused initially if it would be some browser for the iridium sat network.

<comment><USER21> yeah that's weird..

</comment></comment></comment><comment><USER22> I don't trust them. They have not a single contact information and no imprint on their website. Which is in fact illegal as their website ist hosted in Germany and uses a german top-level-domain.

They advertise their product as "a secure browser" without making any significant changes under the hood. As "unicornporn" said: "privacy" != "security". Especially when you replace one villain by another.

</comment><comment><USER23> Another big issue I found is that it does not really start with a clean slate. It copies over your existing google profile to make the setup seamless. I think that must be part of their debian packaging, but the profile path it is using (/home/nemo/.config/iridium/Default) is freshly created in my file- system and yet I can see my history from my current chrome profile in there.

<comment><USER3> It should start with a clean state. Please file a bug at [https://github.com/iridium-browser/iridium-browser- ubuntu/is...](https://github.com/iridium-browser/iridium-browser- ubuntu/issues)

<comment><USER23> Filed at [https://github.com/iridium-browser/iridium-browser- ubuntu/is...](https://github.com/iridium-browser/iridium-browser- ubuntu/issues/7)

</comment></comment></comment><comment><USER24> There are lots of other 'flavours' of Chromium out there. Try to avoid any closed source binary blobs like Comodo Dragon, and others. I like this because at least we can inspect the source: [https://iridiumbrowser.de/development](https://iridiumbrowser.de/development) Rather than download from their site, I would much prefer to build this from the source code they provide.

All the browser does is prevent phoning home to Google, which is preferable if you've decided to permaban Goog. from your Internet traffic. Google is so tightly woven into Chrome and is a huge privacy risk.

On the other hand, you could route all your vanilla privacy waiving stuff through Chrome and use Firefox to do real surfing. Excuse the bias here, but I know my way around the web and Chrome likes to think I don't. I suspect Chrome is some sort of fisher price browser designed for non tech savvy folk.

So use Chrome for Facebook, Youtube, other Google products. But don't use it for actually surfing the web.

</comment><comment><USER25> It would be nice to see how Iridium fares against WhiteHat aviator [https://www.whitehatsec.com/aviator/](https://www.whitehatsec.com/aviator/)

I personally find aviator to be more trustworthy at this point though.

</comment><comment><USER26> How does extensions update happen in Iridium? I noticed in Chromium, they check for updates frequently by connecting to the Google store. Does the same happen in Iridium? If not, how?

</comment><comment><USER27> There are a bunch of things I don't understand in the patches. I wish they'd link to a bugtracker or something. (Incidentally, Chrome/Chromium has a public bugtracker: Iridium seems to have a Trac that nobody used apart from creating two tickets.)

* Enabling Do-Not-Track by default: [https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/commi...](https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/commit/?id=9db15d3834683bcb621c263e9aef49ba17f413a2)

This is widely considered to be a questionable plan, and violates the Internet-Draft (section 6.3: "It MUST NOT transmit OPT-IN without explicit user consent."). Are they asserting that merely having Iridium over Chromium is explicit user consent?

* Disabling hyperlink auditing: [https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/commi...](https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/commit/?id=411e31b4bcefdff1e93704c5c4ff76572d0c2596)

As the HTML spec ([https://html.spec.whatwg.org/multipage/semantics.html#hyperl...](https://html.spec.whatwg.org/multipage/semantics.html#hyperlink- auditing)) points out, the behavior of hyperlink auditing in terms of privacy impact is already achievable in several ways, like server-side redirects, JavaScript, etc. The goal with the feature was to make performance and user experience better, while not changing the privacy standard. Is it being changed in Iridium for privacy reasons or for other reasons?

* Increasing the default client certificate (?) length to 2048 bits from 1024 bits: [https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/commi...](https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/commit/?id=4b16cfc4abc4482a0b4ccf9321c547685f26c927)

Given how much Google's been yelling about 1024-bit server certs, this seems like an obvious thing to change upstream. Has it been submitted / is there a reason they haven't changed it in Chromium?

* Disabling globally-installed NPAPI plugins on OS X, but still allowing those installed in your homedir: [https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/commi...](https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/commit/?id=fd5b986d422963f5466c94ab0bae012c9e059902)

Why? (There's probably a reason, I just have no idea what it might be.)

* Emptying the list of CAs allowed to sign EV certs: [https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/commi...](https://git.iridiumbrowser.de/cgit.cgi/iridium-browser/commit/?id=2b97ce66913b9e6e1c03214132e9432e75fc21ea)

Why? As far as I can tell, the only effect is that EV certs will show up as normal certs (green lock, instead of bar showing the organization name). What does this have to do with improving security or privacy?

</comment><comment><USER13> Wow, these guys seem to be using an ancient and vulnerable version of cgit.</comment>


Writing A Mac OSX USB driver for the 24-core CPU on a thumbstick - <AUTHOR> http://wagerlabs.com/writing-a-mac-osx-usb-device-driver-that-impl

<comment><USER2> Eval kits are available since the whole team was canned and went to Green Arrays.

FORTHdrive (thumbstick) has a SEAforth chip on it (24 cores). Take a look at the hearing aid presentation in the files section of the SEAforth Google group [2] to see what can be done with this chip. Skip directly to p13 if you don't care about the math.

[1] <http://www.greenarraychips.com/home/news/index.html> [2] <http://groups.google.com/group/seaforth>

<comment><USER3> Is there a "no longer" missing in that first sentence? Or am I missing something on the SEAforth / GreenArrays web pages? What I see on the SEAforth page seems to suggest that FORTHdrive was discontinued last year.... :(

<comment><USER2> -are not- available, mea culpa!

</comment></comment></comment><comment><USER4> _Did I mention that Mac OSX drivers are written in C++?_

To be nitpicky about an otherwise very good post, IOKit uses a "restricted subset" of C++, so things like exceptions, multiple inheritance and templates aren't allowed. Also, IOKit has its own runtime typing system. [http://developer.apple.com/mac/library/DOCUMENTATION/DeviceD...](http://developer.apple.com/mac/library/DOCUMENTATION/DeviceDrivers/Conceptual/IOKitFundamentals/Features/Features.html#//apple_ref/doc/uid/TP0000012-TPXREF105)

</comment><comment><USER2> Source code <http://github.com/wagerlabs/seaforth24> and Forth code to talk to the device [http://github.com/wagerlabs/seaforth24/blob/master/USBdriveM...](http://github.com/wagerlabs/seaforth24/blob/master/USBdriveMX.f)

</comment><comment><USER2> Uploaded to Scribd:

<http://www.scribd.com/doc/26543064/Preso-HLS></comment>


You are building too slowly - <AUTHOR> http://www.jpuopolo.com/2011/10/you-are-building-too-slowly/

<comment><USER2> I agree with the premise of the article. The point being advocated is a direct challenge in the way goals are achieved in a set frame of timeline one is apportioned. It shows that you may be more efficient and perhaps more productive if you could push yourself harder. Setting unrealistic goals and achieving it or coming close doing so comes just short of what a philosopher eruditley noted as being of a great mind!

That is asking "thinking of things that are not in existence, and asking Why Not?" yes, that's what I truly think Joseph has done here! Challenging the norms and at the same time, proffering his own peculiar solution!

Well done, dude!

</comment><comment><USER3> The software industry may be competitive but this business environment is far more of a land rush than a gold rush. There are more opportunities out there right now than there are talented individuals and groups capable of executing on them. I'm not sure I can agree with the authors conclusion here. The early bird gets the worm is probably more cliche than truth.

<comment><AUTHOR> Fair comment, part of the point of the article is to challenge the notion that it takes X long to build something. I think sometimes we talk ourselves into believing it is going to take longer to build something than it could.

<comment><USER3> That I can possibly agree with, when it is ourselves we are challenging with the deadlines and when we are talking about a launch or not situation. For teams I think that mentality more often than not leads to poor results and quality. Rushing without taking the time needed to do something "right" (I'll leave it as an exercise for the reader to determine what's "right" for them) just isn't sustainable long term.

Take Balsamiq which takes the exact opposite stance here: <http://blogs.balsamiq.com/team/2011/09/07/pace/>

I think that is a far more realistic and sustainable guideline to work from.

<comment><AUTHOR> I think there is a subtle difference for rushing and coding bad in the process as opposed to be excruciatingly focused on a deadline and thinking of clever ways to do things faster. I will be sure to check out that blog though. Thx

</comment></comment></comment></comment><comment><USER4> Great post by Joseph Puopolo and one that the people at RIM/BlackBerry should really be reading given their announcement of pushing off the PlayBook 2.0 release to February 2012

<comment><AUTHOR> Thanks for the note. That is a perfect example of a company, who just can't afford to wait. The window is closing to turn the tide, if it hasn't closed already.</comment></comment>


Grappling with Infinity in Constraint Solvers - <AUTHOR> https://tuzz.tech/blog/grappling-with-infinity <comment><USER2> Nice.

Recursive functions are possible in a total system as long as the recursion depth is bounded. The original Boyer-Moore theorem prover (1978) had that. You had to prove termination for every recursive function by giving a depth value, which could be a function of the inputs. For example,

        (times x y)

defined as

        (if (zerop x) 0 (add (y (times (sub1 x) y))

would have a depth limit of "x". (Note that in this world, x and y are nonnegative integers and (sub1 0) is 0.)

There's a lot to be said for working with total functions and finite arithmetic. No undecidability, no halting problem.

</comment><comment><USER3> This is Chris Patuzzo! His work does not get enough attention.

He mentioned Sentient Lang in the article. It is really, really cool. Its a compile-to-JS declarative logic language that can do some fucking neat stuff. Think Prolog or Mercury, but with much more comprehensible syntax.

[https://sentient-lang.org/](https://sentient-lang.org/)

I reached out to him a month or two ago after stumbling upon his work, and he took the time to respond and have a conversation with me.

Incredibly brilliant and genuine guy, happy to see more of his stuff posted here.

Edit: He has done more stuff besides Sentient. Check out his work in the general area of computational logic/automated theorem proving.

</comment><comment><USER4> It is also possible to build a model of Presburger arithmetic extended with infinity. We did that a few years back, you can try it out online here - [http://loris-5.d2.comp.nus.edu.sg/SLPAInf/](http://loris-5.d2.comp.nus.edu.sg/SLPAInf/)

</comment><comment><USER5> Very interesting, thank you for this writeup!

Regarding the following considerations:

 _" After a few seconds this program terminates which seems wrong. Why should a problem that has infinitely many solutions ever terminate? Shouldn't it run forever?"_

Yes, conceptually, it should of course run forever. However, at some point, even when using unbounded integers (which it, in my view, also should do), it will eventually run out of memory because the representations of involved bounds will exceed what can be stored.

In such cases, from a correctness perspective, it is inadmissible to simply stop "silently", because that would be indistinguishable from cases in which there are no (further) solutions.

Instead, some kind of error should be raised, indicating that it was not possible to search further than that. And when using bounded integers, likewise an error should be raised if some internal range is exceeded when searching for solutions.

</comment><comment><USER6> This seems like a tricky problem to solve. I think a practical use of constraint solvers would have some criteria by which a solution would be seen as desirable.

For eg if I'm designing something in the real world I'd want to optimize for material or cost in terms of time or money.

Sometimes I'm just interested in seeing if a solution exists.

So the solution here seems to be able to add soft constraints on what kinds of solutions are desired to guide the search.</comment>


How to contribute to an open source project on GitHub - <AUTHOR> http://blog.davidecoppola.com/2016/11/howto-contribute-to-open-source-project-on-github/ <comment><USER2> This guide is heavy on the mechanical side and misses a lot of important substantive parts, if your goal is to add value to an open source project.

Don't just create a fork, branch, and submit a PR without context. First, make sure the intent of your change is actually desired. Just because someone opened an Issue does not mean that it belongs in the project. Anyone in the world can open a Github Issue for any reason. Instead engage and discuss the Issue first and make sure it's actually something the project wants.

Don't just start writing code. Familiarize yourself with the codebase. This comes naturally if you are a user of the project, as you will naturally run into bugs or learn the software's behaviors and as you discuss the Issue or features with maintainers. There are far fewer right ways to build a feature than possible ways.

Finally, understand that your contribution is not "free" for the project. It takes time and consideration to even look at your PR and even more to code review it. The more popular the project, the more true this is.

<comment><USER3> To sum all that in a nutshell: Collaborate.

<comment><USER4> I'm curious to see what others think about your comment, notyourwork. To me (maybe only me!) it looks like you're putting a pithy stamp on what the GP said. Going a little farther, it looks to me like you're taking credit for what the GP said. I do not see the value of saying, "To sum all that in a nutshell: Collaborate." I see a value in what the GP said.

That said, this is the first time I've criticized this kind of comment. I've seen people pithily-sum-up others a lot. If others disagree with me, I'll take that into account.

<comment><USER5> Your 2 paragraph criticism of one a one sentence comment is way more obnoxious and contributes less.

What he was trying to do is summarize and give a one word interpretation/other way of looking at it, not trying to do something insidious and inane as trying to steal credit for an HN comment.

Sometimes it helps to have a point summed up in the briefest possible way. What never helps, though, is posting inane accusations of ulterior motives to HN comments.

<comment><USER6> I have to agree with delish on this matter. Notyourwork's comment actually took away from the conversation. jhchen's assertions of, "be familiar with the project", "don't just start writingcode", and "your contribution is not free for the project" is not summed up nicely with the word "collaborate". To some people, collaborate might mean to put in a pull request without caring whether it is wanted or not, the exact opposite of what the OP said. "Collaborate" can be taken in so many ways that it is useless, and in this instance actually takes away from the message.

A closer summary of what the OP said is "Don't waste the project maintainers time" which, while much better than "collaborate", is still a waste of time and misses the specific advice the OP gives.

Delish is justified in calling out notyourwork's comment for providing nothing useful. If I wrote a comment like the one notyourwork wrote I would be feeling guilty for writing a comment just for points. Also the size of a comment is not a good basis for criticism.

</comment></comment></comment></comment></comment><comment><USER7> There is one very important tip that's missing: Follow the original coding style _exactly_.

Not just spaces vs tabs or block styles, but idioms and other idiosyncrasies, too. Why? Imagine reading a source repo where every second block uses different bracket styles, mixing spaces with tabs and so on. It's going to look like a kludgy mess, and will be distracting to read.

There _is_ no correct style for most languages (perhaps `go fmt` might be an exception), only opinions.

<comment><USER8> > Follow the original coding style exactly.

Personally I would take any formatting and just run an auto-formatter over the code section when I work on it the next time in case it bothers me.

Correct and sane code are far more important than hassling someone else to conform to a particular style.

In my opinion applying styles is a task for machines, not humans.

<comment><USER9> It's more than that.

I've had a patch rejected because my unit tests used the wrong verification manner (java assertTrue() instead of assertThat() in cases where the latter would report better error messages were the test to fail, as I recall). Automatic blah will never catch this kind of thing.

Ditto for human-readable messages that have/lack full stops at the end.

Ditto for if() foo vs if() { foo } and the ever-lovely style question, are abbreviations such as TCP to be called TCP or Tcp in camelcased identifiers?

Style is largely a human matter.

<comment><USER8> > Ditto for if() foo vs if() { foo }

At least that one can be fixed automatically by eclipse.

But sure, there are some things that are difficult to automate. What I'm saying that one should not hassle a contributor over all those things that that can be done by machines.

<comment><USER10> How is that "hassle"? Somebody needs to fix it, why should it be the maintainer?

In my experience, not even bothering with style is a good indicator of careless "shotgun coding" and such PRs typically have far worse issues. It's also typical that such PRs won't have real issues fixed either.

<comment><USER8> > why should it be the maintainer?

I'm saying: Why should it be either human?

> In my experience, [...]

That seems fairly dismissive to me. An expert in a certain area can certainly fix smaller issues with a few lines of code but only have a limited amount of time on their hands. Having to read a lengthy style guide and making sure they adhere to every single rule, especially when those rules are the opposite of their regular habits, is a non-zero hurdle to contributing.

Offloading that work to a machine as far as possible lowers the burden to only those rules that cannot be applied automatically.

</comment></comment></comment></comment></comment></comment><comment><USER11> I dislike the idea of using 'origin' for my own remote name.

I keep 'origin' as the canonical remote and my local master branch tracks origin/master. I use people's usernames for their remotes (including for my own).

If I'm pushing a feature branch to my own remote:

        git push -u myusername mybranchname

If I need to checkout someone's PR, it's:

        git remote add theirusername email@example.com:theirusername/repo.git
        git fetch theirusername
        git checkout -t theirusername/repo

I've seen people at work who are new to git/Github struggle a lot with the 'origin'/'upstream' differentiation recently, especially when they're learning branching, and they don't seem to have any problems once I switch them over to using 'origin' \+ usernames.

<comment><USER12> FYI: GitHub will create a branch in your repo for pull requests. You shouldn't need to pull directly from someone else's repo just to look at their pull request.

[http://stackoverflow.com/a/30584951](http://stackoverflow.com/a/30584951)

<comment><USER11> Didn't know you could pull by ID! Thanks!

</comment></comment></comment><comment><USER13> I just want to emphasize that if reviewers ask you to make changes to your pull request, it is not a rejection or lack of appreciation. As the maintainer of an open source project, I greatly value contributors who will iterate and iterate until the change is accepted, and often, I will give them push rights ("collaborator" status) to pay it forward.

And if a change is rejected, it's usually because there was not enough discussion beforehand about how to solve the problem, the change itself did not undergo enough discussion/iterations, or the change is not really a solution to a problem. (It's not the maintainers saying "Go away and never come back" \-- more like, "Thank you for your effort! Please approach this differently.")

</comment><comment><USER14> If you'd like to avoid switching to the browser in your development workflow, I recommend checking out Git-Repo [0] that was posted to HN a little while ago [1].

Git-Repo basically tries to put as many steps of the contribution workflow in terminal as possible, by using the API of the git hosting services. It currently supports GitHub, GitLab, and Bitbucket.

[0]: [https://github.com/guyzmo/git-repo](https://github.com/guyzmo/git-repo)

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

</comment><comment><USER15> This is a great start!

Contributing can be a lot more than just PRs though: \- answering questions on stack overflow, chat (irc, gitter, slack)

\- creating a minimal code repro, checking for duplicates, checking if a bug is fixed in a later release/master branch

\- writing tutorials/usage scenarios, giving talks, just using the project and providing feedback

\- helping with documentation + website

\- translations if possible

\- reviewing other PRs

\- helping with the changelog, testing prereleases

\- adding to the discussion on issues

Bigger projects can have a pretty hard time with maintenance: fixing bugs, juggling PRs, making releases, answering questions, etc.

(We're looking for help on [https://github.com/babel/babel](https://github.com/babel/babel) and trying to figure out how we can make the project more contributor friendly!)

<comment><USER16> _helping with documentation + website_

I am not a programmer. I do copywriting for pay and I have run a bunch of different personal websites over the years (15+ years, I think). I know a little HTML and CSS.

I am interested in getting involved in open source via first working on copywriting and website stuff, since that is what I already have a background in. I am finding it extremely opaque to figure out how on earth to do that.

I left a couple of related comments on HN recently:

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

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

I do have a github account and I recently went through the Hello World on how to do pull requests.

Any tips on how to begin interacting with open source projects on the copywriting and website development piece of things?

Thanks.

<comment><USER8> That depends largely on what you want to edit. Websites might be static pages, generated from some simpler markup language or hosted on a form of CMS. Documentation is often generated from source code comments to some extent.

If you can't easily figure out where it is stored and how it is generated you should probably ask along with your inquiry whether the maintainers would be interested in contributions in that area.

<comment><USER16> Okay, so, you are suggesting I figure out who the project lead is and email them as my first step?

<comment><USER8> The preferred form of communication also depends on the project. Do they have an issue tracker? If so you could probably file one along the lines of "Page X could use some improvement" and ask whether they're interested and how it's done.

Some projects use mailing lists, forums or even irc.

Open, group-based forms of communication are usually preferred because it allows anyone qualified to respond instead of pinning it on a particular person.

<comment><USER16> Thank you. This helps. I get told all the time "Just do X!" and then I try X and it blows up in my face because it turns out you only do X under (long list of conditions that no one ever told me and assumed I knew).

<comment><USER17> I get anxious about this too sometimes, but in my experience the "long lists of conditions that no one ever told me and assumed I knew" are hardly ever relevant.

<comment><USER16> I don't get anxious. I get tired of doing what people told me would work and having it go really badly.

<comment><USER18> Complaining about freely volunteered advice people give you in a friendly and helpful spirit is a good way to avoid getting it.

<comment><USER16> Well, that isn't what I was doing. Since you are not among those being actually helpful to me in this discussion, you are more than welcome to stay out of it if you feel that some remark of mine somehow constitutes bad behavior. I have upvoted every single reply that was useful to me and said _thanks_ twice.

<comment><USER18> What were you doing? If someone volunteers advice, just be appreciative and try it if you want. Don't slag them off if it doesn't work out for you. It's not their fault they don't understand everything about what you need to do to implement their advice.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> For many projects, Github is just a place to publish yet another public repo. Using github issues and pull requests is a sure fire way to feel ignored. If you want to contribute, e-mail the lead maintainer. Do not submit patches to the ether. Do not think anyone will look at your patches. Having started several large open source projects, and started / worked for a number of open source companies, I can tell you the best way to get involved is to work on your personal relationship with the other developers. If that means hanging out in IRC or Slack, that's what it takes. Github is a terrible form of communication, especially when your org / developers have 100+ repos.

<comment><USER20> That doesn't sound like a sound advice.

If the author of the repo can't be bothered to look at the issue or a PR then I don't see how they'll be receptive to emails.

Most projects don't have other ways of contacting the people involved (very few list their e-mail addresses and even less have dedicated irc or slack channels).

Yes, it happens way too often that issues and PRs are ignored but realistically it's a strong signal to stop investing more time into such projects because it's unlikely things will improve.

<comment><USER21> > If the author of the repo can't be bothered to look at the issue or a PR > then I don't see how they'll be receptive to emails.

There's an assumption here that GitHub is automatically more convenient and desirable than an email or other project management tools. That's not a universal sentiment; not everyone wants to participate in the GitHub social network, and even tools themselves that GitHub offers are a step down depending on who you ask (like the pull request mechanism and issues and what they try to pass off as a "wiki" and...)

So just because a project and its maintainers don't have a big showing on GitHub, don't assume that means anything about the health of the project. It may just mean they have better places and ways to spend their time and get things done.

> Most projects don't have other ways of contacting the people involved

Why do you think the email field that shows up in git's log was put in place? Honest question.

<comment><USER22> Why do you assume everyone fills it up ? Honest question.

While it's true github isn't the "best tool" for everything in the world (what is?), I find it mostly serves as a discovery tool. If I have a bug in a project, I'll first look at the issues/PRs for other people who might have fixed the damned thing. And it often turns out there are. The original author might have abandonned the project, or he might have a different way to handle contributions, but that doesn't matter to _ME_. I care about having my fix, upstreamed or not.

</comment></comment></comment></comment><comment><USER23> Step 1: stumble upon a terrible bug (or that really obvious missing feature that _should_ be there) in your favorite library / framework / app.

Step 2: rant about it on HN / Github issues / whatever.

Step 3 (optional): try to reach developers on GitHub and get the obligatory "pull requests are welcome" response.

Step 4: In frustration, clone the repository, fix the damn bug and submit your pull request.

Steps 5..41: have an angry and emotional discussion with the devs who refuse to accept your PR because broken binary compatibility / regression tests / coding style / your choice of variable names etc. Fix all these issues and resubmit the PR until it's accepted.

Step 42: And this is how you become a contributor to high-profile projects like Docker, Akka, Spark etc, and now free to boast about it in your CV!

<comment><USER24> > Step 4: In frustration...

Step 4 requires no frustration. It should be a relief you can fix it yourself rather than hope for some opaque engineering team to maybe fix it at some future date since your company doesn't have the Platinum Support package.

> Steps 5..41: ...

I think maintainers of small projects should do their best to merge whatever is given to them without back and forth or delay--just a prompt and sincere thanks. There's no reason to treat contributors like junior devs you're trying to teach and guide. Sometimes that requires swallowing some pride in having the code be just right or means you may want to fix up a few things after the merge.

<comment><USER25> As a maintainer of small project I would say that it depends. If the code is really useful and contributor is not willing to fix any of my comments, I would merge it anyway and fix it myself. If the code is so bad that it would be easier for me to completely re-write it myself, I would reject it.

I'd like to think that my code review comments are reasonable most of the time, so it doesn't usually take more than 2 or 3 iterations to complete a pull request.

</comment></comment></comment><comment><USER26> Of these, 1: Chose the project you want to contribute to (and 1.5: Choose the issue to work on) and 9: Follow up are the hard ones. Both are primarily social problems.

For 1, it's mostly about knowing yourself. What projects interest you, and where can you contribute?

For 9, it's convincing the owners that your contribution is a net positive. Start with 2: Check out how to contribute, and proactively reach out so your pull request doesn't come out of the blue.

Oh, and be willing to put your ego aside -- it can be tough to defend your work, particularly if you're a new (and thus haven't built up trust) contributor. It gets easier, both as the project learns to trust you and as you learn the work within their practices.

<comment><USER27> So actually, I was thinking about #1 the other day as well. When you go to GitHub.com, they now have /explore and /showcases. But, even if you find something interesting (say [https://github.com/showcases/open- journalism](https://github.com/showcases/open-journalism)), it isn't clear that _any_ of those projects are suitable for contribution. Not everyone uses a CONTRIBUTING.md, but even more so, I think many of the showcased projects on GitHub fall into the "Free to make a copy of" not open to contribution.

So I keep coming back to what has been said elsewhere: the best way seems to be to find a bug in something you use, realize it's open source and go from there. That's unfortunately not a great way to mobilize the masses of people that _could_ contribute, but don't have a particular project in mind (think GSoC).

</comment></comment><comment><USER28> > The way people (usually) contribute to an open source project on GitHub is > using pull requests.

I disagree with this premise. The way people usually contribute to an open source project on GitHub is creating an issue or adding to a discussion. IMHO this is more valuable than actually writing code because it helps other developers gauge the relative demand for a feature/bugfix and sometimes you find out that other people have already solved the problem in their own forks.

</comment><comment><USER29> There are a few steps missing. Before the push, we need to pull on master and rebase the branch on top of master. See triangular workflow in this page [[https://github.com/blog/2042-git-2-5-including-multiple- work...](https://github.com/blog/2042-git-2-5-including-multiple-worktrees- and-triangular-workflows)]

</comment><comment><USER30> For anyone that is new to contributing to projects using git for version control I strongly recommend giving this tutorial a read: [https://www.atlassian.com/git/tutorials/syncing](https://www.atlassian.com/git/tutorials/syncing)

Additionally, the best way to learn git is to use it so try all the examples.

</comment><comment><USER31> I can highly recommend hub [1], which does steps 3, 4, and 5 in one command:

        hub fork username/repo

1: [https://github.com/github/hub](https://github.com/github/hub)

</comment><comment><USER32> I've been doing this without thinking about it for a while and after reading it from a beginner's perspective It seems like quite a few steps. It is the "right" thing to do though, as far as I know.

</comment><comment><USER33> Why did this get so many upvotes? It's well written, but isn't it just a trivial guide on how to do a pull request? Not trying to be controversial, I'm just genuinely curious.

</comment><comment><USER34> I would add "Make sure the maintainer of the repo will merge (or even look at) your PRs". I more than once had very reasonable PRs (bugfixes) waiting to be merged forever.

</comment><comment><USER35> There is a lot of overlap with Github's own guide to Contributing to Open Source [1] and Forking Projects [2]:

[1] [https://guides.github.com/activities/contributing-to-open- so...](https://guides.github.com/activities/contributing-to-open-source/) [2] [https://guides.github.com/activities/forking/](https://guides.github.com/activities/forking/)

</comment><comment><USER36> It's amazing that there aren't many articles like this one. I wrote something very similar [1] last year because I simply couldn't find a complete, step-by- step guide that addressed the details of forking, branching, etc.

[1] [http://www.matiasz.com/2015/04/16/contribute-open-source- rep...](http://www.matiasz.com/2015/04/16/contribute-open-source-repository- github/)

</comment><comment><USER37> Is there a breakdown of top projects by language? I'm a C# developer and would love to put my skills to work on an open source project, but how do I find one?

<comment><USER15> Not the best way to find an open source project to contribute to but you can check trending per language [https://github.com/trending/csharp](https://github.com/trending/csharp) or the top starred repos that are C# [https://github.com/search?l=C%23&q=language%3AC%23&ref=advse...](https://github.com/search?l=C%23&q=language%3AC%23&ref=advsearch&type=Repositories&utf8=%E2%9C%93).

I'd be much easier to find a project you use or know about so you have a lot more context into the project, it's usage, documentation, etc.

</comment></comment><comment><USER38> Here are some screencasts on this topic if that sort of thing interests you: [https://egghead.io/courses/how-to-contribute-to-an-open- sour...](https://egghead.io/courses/how-to-contribute-to-an-open-source- project-on-github)

</comment><comment><USER39> > Hopefully some of the project mantainers will check your pull request and > will give you feedback or notify you they decided to merge your changes > soon.

Ah, my experience is that I'll submit a PR and it'll just be ignored until the end of time.

</comment><comment><USER40> 7\. Work on your contribution

 _8\. Write tests!_

</comment><comment><USER41> Wow! When you want to fix a typo, it can be as little as two hours!

<comment><USER42> To be honest, typo fixes are fairly draining as a maintainer in large projects. Especially if it's a small (one-line) fix.

Yeah, I get that you want to contribute and that's awesome (one of the best things about free software is that everyone can contribute). But the relative benefit of the actual change versus the time-to-check-the-PR and time-to- reach-consensus-with-another-maintainer is quite low in most "typo fix" PRs.

If you're going to make a typo fix PR, please at least run a spell checker on the file that you're doing the typo fix on (and even better run it on the whole repo). Because at least then, your PR has a higher benefit ratio.

That being said, if you still make a typo fix PR I will merge it eventually. Just be aware that I sigh out loud each time I get a notification for typo fix PR, and I will almost certainly put other things higher on my priority list.

</comment></comment><comment><USER43> Ya'll can contribute to www.actionherojs.com whenever you want!

</comment><comment><USER44> But what about designers?

<comment><USER45> Projects need design as well. Websites, logos, manuals/documentation: there are plenty of opportunities for designers as well.

<comment><USER16> [https://news.ycombinator.com/item?id=12881822](https://news.ycombinator.com/item?id=12881822)

If you could elaborate a bit on _how_ to get involved in the non-programming piece for us non-programmers, like designers and copywriters, the world will be a slightly better place.

Thanks.

<comment><USER45> I think the key is to find a project you care about, or care enough about that you're willing to put in the effort to get to know the project and how it works. Some communities will be easier to get involved with than others. It's great that people want to get involved and volunteer their time and effort. They also need to keep in mind that managing the community takes effort as well, and that increases by some margin with every new contributor. Try to be as self-supporting as possible.

That goes for any project you want to get involved with, regardless of how you want to participate. And probably stuff you already know.

Want to work on the website? Documentation? Does the project already have tickets or tags for these types of issues? Maybe a separate mailing list? Look at the issue tracker. Subscribe to the mailing list. Look at the mailing list archives. The commit history for the website or documentation. How recent is the work? Who are the people involved? After you've gotten the lay of the land, figure out where you might want to start and ask if people the project would be open to having you work on it. Maybe take a stab at it yourself to get accustomed to the project and tool chain. Take a look at what's there already. How would you improve it? Compare it with sites or documentation for other projects you think are good or enjoy using. What can you apply from those sites to the project you want to work on?

For contributing and improving documentation, if you're new to the project, you've got a great opportunity to help produce better content for new users. What were your stumbling blocks? What was hard to find? What would you have liked to see as you were getting started?

And remember, you're likely entering the epitome of bikesheds.[0] :) Wear a thick skin! Some of my first contributions were in design and documentation. People like well-designed things. And they can be a great introduction to a community.

Was this helpful?

[0]: [https://en.wikipedia.org/wiki/Law_of_triviality](https://en.wikipedia.org/wiki/Law_of_triviality)

<comment><USER16> I have a pretty thick skin. :-) As someone who is strongly people-oriented and likes to debug the wetware/collective crap, I would say that the Law of Triviality grows out of the need to hash out important human elements, such as good communication protocols, trust between members, etc. It lays the groundwork for doing good work when the chips are down.

Thank you for the long, detailed reply. I think this will help me.

</comment></comment></comment></comment></comment><comment><USER46> Or in a lot of cases you can use github's edit button ;)

<comment><USER47> Agreed, it's much easier for quick bugfixes on code that you otherwise don't want to invest your time into.

</comment></comment><comment><USER48> what if I want to start my contribution I just don't know which project to choose ? this assumes that I already know the project I want to contribute to.

<comment><USER49> Usually people begin by contributing to projects which they already use. For a beginner, it might be better to start contributing to a project which is mainly written in the language which they're familiar with. Also, try to find a project which is beginner friendly; they usually have some issues marked as 'beginner' or 'good first bug', and also have a CONTRIBUTING.md page.

Bonus: A good idea is to start contributing to a project which contain problems sets to be solved by coding the solutions in a particular language. You could send PRs for creating/implementing some problems. [http://exercism.io/](http://exercism.io/) is a good example.

</comment></comment><comment><USER50> _Shudder_. This embodies all that is wrong with open source development these days.

Horrible GitHub workflow: corporate logos, octop^Hcat, CoC shoved in your face on every commit.

I'm currently forced to contribute to a GitHub project, it is the most annoying, bureaucratic and brainwashing workflow I've ever experienced.

<comment><USER51> > corporate logos, octop^Hcat

Only two logos appear in the entire pull request process, and those are the two small silhouettes that you see on every page.

> CoC shoved in your face on every commit

Codes of conduct? While they are becoming fairly prevalent, the GitHub interface has no special understanding of them.</comment></comment>


Ask HN: What happens when your startup fails - <AUTHOR>

What are some of the usual outcomes for the engineers when a startup fails?
I have worked at a startup that failed just once. When this happened the employees were not paid, and excuses were given. Sometimes we would be paid, and sometimes we would go for months without . At the end i was mostly paid back and found another job.
I realize that my story is probably not the most common outcome of a startup failing. Can you share yours? <comment><USER2> Your story is probably the most common outcome of a startup failing, except that in most cases if you're a founder not only have you not been paid but you're also now in a poopload of debt.</comment>


Detecting Genre from Book Covers Using Deep Learning - <AUTHOR> https://arxiv.org/abs/1610.09204 <comment><USER2> I'm confident that the paper's title is the entire inspiration for this research: "Judging a Book By its Cover."

<comment><AUTHOR> certainly up there with great titles like "can one hear the shape of a drum".

<comment><USER3> [https://www.maa.org/sites/default/files/pdf/upload_library/2...](https://www.maa.org/sites/default/files/pdf/upload_library/22/Ford/MarkKac.pdf) for the curious

</comment></comment></comment><comment><USER4> This is actually quite interesting. I used to work in a bookstore and as a productivity measure we would shelve books mostly without checking which section they belonged in. Turns out it is pretty easy to tell based only on the cover.

</comment><comment><USER5> I'm not trying to be a luddite, and it's all fun, but to me this seems like a particularily bad idea.

Sure, this obviously works most of the time, especially on romance novels. But the end result if actually used anywhere is that books would be either made to look as homogenic as possible, or they would be mischaracterized when being artistic in a nod to some content in the book.

Judging a book by its cover doesn't work with humans, and is a bad idea, ergo it's still a bad idea to have a machine do it

<comment><USER6> This is only for determining the genre of a book - the adage, 'never judge a book by its cover' more refers to the quality of the content.

<comment><USER5> Sure, but warranted or not I'd never read a romance novel, and if there for some reason happens to be a great scifi novel lumped in there I'd never spot it outside of recommendations.

</comment></comment></comment><comment><USER7> Or maybe covers are pushing clichés too much

Same with movie posters (Big Face over scenery, couple standing opposite to each other, Papyrus font, etc)</comment>


The 35 Best iPhone Apps Of The Year (So Far) - <AUTHOR> http://www.techcrunch.com/2009/08/15/the-35-best-iphone-apps-of-the-year-so-far/

<comment><USER2> 60000 applications, according to the article, 90% is junk. That leaves us with 6000 apps. Its near impossible to go through so many apps, how did they pick the top 35? Just based on sales/downloads?</comment>


Microsoft Teams Satire - <AUTHOR> https://github.com/ryanbrookepayne/tech-satire/blob/master/microsoft-teams.md <comment><USER2> It's not just the loss of context and taxonomy/ontology of information it's that everywhere in our culture people are being further and further enticed to solely think in terms of arbitrarily coordinated stream of consciousness which means people aren't getting regular practice at sustaining long chains of reasoning and describing those chains comprehensively to other people if that makes sense. I mean just think about the phenomenon of people reading and reacting to headlines, particularly political ones, versus reading the articles and providing sensible input about them. It's not just people are too lazy and entitled to their opinion, its also that reading long chains of information is getting prohibitive for their brain to allocate for. I've noticed this even in myself as once I left philosophical academia (continental European philosophy, to be specific), which involved reading ridiculously long chains elaborating a single idea such as Kant's _Critique of Pure Reason_ or Heidegger's _Being and Time_ , for SWE, I've gotten increasingly worse at being able read great lengths of text year over year. You can argue one needs to pull themselves up by the bootstrap but this problem is in very similar territory to "I'm the only person on my avant garde social network and everyone else is on Facebook".</comment>


TSA considering eliminating screening at smaller airports - <AUTHOR> https://www.cnn.com/2018/08/01/politics/tsa-considering-eliminating-screening-at-smaller-airports/index.html <comment><USER2> Rescreening those from feeder airports is going to be a huge cost/rebuild at every hub I've been to.</comment>


Ticketmaster Data Breach - <AUTHOR> https://www.theguardian.com/money/2018/jun/27/identity-theft-warning-after-major-data-breach-at-ticketmaster <comment><USER2> Lots of card payment details leaked in this one - a lot of the articles are trying to downplay it, but it is clear that these details _were_ leaked and _were_ used for fraud.

Monzo did a good writeup on it: [https://monzo.com/blog/2018/06/28/ticketmaster- breach/](https://monzo.com/blog/2018/06/28/ticketmaster-breach/)

</comment><comment><USER3> Ticketmaster will feel the force of GDPR on this one. I'll be interesting to see how it plays out.

<comment><USER4> It seems that the breach took place before the GDPR was in force.

<comment><USER3> No, not entirely. According to the e-mail I got; the breech affected logins happening between February and 23 June of this year. GDPR kicked in on the 25th of May.

But I'm no lawyer, so I'm not sure how it plays when stuff hits the fan before the law comes into effect.

Let's get some popcorn.</comment></comment></comment>


Students: yet another summer founders program (due 4/19): Highland Capital Partners - <AUTHOR> http://www.hcp.com/news/newsdetails.php/id/49812 <comment><USER2> Good God, another one. At least these guys didn't copy our application form.

The funny thing is, both Highland and Lightspeed are copying an aspect of YC that we later realized was a mistake: focusing on people currently in school.

People who copy you always end up copying a slightly old version of you. I noticed that with Viaweb. That's one reason all these imitations don't freak me out too much. Viaweb must have had at least 10 of them-- many of which copied stuff nearly verbatim from our site.

<comment><USER3> I am guessing though, that choosing to tell students that they are all worthless may have a chilling effect down the road.

<comment><USER4> I don't think the point is that all students are worthless, but rather that colleges aren't this huge source of untapped potential that they are popularly imagined to be. This shouldn't really come as a surprise; most brilliant hackers/entrepreneurs know this, which is why they want to leave.

Think about it. All I want is to be surrounded by brilliant people working on interesting things, which college can't provide. Which is why I want to leave. But this same logic shows why funding college students isn't really an arbitrage opportunity. Even if you could figure out who the brilliant ones are, which is difficult, there are too many social and systemic forces pulling in the wrong directions.

(N.B. I'm not claiming to be brilliant myself, only that given the choice I prefer working with others who are.)

<comment><USER5> Spot on. Most of the people taking computer science at my university dont care about hacking away at interesting problems. They're all here because they know that they can get a high paying job in The City when they graduate.

</comment></comment></comment></comment><comment><USER6> Highland was one of the VC's that ripped into govWorks (startup.com) in 2000 If I remember correctly ~ <http://www.phfilms.com/index.php/phf/film/startupcom>

</comment><comment><USER7> I'm hoping that YC will be responsible for converting the VC industry from a hundred $20m deals per year to many thousands of $250k deals a year. The resulting innovation would be staggering.

<comment><USER3> This money doesn't necessarily have to be divided up. The dramatic increase in productivity from these people creating startups instead of just working for a large company should cause there to actually be much more money in tech fields. Right?

</comment></comment><comment><USER8> "Complete the below application in either a Word document (no more than two pages in total length) or PowerPoint presentation (no more than five total slides)."

~sigh~

</comment><comment><USER9> Anyone submitting applications to them seeking funding to copy previously launched YC sites? That would be funny.

</comment><comment><USER10> I agree that this is being done for more good marketing than really building a "farm team" in which to invest in (like CRV is doing).

Thing is be aware of this Higland Capital prefers business and infrastructure internet plays, I dont think they ever invested in a consumer play ever. Take a look at their portfolio companies to get a sense of what they are investing in.

That being said, Highland is a tier-1 firm here in Boston and VC being followers, maybe Highland will start a trend?

</comment><comment><USER11> People always copy that which is popular. Only difference being that they are giving space. This is so obvious that they are pushing to attract the crowd. But there is one thing they missed out, anyone with solid idea and attitude will get into YC, whoever lost their chance of YC will be gobbled by immitators. This explicitly means they are always 1 step behind.

</comment><comment><USER12> This is turning out to be a nuisance with so many similar programs.... I wouldn't apply to those unless they offered something much better ... besides i'm not even in school...</comment>


Gary Reback: Why the Technology Sector Should Care About Google Books - <AUTHOR> http://techcrunch.com/2010/02/16/gary-reback-why-the-technology-sector-should-care-about-google-books/

<comment> jim-greer The 2nd comment sums up my feelings pretty well:

"If the argument is: better these books not be available to anyone than to have only Google have them, as it will make Google search too good — from my own consumer point of view, that doesn't carry a lot of weight. Please do not seek to protect me from good search results.

If the argument is: Due to Google's activities, since we are on the precipice of having these books become available through one party, it would be preferable for them to be available to multiple parties, then I'd agree. But that is hardly a point to demonize Google for. We wouldn't be having this discussion without their efforts."

</comment><comment><USER2> Well, Google is above the law. In fact, lots of large corporations are above the law. Politicians are above the law.

What this google case does more than anything is support the idea of the decline of a nation of laws. We are no longer a nation of laws, we are a nation that rewards _law breakers_.

Google violated copyright law and are being permitted to benefit from that violation and that means the law doesn't really matter, does it? I mean, not if you're google anyway... or rich I suppose. I mean... what are the rules about who is subject to the law and who isn't?

That's what I don't know anymore. Politicians can break the law and corporations can break the law, but the people can't break the law... Apparently, individuals can't even have manga or carry around arabic flash cards.

It's really disgusting what is happening. It's not good.

</comment><comment><USER3> His argument about of long tail item's value for sell of mass market items, is also true for any other market.

Amazon uses this in a clever way. For long tail items , it lets merchants sell their wares at it's site , with little cost to amazon.This lets amazon control the mass market sales.

But this can go further:now amazon controls the customer , and the data of the niche market sales. If amazon find a scalable way into niche market sales , it could easily disrupt all it's merchants.

</comment><comment><USER4> Slightly off topic: I use books.google.com to keep track of books I want to read. Just recently that list of books got made public and retagged as "favorites". What's going on there?</comment>


In-Q-Tel taps Forge.AI to predict impact of world events for govt agencies - <AUTHOR> https://sociable.co/technology/in-q-tel-taps-forge-ai-to-monitor-predict-impact-of-world-events-for-govt-agencies/ <comment><AUTHOR> "Forge is listening to that ecosystem in real-time — the ecoystem of news, of social, of websites, of blogs, of whatever we can from around the world — and we're capturing that information"</comment>


Microsoft Office Labs vision 2019 - <AUTHOR> http://www.istartedsomething.com/20090228/microsoft-office-labs-vision-2019-video/ <comment><USER2> There was a flash somewhere in the video of the house's computer display showing how much power was being used and indicating it was switching to solar panels when the sun was out.

I think the home is kind of the last frontier of digitalization of everyday life. I want my exact power bill/consumption information to be visible on my computer somewhere in a similar way to Amazon's AWS dashboard, and I want to be able to turn on and off lights and stuff remotely.

All the technology for this exists, and it's very simple. But new homes just aren't built with it because there's no great company building the connection between the physical infrastructure of the home and the internet with great hardware + software.

Most new built-in central heaters and air conditioners have a standard digital communication interface that can easily be plugged into and controlled by this home computer. All power outlets and light sockets are connected to the powerline, and it's trivial to send data along powerlines.

The sensors to detect how much and at what temperature water is flowing through your pipes are cheap. You could probably build a totally connected home for a few hundred dollars (just for the hardware). That includes the power consumption information for every light socket, light switch, and outlet; every water socket, sink, shower, etc; and your heating and air conditioning system.

Can you imagine how much money you could save if you could see a dashboard of what is sucking up power in your house? Or if your house detected when all of your cars left the garage and lowered the heater target temperature? Or optimized light automatically by turning the dimmer up and down based on the natural light? Or sent you a text message when you left the doors unlocked in the morning? Or the heater is sucking up more power than normal for a longer time, so it gets shut off?

It could be monit + munin for your house.

Someone please build this. Or I will.

<comment><USER3> :)

</comment></comment><comment><USER4> I hate to sound cynical, but we've all seen this before. Anyone can inspire and captivate with a flashy video, but these prototypes rarely get brought to market.

The automotive industry is famous for this. Anyone remember the concept-car version of the Chevy Volt? Picture here: [http://photos.webridestv.com/datastore/images/user/2551617c1...](http://photos.webridestv.com/datastore/images/user/2551617c1a6f7854167c46dccc3a4f3a/Chevy_Volt_Concept_3781_20070620.jpg)

The concept car was gorgeous, aggressive, and appealing to a section of the market that traditionally ignores hybrids. Now look at the model that will actually get released: <http://www.chevrolet.com/electriccar/>

It's a glorified Honda Civic.

They don't have a product here, and I doubt we'll ever see any of the ideas introduced in this video (at least not from Microsoft).

If in ten years time, Microsoft can shut me down with a virtual newspaper, a classroom video-wall with built in translations, and an interactive wallet, then more power to them. But if instead, we're forced to endure another decade of watching a company that helped found the industry, spend its time copying Apple and Google, we might finally come to understand the phrase "real artists ship."

</comment><comment><USER5> Great comment from site: "Man, the future's going to be full of fingerprints and smudges"

But seriously, some highlights from the clip:

Interactive wallet (credit cards and business cards all in 1 paper thin device)

Cell phone with video calls

Seamless file transitions and interactions between tablets and future versions of MS Surface

Speech to text that really works

Coffee cups that tell you how hot the beverage you are about to enjoy actually is

And finally, virtual newspapers

<comment><USER6> I'm pretty sure that it's been well-established that most people just aren't that interested in video calling, at least not through telephone devices. The technology for that has been around for years and years and no one really cares -- perhaps presenting the option in a better/more concise/usable way will change things, but it just doesn't seem like it's in very high demand.

<comment><USER5> Isn't part of it on the technology side? More specifically, the cost for bandwidth. Streaming videos back and forth takes up a lot of bandwidth compared to calls and texts. From what I understand the carriers have experimented with it, but the cost doesn't justify it.

Then again, even if it was included in my cell plan, a video call would take too much effort on my end. I'd have to devote my time to the call and interacting with the person I'm calling. How can I do that AND drive at the same time? /sarcasm. Actually, I'm sure some people would find a way...

<comment><USER7> Cell phones with video aren't the future. I've had one for 2 years now. Unfortunately, it isn't that useful. And I think the carriers know it.

It _is_ included on my cell plan (video calls are treated just like regular calls on the bill) and my phone supports it (front and rear cameras). And it's the same for a large percentage of cell phone users where I live (Singapore). But I don't think anybody really uses it.

The simple mechanics of it involve too much effort for too little additional utility over a simpler voice call. Positioning / holding the camera. Staying still. It's not about video calling and driving, it's about video calling and _walking_. Or typing. Or video calling and doing anything else at all.

Other than grandparents who want video of the new baby, and teenagers who want to send each other naughty video, I honestly can't see very much point in it. I suspect, however the technology will continue to get cheaper and more pervasive, so we'll all end up with it anyway, even if we don't use it much.

</comment></comment></comment></comment><comment><USER8> This is a pretty flashy commercial but I don't think we will come close to that in 2019 I mean ten years comes pretty fast and the newest interfaces we've come up with for the average consumer are flat screen monitors on computers.

I know there is the iphone and other such things but most people I know can only afford the basic plans on phones let alone a fancy 200 dollar phone.

But if I was wrong that would be a really interesting world to live in, one wonders how lazy one would get and if it would follow pixar's walle.

<comment><USER9> I think that we have made massive strides in the last ten years. First of all, consumer hardware is obviously much, much more powerful (certainly powerful enough to render everything shown in the video, although perhaps not shaped as elegantly). The Web and the cell networks have provided a lot of this interconnectivity. Wi-Fi has emerged as well; with laptops and cellphones, many of these things can be approximated already. It's just a matter of taking the extra step to make them available and easy for the average person.

</comment></comment><comment><USER10> Arbitrary, blocking, transitional animations get old very quickly.

</comment><comment><USER11> I saw a really good presentation from a group of 5 designers making a digital wallet credit card like what briefly flashes in this video. I would have told them to apply to Y Combinator but they need a hacker.

</comment><comment><USER12> Way too much hand movement is necessary to interact with the interfaces.

</comment><comment><USER13> If they could produce the real thing instead of just concept videos, I might even switch back from Mac... if of course Apple doesn't delivers amazing competing stuff like it has in the past. Both probably won't happen... but who knows...

</comment><comment><USER14> They just better hope Steve stays healthy, otherwise they won't have anyone to copy off of.</comment>


Peter Pronovost's checklists better intensive care (long) - <AUTHOR> http://www.newyorker.com/reporting/2007/12/10/071210fa_fact_gawande?currentPage=all <comment><AUTHOR> For many years I' been struggling to introduce more rigorous use of checklists at work, but everyone always balked at them, saying that it was too trivial, too time-consuming, and too brain-dead. I meticulously cataloged the errors made and the time taken to resolve them and finally presented a report, and this article.

Finally, checklists are starting to become routine, and people wonder why they never used them before. The mindless drudgery of having to remember minor and minute details has been lifted, and they can concentrate on what's different and difficult about each situation.

My uncle is an aerobatics pilot, and he says that the incredibly low rate of incidents in aviation is due to the ubiquitous use of checklists.

What could you use one for?

<comment><USER2> The problem I have with checklists are that I tend to treat then as I treat my shopping list: make it, look at it and forget half of it.

What do you use your checklists for?

<comment><AUTHOR> Can't say in details. Broadly:

* checking specific configuration items,

* performing deployment in a specific order (even when it doesn't matter),

* testing deployment step-wise (so you know certain things work when debugging something that doesn't)

... and so on. We start with a checklist, and we then push as much as we can do automated scripts. At the end of a deployment we have a checklist to ask what can be moved from checklists to scripts. Next time round we do both to check that the script works, then reduce the checklist.

Lather, rinse, repeat.

It's making it "the norm" that's having the biggest effect. People are starting to know that certain things will work, and it releases them from tedious checking.</comment></comment></comment>


Women don't sense pain in the same way men do - <AUTHOR> http://arstechnica.com/science/news/2010/11/when-it-comes-to-pain-women-may-not-feel-the-same-as-men.ars <comment><USER2> Best comment: "Overall, the paper isn't fantastic. There are some additional experiments and better controls that might have made for a more convincing case." It's so nice not to see science journalism gushing about their misunderstanding of the results.

<comment><USER3> Agreed- I had to read that sentence twice.

Tomorrow on cnn.com: "Scientists say women don't feel pain"

</comment></comment><comment><USER4> This is how science reporting should be done. Not only does he intelligently explain the core findings of the research, and he also examines its quality. More of this please.

<comment><USER5> We do it every day ;) <http://arstechnica.com/science/>

</comment></comment><comment><USER6> One of the reasons for which women tolerate pain better than men is that they have to give birth. Even if some women manage to do it without pain killers, it's still not a walk in the park.

<comment><USER7> This was my first thought, as well. But after re-reading the article, it's not clear to me that women have a higher tolerance for pain, just that we require two types of receptors to be active to feel relief from morphine, and that the "complex" of proteins fluctuates with the estrous cycle. I can say that certain painful acts in the context of my multiparous experience have resulted in a flood of pain relief from somewhere within my person shortly after the onset of pain. Things that I was not aware my body could tolerate became tolerable. All very strange.

</comment></comment><comment><USER8> During our hunter/gatherer phase it seems to me that men who could feel pain more easily had an advantage in combat against animals. Knowing you're seriously hurt gives you a strong signal to retreat. Being able to withstand pain in the heat of battling an animal might lead to more recklessness and therefore a shorter lifespan.

<comment><USER9> The trouble with your idea is that you could reverse it and it would make just as much sense. (Being able to get injured and still be able to succeed, etc.)

<comment><USER8> It's not really succeeding if you keep going with a serious injury that leads to death. In those times infections from gashing wounds were much more likely to be fatal than they are today.

</comment></comment></comment><comment><USER10> Slapping your wife is now justified.

<comment><USER11> Domestic abuse isn't a subject to make light of.

<comment><USER10> You're fun at parties. I can tell.

</comment></comment></comment><comment><USER12> I don't get it -- can I beat my wife, or not?</comment>


What we have learnt running a bootstrapped startup - <AUTHOR> http://teamblog.supportbee.com/2011/02/02/what-we-have-learnt-running-a-bootstrapped-startup/

<comment><USER2> I think it's scary when you first realize you have to charge users. (Or to raise your price on them). But, as long as you talk to them, sometimes it can surprise you how receptive they are.

When I was an SAT tutor I started charging $20/hour. I was inexperienced and a bit younger than most of my clients, so I figured I couldn't charge much. After awhile, I decided I wanted a higher wage if I got new clients. But, how much? I decided to ask for $30 from new clients. No one argued, or showed any displeasure. Wow! But, had I not gone high enough?

The next time I decided I wanted more, I made the decision to jump it to $60/hour just to see if anyone would take it. And... everyone did. Without question.

In order to get paid you have to ask. And, it's sometimes shocking how much people will pay you. Don't be afraid to ask for more.

<comment><USER3> FWIW, you don't have to charge users. Ad supported/affiliate marketing is a pretty viable business model and will often fit better than trying to charge end users.

<comment><USER4> Stormpulse has around 5 million uniques per year and the ad model still isn't viable without destroying the user experience.

In other words, you need more traffic than most people can fathom.

<comment><USER3> It's not the amount of traffic, it's the fit between your users and the advertising, how targeted they are, intent, etc etc.

Also it totally depends on the service/product. For stormpulse I don't think advertising supported is probably the right idea unless it's made more mainstream.

For example I'd start a "enter your email to get local weather reports free". Build up a massive email list, then start including promotional adverts at the top/bottom of each mailing. You'd be sending out a large amount of mails, to a large amount of people... I think it could generate a good revenue.

It's not as simple as slapping up some ads and going home. This is the mistake I think most people make.

<comment><USER4> Let's boil it down to eCPM. What is your eCPM going to be? Multiple that by impressions and tell me how you're going to support N employees on that revenue.

<comment><USER3> For what? What website?

One of my websites generates $20 eCPM. Another generates $0.10 eCPM :/

What's your service going to cost? Multiply that by paying users and tell me how you're going to support N employees...

I don't think arguing over this is useful - making money out of advertising isn't rocket science, but it does require learning and experience.

<comment><USER4> It's important for bootstrappers to understand the mass traffic that's needed for advertising to fuel growth.

$20 eCPM means to have just a $200k/yr. business you need 10 million impressions per year. $0.10 eCPM means you need 2 billion.

<comment><USER3> The same could be said for 'paid subscribers'.

If you have a product you're selling for $10/mo you'll need 1,667 subscribers to make $200k/yr not taking into account churn, customer support overhead, etc

The question is whether you think getting millions/billions of impressions is easier than getting thousands of paid subscribers or not.

Also, FWIW, 10m impressions a year is nothing - it's 1 impression every 20 minutes on average. 2b impressions a year is more like 60 impressions a second, but still not ridiculously unattainable.

<comment><USER5> "The same could be said for 'paid subscribers'. If you have a product you're selling for $10/mo you'll need 1,667 subscribers to make $200k/yr not taking into account churn, customer support overhead, etc"

1667 customers isn't that difficult if you have a good product that works well. Free services still have all the same customer support costs (not to mention the order of magnitude amount of traffic you will have to support).

"The question is whether you think getting millions/billions of impressions is easier than getting thousands of paid subscribers or not."

In almost all cases, paid subscribers are easier. Most sites that are ad- supported (unless it's a blog) eventually move to a paid plan (or have both paid and free accounts).

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> Refreshing, honest, well said.

This part caught my eye, though: _"we were honest with them. We let them know that implementing that would mean addition cost for us , but would still do it if they were ready to pay a subscription fee"._

That's a common early feeling, and one that I've had as well. But you need to completely and forever abandon cost-based pricing if you're going to thrive (find your best customers) as a subscription web app. The task of figuring out what your web app is really WORTH to your customers rather than what it costs you to operate is the key to high profitability and happy customers co- existing.

The worth/value of your app is a percentage of the surplus of success it creates for its users, where success is defined by the user.

<comment><USER6> Agree 100%. It's really none of your customers' business how much it costs you to run or do things. If people are complaining to you that you're charging for things that are cheap (ie. "that's only a record in a database" or "google does it for free") then those aren't the customers you want.

Sometimes it's right to charge for something that took you 1 minute to write, and sometimes it's right to give away a feature that took weeks of development. It all comes down to what makes the most sense for your business.

</comment></comment><comment><USER7> Only on the web can 'charge money for a good or service' be considered a clever contrarian insight.

</comment><comment><USER8> "As corny as it may sound, we were particularly impressed with Guy Kawasaki's 'Create value and money will follow' advice when we started up...Had we known then that he was going to create AllTop in future, we would have probably introspected a little more before buying his line of advice."

I don't understand this statement, specifically the reference to AllTop. Can someone offer me some insight?

<comment><USER9> Guy, bless his heart, often preaches voodoo. His quote essentially means that you don't need to worry about where the revenue will come from -- just create something cool and the money will get to you somehow.

They're saying: BS. Start a business. Think about a business model. Charge users.

(AllTop is an RSS aggregator for a variety of interest areas like Museums, Cigars, and BBQ. There is absolutely no revenue model except for publishing advertisements. Guy, being Net-famous, was able to sell it after about a year's work. Your mileage will definitely vary from that.)

<comment><USER8> Thanks. Okay, maybe I just slightly disagree with them. I mostly agree with the "create value, money will come" philosophy. However I would say create value and if the value is very substantial, the money will come. However depending on how substantial the value is, you may have to work to make the money come along.

I am not saying they are wrong, I would just put a little more confidence behind Guy's statement.

<comment><USER6> I feel that almost all "...and money will come" statements are missing some words.

"Create value, CHARGE FOR IT, and money will come" or "Do what you love, AND A LOT OF CRAPPY BUSINESS STUFF, and money will come"

It's very uncommon for revenue to come to you without some work and thought on your part. It's like the lottery. Sure, some people win, but _you_ won't!

<comment><USER9> Yeah -- something along the lines of "create something of value, and then never stop working on ways to make money from it until you hit on something that works well."

Not just "create value and the money will come."

<comment><USER10> Value is the difference between cost and gain. If your users are getting a gain, and their cost is 0, then there's value being created.

The trick is to determine what gain is, and how close you can raise cost before value becomes too low.

</comment></comment></comment></comment></comment></comment><comment><USER11> I think you could write a whole other blog post about the last paragraph. To me, the most interesting part about getting started on a new side project is what I end up learning as a result.

New methods and skills always come out of trying to solve new problems. And hopefully that will lead you to pursue something even harder/more interesting.

Edit: typo.

</comment><comment><USER12> Has anyone been forced to downgrade or reduce feature sets for free users when introducing paid plans? Is the generally accepted approach to grandfather in all existing free users?

<comment><USER13> We have experimented with partitioning features and always grand fathered the existing users. It has generally worked well. For most B2C services at any scale, you have a lot of new users signing up everyday so you don't have to worry about over optimizing on existing users. Its better to just keep them happy

</comment></comment><comment><USER14> I don't think they were reading the right blogs/books. Lots of places to learn about pricing, target demographics, revenue models. Maybe not ones that music guys read?</comment>


Show HN: ProgressBoard – Now never scrap your project just before launching - <AUTHOR> https://www.progressboard.co <comment><USER2> Story of my life - will give it a spin

<comment><AUTHOR> Sure!!</comment></comment>


What I Learned from Six Months of Obsessive Sleep Hacking - <AUTHOR> https://betterhumans.coach.me/what-i-learned-from-six-months-of-obsessive-sleep-hacking-2128b76f042a <comment><USER2> Fascinating! Thank you for posting this. My partner is convinced coffee has no effect on her whatsoever, especially at night.

I'm going to set up a Google sheets integration to try and show her that it might be related to her terrible sleep.

Some kind of automated service that helped track this might be interesting.

</comment><comment><USER3> This was interesting. Anyone here who has the experience and / or qualification to speak about ZMA and the possible side-effects if any (except the dreams as mentioned).

I am intrigued by consumption of ZMA and affect on sleep.

</comment><comment><USER4> Awesome read, thanks for doing this and writing it up!</comment>


Coronavirus: Infection 'could reach 60% of population if unchecked' - <AUTHOR> https://www.theguardian.com/world/2020/feb/11/coronavirus-expert-warns-infection-could-reach-60-of-worlds-population <comment><USER2> That graphic seems wildly out of sync with the tone of the article.

Everyone has been saying it's only two weeks away from doom for the last 6 weeks.

Caution is good but it's hilarious to watch in realtime how petrifiy people are. Practicing good hygiene should happen all the time, not just when the media scares people into it.

<comment><USER3> Yeah, tens of thousands are infected, thousands of them in severe or critical condition, more than a thousand dead, hundreds of millions on lockdown while the virus continues to spread. Hilarious.

More people _should_ be concerned and taking reasonable precautions. And that doesn't just mean "basic hygiene". This virus is spreading because it's highly contagious, has a long incubation time, and can be spread by asymptotic carriers.

<comment><USER2> Should they be as concerned as the flu of which they they are far more likely to die of in the next year? Where does the greater risk lay in your mind?

Would you take bets on the common flu, which has vaccines, killing more this year than Coronavirus? I certainly would. Would mortgage the house on it.

> it's highly contagious

As opposed to SARS, MERS, and again, the flu? Going to need a source on that.

Given how many people die annually of the flu, where are all these comments telling people about basic hygiene, banning international travel and avoiding all human contact where possible? Why don't they come out of the woodwork each and every year to warn us?

I'll present my hypothesis: it's because the news didn't tell them to worry about it.

The average human being is shockingly bad at accurately assessing risk. That's the average.</comment></comment></comment>