hacker news with inline top comments    .. more ..    7 Jul 2012 Ask
home   ask   best   7 years ago   
Ask HN: Which desk do you use? Which desk Y Combinator use?
3 points by magnusgraviti  50 minutes ago   5 comments top 4
pg 30 minutes ago 1 reply      
YC doesn't have desks as such. We have long dinner tables custom designed by our architect Kate Courteau that some amount of work also gets done at (http://www.vinodnarayan.com/wp-content/uploads/2011/05/y-com...), and a few conference tables that are all different.
kellishaver 41 minutes ago 0 replies      
I don't think my exact model is made anymore, but it's extremely similar to this: http://www.amazon.com/White-Frosted-Glass-Steel-Fighter/dp/B...

I've had it for about 5 years now. I like the size of it and it's surprisingly sturdy, but I'm not overly fond of the glass top, because it's so hard to keep clean.

briandear 44 minutes ago 0 replies      
I personally use a desk called 'Bivi' http://myturnstone.com/settings/private-office-2/ As far as YC, perhaps someone else will know.
Codhisattva 42 minutes ago 0 replies      
Just switched to a hacked walking desk made from a board put on a treadmill. I lucked out with the height being about right for typing.
Ask HN: How can get people to stop gushing at me and, instead, promote me?
5 points by Mz  3 hours ago   14 comments top 6
dangrossman 52 minutes ago 1 reply      
If you think your content is amazing and helping to change lives, then turn it into a product. Don't give it away in a blog and hope for some AdSense pennies. Self-publish a book, list it on Amazon, and use your blogs and contacts as marketing channels for the book, not the thing to be marketed.
zalew 30 minutes ago 1 reply      
it would be easier for people to give advice if you linked your actual websites. in case anybody is interested, here are the links http://www.metafilter.com/user/153873 grabbed from your another comment).
EvaPeron 2 hours ago 1 reply      
I feel your pain also as someone who is often called "talented" but seems to not quite be able to work corporate politics enough to land very overdue promotions. Unfortunately the IT field seems like any other field - talent is one thing, but "playing the game" also is needed, something to this day I neither relish nor do particularly well, not seeming to have the stomach for it. If there is one thing I could proffer by way of advise (at the risk of blind leading the blind, ha) - doing websites/IT work for friends / family on a contract basis I do from time to time to try and cover over some financial rough spots - i.e. just charge a flat hourly rate (say, $50/hr) to help with somebody's website/LAN issue/what-have-you. Needless to say the blogosphere, so-called, is saturated, so it is more difficult than ever to "monetize" any site, however good. So just going the route of saying, hey, I'll do your website for you for X amount per hour is at least one way of raking in some dough, speaking from personal experience. As Socrates might tell one, sometimes being smart is not enough to get around political bullcrap, sometimes the smart folks end up with the hemlock. :-) So from personal experience I really feel where you are coming from. So best thing I can say is while it is good to continue to think long-term of how to monetize your sites and so on, for short-term pain, one might want to think of doing individual contract type of projects, to sort of tied one over the hump as it were, something I have done more than once. Good luck.
bdfh42 2 hours ago 1 reply      
There is a saying - "No good turn goes unpunished".

If you genuinely help people and they think that help has given them some leverage in life then most (not quite all) will downplay your contribution. Anything else and they are diminishing their own self esteem.

None of your users will help you moneterise what you have - they want it for free. You have to do it yourself.

Physician - heal thyself.

smartwater 2 hours ago 1 reply      
Being a good designer or coder isn't the same thing as being good at making money. It can be a part of the money making equation, but your code/design won't make money alone.

Monetization of a website is a problem that a lot of businesses struggle with, even Facebook.

I took a look through the websites in your profile. Your peers might be afraid to tell you this, but I'll give it to you straight: they are awful. The color schemes are bizarre, the code doesn't follow any standards, and they don't provide value. At least that's how they appear to me.

zoowar 3 hours ago 1 reply      
Man can not live on trolling alone.
Ask HN: What does your child say or do about hacker stuff?
2 points by wslh  1 hour ago   discuss
Show HN: Ask The Room
4 points by megafaunasoft  3 hours ago   discuss
Tell HN: How 2 devs got 1 million monthly actives with no social/viral tools
97 points by philippb  1 day ago   27 comments top 13
amorphid 1 day ago 0 replies      
I like your philosophy. It turns out giving people something to care about is a pretty good strategy :) Keep up the good work!
yefim323 1 day ago 1 reply      
Your site (http://www.getkeepsafe.com/) should link to download links so that I can download your app straight off the bat.
dmix 1 day ago 2 replies      
Being on the App store / Android market is a social/viral marketing tool.

Getting positive reviews and more downloads creates a viral effect as you get more prominence in the market.

But I'm just being pedantic. Congrats on the growth.

sftueni 1 day ago 1 reply      
Thx for sharing, great numbers. Some questions:
- Via which channel did you communicate with your early users / get feedback?
- Did you collect your user's email addresses from the beginning, upon installing the app - or at a later time?
hu_me 1 day ago 1 reply      
I noticed that the app is free. And the upgrade doesnt unlock any core functionality. Would love to know how well has the monetization strategy worked so far? And if you plan to change it?

congrats on the success.

wilfra 1 day ago 1 reply      
What about marketing? How did you get your users?

I mean I got that you have a great product and keep improving it and people will stay - but you have to get your users from somewhere.

Was it all just people who found the app organically in the app store? No PR or marketing of any kind?

gbog 1 day ago 0 replies      
For completeness:

In Android if you prefix a directory name with a dot, its content will not appear on Galleries and other common apps (some will let you choose to do so in settings). You can also create a .nomedia empty file in a directory to hide it.

natarius 1 day ago 1 reply      
In what timeframe did you get to those numbers?

Can you share a graph...would be interesting to see the growth velocity curve.

tszming 1 day ago 2 replies      
Well, another reason why app name is important: Hide pictures with KeepSafe instead of KeepSafe.

Btw, why the name of the iOS app is "Hide Pictures and Photos with KeepSafe", but the Android version is just "Hide pictures with KeepSafe"?

In my iPhone, when I search "hide photo" I can't find your app, so the keyword "Photos" is therefore useless?

raheemm 1 day ago 1 reply      
How did you find the problem to solve?
bertomartin 1 day ago 0 replies      
Thanks for this. I'm launching an app soon, and these ideas really help, as well as the comments.
thisisgreat 1 day ago 0 replies      
Hey Guys,
great work there. Congratulations! I noticed that your logo does not link to your index page / home. Might not be that important, but I spent at least 2-3 additional clicks while looking through your appealing web pages.
Fando 1 day ago 0 replies      
Amen brother!
Ask HN: Startup funding from Dubai?
4 points by patkai  11 hours ago   1 comment top
macarthy12 11 hours ago 0 replies      
My startup just got unsolicited offer from Dubai. Seemed suspect.
Bootstrapping --length, effort
3 points by anon_pusedo_c  7 hours ago   1 comment top
osivertsson 1 hour ago 0 replies      
First, I'm no startup guru so take my advice with a large pinch of salt.

But having worked at and close to major corporations they are often slow to make decisions, and they often choose something that is not best value for money or best tech.

If you really do have a disruptive solution you might want try to work together with (much) smaller companies. You will have an easier time to iterate your product with them since you are basically talking directly to (hopefully) passionate techies that understand the problems and threats and has some clue about possible solutions.

Grow with these customers. You can make joint case studies about how you succeed together. This is always valueable to show other possible customers.

Best of luck.

Ask HN: Gmail migration?
7 points by edj  1 day ago   11 comments top 4
johngalt 23 hours ago 1 reply      
I've migrated to and from gmail for myself and multiple clients. I'd recommend staying with Gmail until there is a compelling need to change. If you're concerned about the googlebots selling your data then go with a more traditional email host like rackspace or fastmail.

IMHO you only need your own email server for extensive logging of email traffic for regulatory reasons. Or if you have a corporate environment with people who need shared mailboxes/centrally managed email.

edit: IMAP move works fine btw. It can get a little weird with the way it handles multiple labels though.

edit2: Gmail presents labels as folders in IMAP. So multiple labels = same email in multiple folders. There are also Gmail specific IMAP folders like All Mail that are under a Gmail folder. I encourage you to take a look at it using Tbird or another IMAP client. You will have some loss of structure when moving away from tags and into folders so just make sure you know what you're losing and where.

monsto 1 day ago 2 replies      
You said "privacy and security" but for a personal email, there's a much bigger problem... spam.

It's been a couple years since i tried it, but I used <name>.tld for email like you're considering. I never received more than a few emails a day, but it was greatly outnumbered by spam. probably 100:1. gmail and Google Apps mail is the tits with spam. false positives (or negatives) are very rare on the order of 1 every month or 2... probanly 1:1000 emails.

If you use Google Apps for email, it syncs right in with android devices and is subject to the same security (good or bad) of gmail. Even if you're an experienced sysadmin (irrelevant of os) it will take an order of magnitude more time to setup and maintain the infrastructure than if you just use google.

yeah yeah i know, i'm suckin their junk pretty hard... but the beauty of it is that their stuff 'just works'. It's hard to beat.

stock_toaster 23 hours ago 2 replies      
I have also considered moving (for different reasons), and my current short list is fastmail[1] and rackspace-hosted-mail[2].

Been thinking about it for a while though, and haven't yet made any decisions yet. sigh

[1]: https://www.fastmail.fm/

[2]: http://www.rackspace.com/apps/email_hosting/rackspace_email/

foomanbaz 19 hours ago 0 replies      
Some thoughts:

* privacy and security: you don't have any with email. It moves in plaintext across the Internet. It'd be silly to pretend that your own mail server doesn't help some, but you might be better off feeling insecure. You'll keep sensitive data out of your email, and if you have to move very sensitive data across email, encrypt it. If you move unencrypted data across the Internet, assume it's become public information. Personally, I feel that Google is good with privacy and security. I'm happy with it. http://support.google.com/mail/bin/answer.py?hl=en&answe... I use two-factor authentication on my google account, and it alerts me if it's been accessed from unusual IPs/locations. Frankly, Google does a better job of protecting my privacy and security than I would. I wouldn't audit my log files. I believe there's a fair chance my privacy and security would go down by switching off of gmail.

So, I went to namecheap, registered a domain, and it forwards email to my existing email address. If Google locks me out of my account permanently, there's a layer of indirection with my gmail account. I'll point namecheap's mail forwarder at my new email account.

Ask HN: How do I improve my programming/engineering skills
12 points by lurking_lurker  1 day ago   10 comments top 9
duiker101 1 day ago 0 replies      
Hack. Side projects, websites, whatever, hack. Start a website, you don't finish it? never mind you learnt something now start something new using something different. You got it right, you just need to keep pushing. The only thing that really pays is experience and to get experience you must try, break, play. Never mind on what, how, why, just keep doing stuff. IMHO university is useless. I did not need it and most of the good developers i know did not need it. The fact is, it takes time. And there is nothing to do. Experience is time converted in skills. To me you really seem to got it right but as i said you just need to keep it up.

If you lack ideas(totally normal) think of small problems in your daily routine that could be improved/fixed and do it.

Good luck, and don't give up, seriously. When you start getting rewarded for your work this is one of the most emotionally(and maybe even financially) remunerative jobs.

brudgers 21 hours ago 1 reply      
My free advice: Learn Lisp for the reasons PG outlines in Hackers and Painters [http://www.amazon.com/gp/product/0596006624] i.e. Lisp is a higher level language than x.

Peter Seibel's Practical Common Lisp is available online (and as a book) and provides a lot good advice including a link to lispbox, which in the best "learn the hard way" tradition, requires you to finally learn emacs.


PG's own Ansi Common Lisp is more of a traditional textbook as well as a reference to the language. The exercises are thought provoking. It is available through Amazon including used copies.

Because Lisp originated as a way of describing Turing machines, the discussions tend to cover a lot of the theoretical background and deeper insight into how particular features may be used...or at least that's my impression.

Good luck.

jfaucett 10 hours ago 0 replies      
I can only suggest some things that have helped me become better over the years - and maybe they'll work for you :)

1. Scratch the really high level stuff and start digging into some C or x86 assembly ( with GCC and binutils), read the coreutils and glib source and program some of your own system tools ( like find or ls ). This will give you a really solid understanding of memory and hardware internals which you can use to your advantage in other software apps.

2. Start programming games. It doesn't matter if its in javascript for browsers or python but I would say do NOT use any external libs - program yor own solutions and read other libraries source for ideas. Nothing has helped improve my math and algorithm skills ( not to mention AI, physics, and graphics ) like programming html5 js games.

hope this helps and good luck!

plinkplonk 1 day ago 0 replies      
here is a concrete suggestion (vs vague philosphizing).

Since you already know some Python, sign on to Udacity's (free) CS 212 Design of Computer Programs by Peter Norvig. It has 7 weeks worth of classes and teaches you a tonne in that time. It is a class targeted specifically at "I know some basic programming but what do I do to get to the next level?" people.

The official version of the class is over, but nothing stops you from joining today, watching the videos, doing the assignments etc.

Since one of your aims is to 'learn from great coders' this should be right up your alley since Peter is one of the best developers in the world and you can see him developing multiple programs and refining them step by step till they are gems of elegant code, and you can trawl the forums to see questions people asked and answers to them.

Once you work through the class - should take you 7 weeks if you are disciplined -and you understand all the techniques demonstrated there, you'll be in good shape to start/join an open source project in a domain of your interest.

And oh prepare to have your mind blown. Peter Norvig is one seriously good developer.

Good Luck.

manuscreationis 1 day ago 0 replies      
I think you're generally on the right path, just keep trying. Since you're still getting your feet wet, you should pick a language and stick with it for a little while, but don't stick with it as your only language forever. Too many people make the mistake of getting comfortable with one technology, and deeming themselves "done" learning anything else.

Start with Python, or Ruby, or Javascript. Something simple. If you're a fan of Windows, take a look at C# (which you say you've had a semester of already).

Start S M A L L. You say you try to build things that are over your head. Don't do that. Build things that are just about your level, while still providing a challenge. You're not going to come out of the gate with something like Kenneth Reitz' "Requests" framework. You're going to have years of learning and experience ahead of you before you can produce work like that (unless you're a prodigy, which almost none of us are).

Most importantly, do not give up. You are not stupid or incapable of programming if you hit a wall and can't seem to get by it. We all hit these walls, at every level of our craft. The issue is recognizing when you have the ability to climb the wall, to blow a hole through it, walk around it, or just go back the way you came and pick another path.

You could try applying for unpaid (or lightly paid) internships as more of a learning experience. If companies don't think you'll be a drain on resources, I would imagine certain companies would love to have someone who is eager to learn hanging around to take minor tasks and to be mentored for a few hours a week. The key there is finding the right company with that kind of time/support.

Best of luck.

thetabyte 22 hours ago 0 replies      
There are a number of things you can do (which most other posts are covering) but there is one I want to focus on: internships.

If you are in the financial situation to do so (especially if you are still in school) find an (people won't like me saying this) unpaid internship. At 17, in high school, living in the middle of nowhere, I put up my resume (with very little web development skills) on HackerNews saying I would work for free, remotely, about 8 hours a week. I got 10 responses. I took one doing Ruby on Rails with an organization that did pair programming exclusively and I learned more than I did in years of Java classes. With this training, I was able to find a two month paid internship in Ruby on Rails this summer, and hopefully this chain will continue upward into jobs. I cannot explain the value of on-the-job learning and experience, and if an unpaid internship is what it takes to get you there, I really recommend it.

In the meantime:
-Learn git inside and out if you don't know it
-Pursue a web development framework
-If you have programmer friends, get together and code with them. Productive people make you more productive.
-Whatever you do, put yourself out there. The more you are out there, the more opportunities will come your way.

Toshio 1 day ago 0 replies      
> Started one or two Django sites, finished neither since I was in over my head wanting to implement very complex ideas.

I think this is perhaps the first thing you should approach differently.
Begin with simple projects that you know are within your reach, even if they are dead simple (make a tic-tac-toe in Django). Completing those projects will boost your morale so you will stay motivated.
Also I would say that you need to build up your Github account into a professional signature that someone would look at and see where your interests are, whether you have potential as an intern / junior dev who may grow to become a good dev, with some coaching and mentorship.
Also, the world is moving towards agile and you are going to impress a lot of people if your activity on Github shows that you have the ability to build software in an agile way.

eragnew 13 hours ago 0 replies      
imo, keep asking questions. direct, honest questions can be scary, but they can be remarkably effective.

also, start learning python and don't stop until you can actually build something you like. experiment.

yashchandra 1 day ago 0 replies      
Before I write my advice, I want you to hear this. "Do not worry about the fact that you are not finishing your side projects. The idea is to learn and not necessarily get to the end goal i.e a working app". I am usually in same boat as you but many of my unfinished side projects have taught me tremendously. For example, I recently worked on a python program to covert financial trasactions in OFX format to csv. It taught me how to use lists, dictionaries in python, file input/output etc. I never finished it actually to the point where my dream was to release it as open source library and I even have a git page for it but I moved on. Even then, I learnt a heck of a lot.

"Start Small". But what does that mean really ? It means that focus on a specific topic and give yourself a task/side project out of it. For example, "Build a user registration system". Now pick the language/framework etc. You seem to be using Python/Django already so that could work in your case.

Keep hacking even if not finished. "It is about the journey not the destination" (cheap attempt at using a favorite quote).

Opensource contributor Bassel Khartabil detained in Syria. Needs help
176 points by BjornW  4 days ago   23 comments top 7
calbear81 4 days ago 1 reply      
I don't know Bassel but the fact that he's been detained secretly in Syria suggests that the government thinks he's involved somehow with he uprising/democracy movement.

I don't think signature campaigns will do any good since not even pressure from the US and Turkey has slowed down the bloodshed so do we really think they will care about a bunch of virtual signatures collected online?

There's a few more viable options that should be considered:

1) Leverage someone who has influence with the Syrian government to take up the cause. Given Bassel has been an open source contributor, maybe look at which tech companies are still contracted by the Syrian government and try to get them to lend a voice of support. Make sure to play up the positive PR that releasing Bassel will have on improving Syria's image.

2) Stop collecting signatures and start collecting money to work the back channels. Let's be honest here, corruption is rife (high corruption index on Transparency International study) and the situation pretty chaotic, if you really want to free Bassel, consider a pragmatic approach.

sandGorgon 4 days ago 1 reply      
Just a suggestion - why do you not work with Avaaz.org
A lot of people (like me) would be a little worried at sharing name and email addresses to an unknown site(no offence).

In fact, it would have been better if you had linked to https://creativecommons.org/weblog/entry/33119 which vouches for http://freebassel.org/

Creative Commons supports efforts to obtain the release of Bassel Safadi, a valuable contributor to and leader in the technology community. Bassel's expertise and focus across all aspects of his work has been in support of the development of publicly available, free, open source computer software code and technology. He pursues this not only through his valuable volunteer efforts in support of Creative Commons, but in all of his work in the technology field. Through his efforts, the quality and availability of freely available and open technology is improved and technology is advanced.

derrida 4 days ago 0 replies      
I wish him freedom, and I wish his good friends courage in this fight. Best of luck.
rejon 4 days ago 0 replies      
Please sign the letter and help the cause. We have more news to release as well in the coming days!
ommunist 4 days ago 0 replies      
There is war down there in Syria. When all covert ops yankees and poms will go home, the war will stop. And people of Bassel sort will be free again. Right now I only see this campaign as promotion of anti-Assad moods in digital communities. Dirty game. You better campaign for 'Yankee go home from Syria', before starting anything like that. See this one 4 hrs ago - http://www.guardian.co.uk/commentisfree/2012/jul/03/military...
yhud 4 days ago 1 reply      
you are speaking about "legal charge" and about a country like Syria at the same time ... How naive are you?
yhud 4 days ago 3 replies      
unjustly how?
Ask HN: How does the Affordable Care Act affect startups?
11 points by davidkellis  1 day ago   discuss
Ask HN: What are 3 things you would want from a non-technical co-founder?
3 points by armenarmen  17 hours ago   10 comments top 9
Toph 15 hours ago 0 replies      
1. Actually understands the full extent of the business side.

You wouldn't partner with a coder who can't code and is learning on the job so why would a technical founder want to partner with a non-technical "business" cofounder who doesn't know anything, worse, think he does?

This includes actual knowledge on things like knowing how to actually acquire customers and said metrics, not just be able to recite shit you read off HN or some blogs. Actual experience...

2. Without knowing how to code, at least be extremely knowledgeable about technical topics. Steve Jobs probably couldn't code squat but he understands enough. That's all I need too.

3. Extremely fast learner and can break habits quick. This one almost every person I've met failed at. Very few actually have been able to do this and they are gems.

edbyrne 9 hours ago 0 replies      
It's not what you want, it's what you want them to be responsible for, that they can achieve success in:

- Fund Raising and Financing
- Customer Acquisition, Marketing, Content Marketing, PR
- Metrics Metrics Metrics

Basically - the Start; the Operations (customer facing, not dev obviously); the Intelligence (where the overlap is and the co-founders work closely together on sharing their perspectives).

j45 14 hours ago 0 replies      
Being as crazy talented as me at everything that's non-technical.

Ideas are worthless without sales, marketing, money (earned or otherwise), and execution.

eragnew 13 hours ago 0 replies      

A -> Always be learning. Always.

B -> Books. Books are good. O'Reilly is great. Other books can be great too.

C -> Competence -> Comprehension -> Confidence

(ok, i'm cheating. this is four things)

4 -> in my opinion, competence is simply a process where you keep trying new things over time. you keep learning as you go. always.

randall 15 hours ago 0 replies      
1) can at least prototype something in code. 2) Connections / hustle. 3) You should tell me #3.
chamza 11 hours ago 0 replies      
1) Connections in the domain the startup is working in

2) Marketing experience in that same domain

3) Someone who is honest and genuine

russtrpkovski 17 hours ago 0 replies      
1. Customer Acquisition
2. Marketing/Copy Writing
3. Start-up Metrics
andrejewski 17 hours ago 1 reply      
1. Care about the project.
2. Care about the users. Know what the user wants and what is in the best interest of the user.
3. Be able to defend yourself and our product in a battle royal (Accepted).
4. [Because there can be more] Help the technical co-founder anyway you can.
falicon 17 hours ago 0 replies      
1. Connections 2. Money 3. Macgyver-like business skills
Hetzner mail to customers: 1 megawatt more power due to leap second
79 points by Uchikoma  4 days ago   26 comments top 8
imaginator 4 days ago 2 replies      
Better translation of their message to English speaking customers:

During the night of 30.06.2012 to 01.07.2012 our internal
monitoring systems registered an increase in the level of
IT power usage by approximately one megawatt.

The reason for this huge surge is the additional switched
leap second which can lead to permanent CPU load on Linux

According to heise.de, various Linux distributions are
affected by this. Further information can be found at:

In order to reduce CPU load to a normal level again, a
restart of the whole system is necessary in many cases.
First, a soft reboot via the command line should be
attempted. Failing that, you have the option of performing
a hardware reset via the Robot administration interface.
For this, select menu item "Server" and the "Reset" tab
for the respective server in the administration interface.

Please do not hesitate to contact us, should you have any

Kind regards,

Hetzner Online AG
Stuttgarter Str. 1
91710 Gunzenhausen / Germany

ck2 4 days ago 1 reply      
If the leap-second does all this, just imagine the 32-bit rollover issue in 2038
metabrew 4 days ago 3 replies      
Here's the requisite graph http://i.imgur.com/hsUDE.png
StavrosK 4 days ago 0 replies      
No need for Google translate:

During the night of 30.06.2012 to 01.07.2012 our internal
monitoring systems registered an increase in the level of
IT power usage by approximately one megawatt.

The reason for this huge surge is the additional switched
leap second which can lead to permanent CPU load on Linux

According to heise.de, various Linux distributions are
affected by this. Further information can be found at:

Please do not hesitate to contact us, should you have any

imaginator 4 days ago 0 replies      
Nice graph from Hetzner showing the spike:


efutch 4 days ago 1 reply      
Perhaps nitpicking, but this is because of a bug in the leap second implementation, not in the leap second per se.
kodisha 4 days ago 0 replies      
Huh? I received my mail in English :
Ask HN: Where is that blog post that describes each AWS tier?
20 points by cowmixtoo  2 days ago   3 comments top 2
rizz0 2 days ago 0 replies      
I think it was a post about how to make AWS (or the cloud or something) reliable/redundant. Try searching for that.
Show HN: If Google owned Twitter, what would the Android Twitter app look like?
9 points by chris_lacy  20 hours ago   6 comments top 2
monsto 20 hours ago 1 reply      
not much of a Tweeterer, but lookin at the screens I'll say that you've probably hit on something. Gtalk is designed that way because it works.

VolScroll, tho . . . not sure about it. on my Gal S2, the vol buttons are really out of the way. I'll bet that the only time i'd use them with this app would be when i only could use one hand. even then, it's just as easy to hold with hand and thumb scroll...

And when's the only time you'd need 1-handed scrolling? Behind the wheel of the car. Neat idea, to be sure... just not sure if it's practical.

voxx 20 hours ago 1 reply      
this is sexy, but why only ICS? Older phones need some <3 too!

Fantastic job. You should be a Google dude.

Ask HN: What's your SaaS stack recommendation?
6 points by loumf  1 day ago   2 comments top 2
bmelton 1 day ago 0 replies      
Cheap for MVP / Dev = Dotcloud [http://dotcloud.com/]. Costs nothing to use as a dev platform, you just get few resources (which you don't need, since you have no users). Publish it live, enable billing, and scale up or down as needed. Scale down to keep costs low where not needed. SUPER easy to use, especially with Python.

Scale doesn't really affect recommendations either way if you're using Python/Django. You'll still want to use Celery, but scaling everywhere except DB is fairly prescriptive. Not knowing how the data is structured, be sure to look at Mongoengine. I've been using it with Django lately and loving the simplicity.

Ease of use for hosting = Dotcloud again. Super super simple. Promise. Integrates with github to version your app, no cost to get started, and deploys are as simple as 'dotcloud push . <appname>'.

Simple payments integration = Stripe [http://stripe.com]. My last app went from not having billing to doing recurring subscription billing with Stripe in about 20 minutes. It's hard to get easier than that. Similar terms to Paypal, supports major CCs.

For email processing, a lot of people recommend Sendgrid or Mailgun, but I've found that I actually really like Amazon SES for this. There's no free tier, but it's dirt cheap to use, and once you'd get into the paid tiers for the other services, I've found that SES still comes out cheaply.

onitica 1 day ago 0 replies      
You might want to check out Microsoft Azure. I use it and it is powerful and has a good free trial. Only thing that is bad about it is fairly long deployment times (10 to 30 minutes). As a disclaimer I currently use it with C#, but it recently added support for python. Other than that, Heroku is a good choice. Google App Engine may be another possibility, though I haven't used it nor do I know a lot about it.

For e-mail I recommend Sendgrid, you can get 200 e-mails a day free. Also easy to integrate in.

For payments I've used Braintree and I like it. I didn't set up the account but I was given a sandbox account to try it out and it should be possible to get one. Easy to use, especially if all you are doing are transactions (even though subscriptions aren't bad on Braintree either).

A day in the life of a startup founder
609 points by jgrahamc  10 days ago   discuss
edw519 10 days ago 3 replies      
The problem with stuff like this isn't that there are a lot of details, it's just that: they're details, not issues.

There's nothing wrong with details: all the little hacks that work for us that we can share and copy. They're fun and cool and can really help.

But make no mistake about it: details are not issues.

Examples of details:

  - when I wake up
- what I eat
- how I exercise
- my set-up
- my preferences
- my life hacks
- how my team is organized
- how we communicate
- what I read
- where we go
- tips & tricks

Examples of issues:

  - the value I produced for my paying customers

Frankly, I'd rather talk about issues.

leif 10 days ago 2 replies      
8:53 wake up. Hung over. Again. Meeting's in 7 minutes. Start a pot of coffee. Stumble back to the desk.

9:01 answer the Skype call, offer a quick "I'm here" before switching to mute so they won't hear the sounds of coffee brewing, much less the groaning.

9:12 carry around the laptop while starting laundry, then into the bathroom and out again. Nobody suspects a thing.

9:35 coffee's starting to work. A good thing too, have to say my piece. Short and sweet but not too gruff.

9:37 hangover's coming back for round 2. Get back in bed with Skype on low.

10:08 shower time. Really gotta buy drano soon. And toothpaste.

10:35 third cup o' joe. Start working.

thebigshane 10 days ago 0 replies      

  # hours after post:                                 7

# comments in this thread only expressing how they
thought the "double stealth" bit was funny: 10

# American Psycho references: 3

# top level comments providing absolutely no
information or any point at all[1]: 10

# of reddit-style "one-up" threads[2] 5

jgc: Very funny but in the end I'm more disappointed beacuse of the responses here. This could have been a simple blog post and these comments probably better belonged as comments on your site.

[1]: perhaps including this one?

[2]: is there a name for this yet?

eitally 10 days ago 2 replies      
For fun, here's an actual account of my typical workday routine. I'm a married not-quite-exec with two toddlers managing a globally dispersed (9 countries, 14 time zones) IT department focusing mostly on appdev.

0550 Alarm (https://play.google.com/store/apps/details?id=com.mobitobi.a... -- I LOVE this app!!) goes off and I sneak out of the bedroom trying not to wake the 1 year old.

0551 Instant coffee in microwave & bio-needs-management. pull on shorts from previous day and clean t-shirt.

0600 prepare lunches & snacks for wife & kids

[0620-0630 optional time to catch up on email if I was adequately well-prepared in advance for food prep the night before]

0630 wake 1yo & wife. change diaper, dress, feed, and sunscreen 1yo.

0645 wake 3yo, usually with help from 1yo.

0705 wife leaves for work and i leave to drop off the kids at daycare/preschool.

0745-1630 lots of meetings, some real work, possibly some exercise, dinner prep, laundry, and possibly a couple of errands.

1630 pick up kids and proceed with the evening family craziness until putting them to bed around 2030.

2030-2230 fluctuates between doing the real work I couldn't get done during the work day and spending time with my wife. Usually more of the latter than the former, something I am extremely thankful for.

The point isn't the schedule. The point is that finding a work-life balance that accommodates productivity and supports happiness in both areas is a very personal thing, and as jgc's sarcasm shows it's ultimately about what one can accomplish and how one feels while working toward those accomplishments, not the self-congratulatory circle-jerk minutiae so many people focus on.

crazygringo 10 days ago 0 replies      
"15 minutes on One on One Time"... Ha!

But seriously, I think "double stealth mode" deserves to officially enter startup lexicon.

To quote Louis CK's interview from Tuesday... it's WONDERFUL!

shin_lao 10 days ago 0 replies      
This reminds me of the American Psycho's introduction.
Paul_S 10 days ago 3 replies      
Brilliant. Reading the comments I cannot help but think of Poe's law (http://en.wikipedia.org/wiki/Poe%27s_law). Some poeple can't tell this is satire despite or maybe because of how ridiculous and over the top it is.
Kynlyn 10 days ago 0 replies      
Oh this is spot on! There is far too much hipster drivel written about personal habits, lifestyles and fashion choices of founders as if building a successful company is largely determined by what kind of coffee you drink.

Likely because focusing on that is a lot easier than focusing on reality: It's hard work, takes extreme dedication and sacrifice. Much easier to pretend that certain types of yoga exercise are key factors....

mrgreenfur 10 days ago 0 replies      
Thanks for this valuable insights! It's great to know that it's possible to run a wildly successful business and still have time for 15-minutes of one-on-one with your wife. You seem to love your family very much. I myself am trying to be a wildly successfully founder and it's very helpful to know how early you wake up and all your little secrets (I have a Trek Madone 4 too!). These are hte kind of innovations that will lift my startup into the VC cloud too!
simonbarker87 10 days ago  replies      
Loving double stealth mode - is triple stealth when your VCs don't even know what your doing I wonder?
Ask HN: Review my startup, camonduty.com
7 points by camonduty  1 day ago   5 comments top 4
VuongN 1 day ago 1 reply      
The site looks good and I love the demo. I think it's gutsy that you guys have the demo cam showing yourself. It's definitely a refreshing idea.

I do notice a few small problems:

1) when you go to demo page and actually view the demo cam streaming the user information menu up top (Login/Register etc.) looks fine. But going from demo page to the home page once more somehow shows the menu as "logged in"--the menu says Logout, even though you shouldn't be logged in to see demo. In any case, it must be something to do with session or the simple loggedin/out logic.

2) In the demo page, dialog box on deleting cam or adding cam will actually be covered by flash. This is a pretty common issue and I believe the solution is to set the flash w-mode: opacity or something of that sort. It has been a while since I worked with drop down menu and flash :)

A suggestion: instead of control buttons of up/down/left/right-- you can definitely add immediate improvements to the experience in 2 levels:
1) bound the keyboard shortcut which should be quite simple. Just trigger the click even on the appropriate button. Don't forget to have a small delay so you don't crash the darn device

2) enable dragging of the video: I'm "thinking"... when the video is loaded, cover the video with a low opacity div (1px gif of 0 opacity?) then bound a mouse listener to the box. Again, you can move the cam according to the mouse movement by checking mousemove and then on delay trigger the click even on your already bound control button. In fact, the easiest would probably have 9 div arranged in this manner:




if mouseenter 5 do nothing... if mouse enters 1 trigger left+up button click, 9-down+right, 8-down and so on.

I hope this makes sense. I'm simply looking at the demo and assume the real experience is probably the same and could be improved.

Other than that, things look great. Best of luck to the team!


daveasaurus 10 hours ago 0 replies      
I liked the demo, but why do I need to purchase the specific webcam? Is there any plan to create a service that works with regular built-in (Macbook) webcams?
youngdev 1 day ago 0 replies      
Looks like you are only supporting 1 web-cam? I recently purchased a IP PTZ cam from fry's which came with its free Android, iPad and web based application.

How are you planning on competing with those?

yashchandra 1 day ago 0 replies      
Ask HN: I am forced to write awful code What do I do?
11 points by RutZap  1 day ago   12 comments top 10
MattBearman 1 day ago 0 replies      
I was in a remarkably similar situation, PHP dev who worked for a large UK agency. I held it out for a year, slowly refactoring the code, but the biggest problem was it was a home made CMS they used, which was badly fragmented across 50 ish sites. So when I improved the code on one site, I couldn't just drop that code into all the other sites...

Long story short, I quit and went freelance, best decision I ever made :)

My advice to you would be that (unfortunately) it will never be considered cost effective in management's eyes to rebuild the existing sites in a decent CMS / Framework. But you should at least be able to get them to use modern dev standards on any new builds, or complete rebuild of existing sites.

dave007 5 hours ago 0 replies      
Make the argument that a rewrite in MVC would be an investment in a more extendable and flexible system, i.e. a plugin system could be created to allow the same CMS to provide more bespoke features such as a readily available blog or shop while being much more maintainable. A solid base to build on while saving money in the long run, this is something they could jump on board with.


Make the security argument, a procedural system the size of CMS and site running on it ->could<- be riddled with security issues especially as developers are acknowledging that any addition is a bodged job due to global variable etc etc. If they are dealing with larger clients this should concern them enough.

Also if you're lucky enough to be deploying to PHP 5.3 using closures (http://php.net/manual/en/functions.anonymous.php) can save a lot of hassle when dealing with procedural code.

osivertsson 1 day ago 0 replies      
I've been in a similar situation.

I found another developer with the same feelings about our (lack of) code quality as me and we put our desks opposite each other. This allowed us to exchange ideas and implement them in a positive environment. This worked well, and we quickly improved our deployment and testing practices.

But refactoring the code was harder. Developers that had been there 10 years knew that starting to pull at X would break Y, so they were afraid of change. Of course they had experience to avoid most problems, and this knowledge was what made them valuable to the company. At any other company they would have been sub-par developers.

Our improvement progress slowed down. We got tired of having to work really hard to get to the most basic industry standard, which were still far from stuff we could be really proud of.

In the end we both quit, and it was the right decision.

If you feel you have the support from other developers to make a change to your situation, then stay and do it with energy. But otherwise just move on, there is no point in wasting your time when there are so many better places.

crpatino 1 day ago 1 reply      
Others have offered good advise so far, so let me try to not sound too redundant.

The first and foremost thing you must understand is that each code base has a personality of its own. Code bases, like people, change over time but they rarely deviate from their core character. And the more money that code is making for someone, the more resistant it grows to change.

So, the thing is, don't put so much of your identity on it. It is not personal and it is not about you. In due time you will have chances to try your hand and build something from scratch, but until that day comes you need to work with other people's code in order to learn what approaches are feasible and where the pitfalls are.

In this particular case, only you can decide if the current code base is so much of a mess for you to bother. But you owe to yourself to give it another try, this time from the perspective that you want to make it not perfect, but as good as it can be. Once you have given an honest try to assess the potential of this system, and can explain in detail why that is negligible or non existent, you may look for the next job with a clean conscience.

brd 1 day ago 0 replies      
This situation sounds painfully familiar. Ultimately it comes down to whether or not you can find someone with enough influence that will support you.

A few tips:

1) Build demos and/or sneak in good code when you can. There will always be a subset of people that can appreciate good code once they see it working, increase your chances of finding those people and converting them to the cause.

2) Do not overwhelm them (them being veteran developers and management). You will scare them if you talk about starting from scatch or major overhauls. This is a battle of incremental changes, technically and culturally.

3) Don't burn yourself out. Its a daunting and draining task implementing the kinds of changes you're talking about in an organzation that doesn't want or appreciate it. If you can't find the right support, its ok to give up. If you do give up keep in mind that YOU didn't fail, you're just not in the right position or in the right organization to make it happen.

verganileonardo 1 day ago 0 replies      
What does this company want? Money.
Why they hired you? To help them make money.

If you can align your interests (write better code) with their interests (make more money), you may have a chance to rewrite the code. :)

Prove them that refactoring the code can help you create more sites faster. With more sites in less time, they will make more money.

antidoh 1 day ago 0 replies      
Write code, get paid, learn, teach the willing, move on when it's right.

Learn? Of course. There's a huge difference in asking people here what to do in your situation, compared to living your situation with open eyes and mind. You'll be much better able to avoid creating situations like you're in now, after having lived it. Hint: it wasn't caused by poor coding practices.

RutZap 1 day ago 0 replies      
Just an update:

It seems that in 3 weeks or something like that we will be moving in new offices.... And there is a promise for improvement... probably this is the best time to kill off the old home-made CMS and replace it with a framework! ...

PS: Thank you all for your responses... it's a good feeling that I am not the only one that was in this situation.

countessa 1 day ago 1 reply      
tldr; It sounds to me like you are in the wrong job. You are obviously keen to write good quality code in a modern-ish framework/paradigm.


You have to realise that the company you are working for now might be suffering from industrial inertia - also, unless you are privvy to their financials, you probably have no idea of any pressure they are under to make ends meet. In general, selling something that you've already sunk costs into is more cost-effective than writing something new and then selling it, so if their primary objective at the moment is to make money and they have a system that is working, they will probably keep pushing it. It is rare, though not unheard of, for a company to be so developer focussed that they will undertake a wholesale refactor of their code base if it is currently bringing home the bacon. Also in something very old and convoluted (as you've said pull on one part and another part will collapse), refactoring is often less time-efficient than simply writing it from scratch. Ask yourself "if I manage to refactor this into a best-of-breed code, will I be enjoy putting the time and effort into it on a daily basis? or will it just be an albatross around my neck every morning until it is done?"

Consider your goals - you could consider staying at the company and learning about the business end (i.e. actually selling the software), maybe make some valuable contacts - that's a good goal but it might not be the right goal for you. If you currently just want to write beautiful code, then find somewhere else to work - perhaps a more greenfield development without legacy code.

edit to add a potentially relevant link on stackexchange that i've just come across:

johnny22 1 day ago 0 replies      
refactor, refactor, refactor. one bit at a time.
Ask HN: What problems need to be solved for mobile?
5 points by syberslidder  1 day ago   3 comments top 2
jnorthrop 1 day ago 1 reply      
Privacy. The combination of a distracted user and a small screen make communicating privacy choices really difficult on mobile platforms (phones and tablets). In addition with the ability for apps to do things like potentially log communications (voice and text) and geographic location developers need to careful about the collection and protection of the personal information they are collecting.

Privacy laws are pretty lax in the US but in Europe, Canada and much of Asia the story is different.

A service that can handle "privacy" would be very valuable and would probable get support from regulatory agencies around the world.

philippb 1 day ago 0 replies      
Take every service that is on the web and give it a try on mobile. Close to all of them don't work for mobile.

Most products are build for the web and then ported to mobile. I believe to be successful on mobile you have to think mobile first.
Example: Web forms and surveys. There are services like Wufoo that build a great web product, but on mobile it sucks. We have a mobile app and close to all our users use this as their only computer. There is no service for great forms that we just can use.

This is the case for many other products.

These are my thought beside the typical mobile apps. Think of existing services, but think mobile first!

Ask HN: Would this easy 'blogging' network be of interest to you?
4 points by willdamas  1 day ago   11 comments top 6
kjhughes 1 day ago 0 replies      
At one end, people have their own blogs. (And Blogger, WordPress.com, and Tumblr are simple enough that large numbers of non-technical folk use them regularly.) At the other end, many people are happy to lurk without writing anything.

In the middle, people post comments on others' blogs or on meta sites such as HN.

I can't be sure, but from what you've said so far, I'm not seeing much unaddressed pain in the space.

michaelpinto 1 day ago 2 replies      
Suggestion: Don't look for suggestions here with an essay, instead you should prototype your idea and then get feedback. The problem with your essay is that it's abstract and too easy to say something like "what about Tumblr" so in this case the devil is in the details...
swGooF 1 day ago 0 replies      
I would be interested if the posts where categorized. For example, I have an idea for one post on video games. I write the post, and send it off, and it gets posted to the video games section of the site. Then people interested in video games could find it. Maybe the next day, I have a good idea for a food blog post.
YuriNiyazov 1 day ago 0 replies      
Posterous did this, but tumblr won the mindshare, and posterous was acquihired by Twitter.
willdamas 1 day ago 0 replies      
kaolinite 1 day ago 1 reply      
I'm pretty sure that's what Tumblr was made for.
Ask HN: What's a good "developer's guide to startup equity" book?
4 points by rpwilcox  1 day ago   2 comments top 2
plebu 1 day ago 0 replies      
tumba 1 day ago 0 replies      
Most of those questions can be answered by reading articles online and running some scenarios in a spreadsheet. if you want to get deeper into the financial side, I recommend the book Handbook of Financing Growth: Strategies, Capital Structure, and M&A Transactions. [1] It assumes some background in corporate finance, but it is a good primer on growth financing with a lot of good case studies from which you can develop some spreadsheet models.

[1] http://www.amazon.com/The-Handbook-Financing-Growth-Transact...

Ask HN: Best setups to avoid availability outages on AWS
125 points by richardv  7 days ago   discuss
rkalla 7 days ago 3 replies      
Mindless rambling ahead; I love this topic


AWS is an amazing tool and you have a few options here, but the downside is the more options you use to be highly-available (HA), the more expensive AWS gets (as you would imagine).

Your first option is to be HA across a SINGLE region; to do this you make use of the elastic load balancers (ELB) + auto-scaling. You setup auto-scale rules to launch more instances in different availability zones (AZ) either in response to demand or in response to failures (e.g. "always keep at least 3 instances running").

You compliment that with an ELB to load-balance incoming requests automatically across those instances in the different AZs. This is all fairly straight forward through the web console (except auto-scaling is still done via CLI for some reason)

If you want to be HA ACROSS regions you can't just use ELBs anymore, you have some added complexity and an additional AWS feature you will likely want to use: Route 53.

Route 53 is Amazon's DNS service which offers a lot of slick DNS-features like removing dead points from DNS rotation, latency-based routings, etc. There are also something like 29 deployments of Route53 (and CloudFront) around the globe so you'll hopefully never have Route53 become a point of failure for you even disaster strikes.

In this scenario you would setup the HA configuration for a single-region as mentioned above, but you would do it in multiple regions. Put another way, 2+ servers in multiple AZs in each AWS region. Then a Route53 DNS configuration setup to point to each ELB in each region representing those individual pockets of servers.

Ontop of that you would use Route53 to manage all routing of client requests into your entire domain; you can leverage the new "latency-based routing" (effectively why everyone was asking for GeoDNS for years, but even better) and monitor capability to ensure you aren't routing anyone to a dead region.



Here is what I would recommend given the size of your budget and need to stay up in the AWS cloud, in-order of expense:

1. Launch a single instance in a region with acceptable latency that has never had an outage before (e.g. Oregon has never completely gone down but Virginia has -- yes yes I know VA is older, but you understand my point). This solution will be cheaper than multiple instances in any region.

2. Launch multiple instances using the web console, in multiple AZs in US-EAST (cheapest option for multi-instances) and front them with an ELB. You skip any auto-scaling complexity here but you need to keep an eye on your servers. I think ELB fixed the issue where it would effectively route traffic into the void if all the instances in an AZ went down.

OPTIONAL: If you didn't mind spending a few $ more, you could do this strategy in the region that has never gone down for added piece of mind.

3. Launch single instances in multiple REGIONS and front them with Route53. This isn't really a recommended setup as entire regions will disappear if you lose a single instance, BUT I said I would list possibilities in order of price, so there you go. You could mitigate this by setting up auto-scaling policies to replace any dead instances quickly in the off chance you wanted to do exactly this but not babysit the web console all day.

4. Launch multiple instances in each region, across multiple AZs fronted by ELBs and then the entire collection fronted by Route53.

NOTE: The real cost comes from the additional instances and not from Route53 or the ELB; so if you can use smaller instances to help keep costs down (or reserved instances also) that might allow you to provide a larger HA setup.

What about my data?


Yes, yes... this is an issue that someone already touched on (data locality below).

You will have to decide on a single region to hold your data; in this case I would recommend using DB services that aren't based on EC2 and have never experienced outages (or rarely) -- this includes S3, SimpleDB and/or DynamoDB. AWS's MySQL offering (RDS) are just custom EC2 instances with MySQL running on them, so any time EC2 goes down, RDS goes down.

The other DB offerings are all custom and except for SimpleDB a long time ago, have never experienced outages that I am aware of.

Making this choice is all about latency and which DB store you are comfortable with (obviously don't choose SimpleDB if everything you do requires MySQL -- then use RDS); you'll want your data as close to your web tier as possible, so if you are spread across all regions you'll just want to pick a region with the smallest latency to MOST of your customers (typically West coast if you have a lot of Asia/Aus customers and East coast if you have a lot of European customers).

Want to Go to 11?


If you have the money and desperately want to go to 11 with this regional-scale (which I love to do, so I am sharing this) you can combine services like DynamoDB and SQS to effectively create a globally distributed NoSQL datastore with behavior along the lines of:

1. Write operation comes into a region, immediately write it to the local DynamoDB instance, asynchronously queue the write command in SQS and return to the caller.

2. In 1+ additional EC2 instances running daemons, pull messages from SQS in chunk sizes that make sense and re-play them out to the other regions DynamoDB stores; erase the messages when processed or if the processing fails the next dameon to spin up will replay it.

3. On reads, just hit the local DynamoDB in any region and reply; we trust our reconciliation threads to do the work to keep us all in sync eventually.

NOTE: If you prefer to do read-repairs here you can, but it will increase complexity and inter-region communication which all costs money.

The challenges with this approach is that you pull up a lot of DB concerns into your code like conflict resolution, resync'ing entire regions after failure, bringing new regions online and ensuring they are synchronized, diffs, etc.

There is a reason AWS doesn't offer a globally-distributed data store: it is a really hard problem to get right once you make it past the 80% use case.

Your data will determine if this is an option or not; some data allows for certain amounts of inconsistency in which case this strategy is awesome and works great; while other data (e.g. banking data) cannot allow a single wiggle of inconsistency in which case pulling all this DB logic up into the application is a bad idea. Your failure scenarios become catastrophic (e.g. your conflict-resolution logic is wrong and wipes out the balance from an account; or keeps re-filling the balance on an empty account... something bad basically)

It is all a trade-off though; if you managed your own Cassandra cluster though, Cassandra does all this and much more for you automatically; but then you just put your time into Cassandra administration instead of developing the logic around DynamoDB (or SimpleDB, or MySQL, or whatever); just pick which devil you feel more comfortable with.

I am not aware of a services company yet that offers cross-region AWS datastore deployments yet; Datastax and Iris Couch will setup things for that like you via a consulting/custom arrangement, but there isn't a dashboard for launching something like that automatically.

Hope that helped (and didn't bring you to tears of boredom)

PaulHoule 7 days ago 2 replies      
I hate to sound like a simpleton, but for a small operation you're best off putting all your eggs in one basket.

I'm in one of the us-east zones and I haven't had a failure in at least a year. They retired one machine I was using and dealing with that was as simple as starting and stopping -- at a time I chose.

With five zones in U.S. East, the probability of a zone failure affecting a single zone systems is 1 in 5.

If you're a busybody who spreads your system across five zones, the probability of a failure affecting you becomes 1.

You're spending more money, and dealing with a lot more complexity, all to increase the probability that hardware failures will affect you.

Now, you're hoping that a zone-distributed system will be able to recover from failures, but that's tricky to do and it's quite unlikely that this will work if you haven't tested it. Add the fact that all the other "cool kids" will be trying to recover their systems at this time and make AMZN's control plane go down.

In the meantime, with probability 4/5 I'm sleeping through the disaster and the first time I hear about it is on hacker news.

sehugg 7 days ago 1 reply      
My thought: Have a very nice screen for your mobile app/website that says "We are down for maintenance, please stand by."

Sorry to be fatalist, but it's a hard problem. This last outage was more than just an AZ failure. Region-wide API usage was affected, so operations like static IP reassignment and ELB changes were not taking effect. This means you are hanging out in the wind should there be something unusual that requires manual intervention (as was the case with us).

Route 53 is a good service but I don't know how its control plane works, and it could be that problems in a single region would disable the ability to update DNS records (I would guess that DNS reads are a lot more available than writes). And in any case DNS is not a very good failover mechanism due to upstream caching.

Unless your business model requires higher reliability than Instagram, Netflix, and Pinterest, I'd suggest going multi-AZ, crossing your fingers, and doing everything else right.

justincormack 7 days ago 0 replies      
Decide which part of the CAP Theorem http://en.wikipedia.org/wiki/CAP_theorem you want to give up on. Presumably you decided that Availability was not it, so you need to program around lack of consistency and/or partition tolerance. Essentially that means there is no "master database", and you will need to reconcile differing views. This can get quite application specific, and you need to understand your data well.
aeden 7 days ago 2 replies      
Sending traffic to different zones isn't the challenge, the challenge is deciding where your master data will live. In fact, this has always been one of the biggest challenges of building a fault-tolerant systems. If your master data store lives in one zone then you've got latency issues, but if it lives in multiple zones then you need to find a logical way to shard. You could also replicate across zones and then turn off writes if the zone with the master fails. You could even change masters in that case, but there's risk of data loss there.

Anyhow, sorry I don't have a simple answer - I'm not sure a simple answer exists.

explodingbarrel 7 days ago 1 reply      
We run a few decent sized social games and we have survived all the major AWS region outages in the past year. He's what we do and what I would suggest.

1. Use Rightscale. You can get away with the free edition, but for $500/month the basic paid edition will allow you access to arrays and all the excellent scripts available on the marketplace.

2. The front end. I would strongly suggest moving away from ELB. We are using it and are about to get rid of it. The main problem is what exactly happened last night. If a whole AZ goes down, the ELB for that zone can get screwed and the DNS was not updating the CNAME to remove the bad zone. Instead of ELB, we have our own LB solution we are going to roll out that will use Rightscale server arrays and will handle the updating of the DNS names itself. We also aren't going to use Route53, because we learned last night that the API for that can go down and you can get stuck with bad DNS records.

3. Application servers. Use at least 3 AZ and have them evenly spaced. This is easy to do in Rightscale with sever arrays. Make sure your voting ration for scaling isn't 50% because you might not scale correctly if you loose 2 AZ. Keep the vote to 30% and you will be happy (if one zone votes to grow, let it grow).

4. Database. This is the fun one. We have been using MongoDB with pretty good success. Our multi-shard DB has 3 servers per replica set and has them distributed equally between AZs. We use 4 EBS drive RAID-0 drives for storage which have had problems in the past due to the outages that EBS sometimes has. Our best bet has been a watcher process that will kill the mongod process if there's any problems writing to the drive array. By doing this, the replica set will automatically failover to the next server and we won't get stuck with a primary node that can't write back to disk. For backups, we just freeze the writes on the secondaries and do EBS snapshots even 15 minutes. Rightscale has some great EBS tools for managing this for you. If you loose a server, we can deploy a new server in a matter of minutes and it will rebuild the RAID array from the last backup so we have a warm spare.

5. Monitor, monitor, monitor. Rightscale has some great tools for monitoring everything. Use them, and use more monitoring on other infrastructure (ie Pingdom)

Doing something like this will cost a lot more that just sticking to a single AZ, but you should be able to survive one, if not two complete datacenter outages.

alanbyrne 7 days ago 0 replies      
I am on PHPFog for my front-end and with an AWS RDS back-end. I managed to survive this incident without an outage (I am on U.S East as well), although I did get some horrendous response times from RDS for about an hour there.

PHPFog are on AWS and I pay them to make sure they have the redundancy worked out. If they don't, I would yell at them until I got some money back.

I am considering configuring RDS for Multi A-Z, but need to research it a little more first. From what I can tell you just click a button to turn it on, but there were a lot of people complaining yesterday that the fail-over didn't work at all when it was supposed to.

I also have a bunch of EC2 VMs that do back-end processing and have a load of CRON jobs on them that need to run once every 24 hours. If these go down for a couple of hours then there is no noticeable impact to my customers, they can still log into my service and access their historical data.

I have considered spreading across multiple regions etc but at the end of the day it's just too expensive for the small increase in reliability.

rvagg 7 days ago 0 replies      
FWIW I initially went into ELB assuming it would solve a lot of my redundancy problems. And while it has helped a lot (I spread my frontend across 3 zones), I've suffered through a number of ELB failures or disruptions, including this latest one, which is one of the worst. Even with fully functioning servers that I can connect to individually, ELB was intermittently rejecting connections and failed to reregister instances.
There's no silver bullet! Just prepare for failure and attempt to handle it gracefully, learning from each one. I suppose you should also think hard before you launch into a greater AWS budget to increase availability. Most of us are tempted to do that after each major incident--which is why Amazon can walk away from these events in a better position than before (until they have a genuine competitor that is).
mark_l_watson 7 days ago 0 replies      
I haven't tried this (I use single EC2 deployments, some Heroku, also have a Hetzner server) but it is something that I have been thinking of: have the web services that back up your web app on a single server, and yes that will fail on hopefully rare occasions. Host the Javascript+HTML5+CSS front end on S3 with Cloudfront CDN. The home page of your app will almost never go offline and you control what to report to your users if your backend services are offline. Sure you lose core functionality, but you still have static content and a friendly message about temporary lack of services.

Going beyond that at a cost of slow response times when trying to access a downed backend, you could deploy back end web services to two different hosting providers, perhaps running something like CouchDB replicated on each provider. The Javascript on your UI could switch to an alternative back end after a timeout. For "one page" style apps, you could maintain the state information that a backend host is down in the browser.

rdl 7 days ago 1 reply      
Start here: http://aws.amazon.com/architecture/

I don't think they show how to do ELB across Regions, or diversity against single-ELB problems (although I haven't seen ELB fail yet). You'd probably have to build this yourself.

elijahchancey 7 days ago 0 replies      
Assuming we want to minimize latency and maximize reliability, we want to create a stack that:

1) Has AutoScaling Groups & Elastic Load Balancers in two regions (and only two availability zones; let's keep front-end instances in the same AZ as your local/region-specific DB)

2) Has Databases in two regions and uses Master Master replication

3) Instances talk to their local DB. If they detect their local DB is down, they failover to the remote DB (ie, the far region). If they failover, they notify you.

4) DNS does geographic load balancing (pre-ELB). You'll need to use a provider like DynDNS or UltraDNS to give you Geo Load Balancing & Failover. Or, you could pair a monitoring service like CatchPoint with Route53

5) Application caching (Memcache, Redis, etc). Let's not put more load on the DB's than necessary.

That's a good start, at least.

trebor 7 days ago 0 replies      
From what I've heard, you're on the right track. However, I'd want it to not round-robin but go to the nearest working node. I don't use AWS, so I don't know how to configure the ELB, but I would assume that this is possible.
cardmagic 6 days ago 0 replies      
Try a multi-infrastructure PaaS like http://appfog.com/
neilwillgettoit 7 days ago 0 replies      
I'm shocked no one has mentioned http://www.cedexis.com/ yet.
bfisher9 7 days ago 0 replies      
Super low TTL and Refresh combined with replication to a DR provider. High Availability placed exclusively on a single provider - even Amazon (albeit different AZ's) is of zero value if all of Amazon itself is offline...
How to bootstrap in The Valley/San Francisco for 3 months
8 points by watson  1 day ago   17 comments top 4
negrit 1 day ago 3 replies      
I was in a similar situation.

- For the sim cards. Any monthly prepaid plan like the $50 T-mobile 4G with unlimited data, text &talk is fine.

- For internet try check verizon, att, t-mobile or timewarner. I currently have time warner. It's a bit expensive. FIOS with 20mb/s for $45 a month.

- For the event checkout http://www.eventbrite.com & http://www.meetup.com and search for the events.

- Fro the transportation, get a cliper card. You can take the bart and the bus with it. Unfortunately a car is a must have for the bay area if you are planning to driving around palo alto, ...

And, it's a good idea, we should setup an hacker news meetup !

icodestuff 1 day ago 1 reply      
As far as places to stay and network, take a look at Chez JJ (http://chezjj.com/), a "home for itinerant hackers". I haven't stayed there to do a startup, but I've been there several times and I know the folks running the houses; they're good people, and everyone who stays there seems to enjoy it.
10dpd 1 day ago 1 reply      
I'd be interested to know what kind of visa you have to enable you to work over here in the US?
petern 1 day ago 1 reply      
you might wanna link up with other startuppers at http://www.hackersandfounders.com/
Ask HN: How much equity to give to developer (pseudo-founding)?
7 points by fsethi  1 day ago   4 comments top 3
SkyMarshal 1 day ago 0 replies      
The prevailing sentiment here seems to be that in a case like yours, where the developer is clearly part of the founding tripod (business, UI/UX, backend), be prepared to treat him like a co-founder if that's what he wants. Which it sounds like he does. If you trust him enough, make him the third co-founder and split the equity evenly.
kenn 1 day ago 1 reply      
Validate if he/she's a good fit for your team first. Usually it takes time. Equity has a permanent effect and you don't want to make a decision in haste.
fsethi 1 day ago 0 replies      
Sounds good. Happy to share in equity. Will confirm if he wants to be a founder and go from there. Cheers!
Short notice, temporary announcement: Royal institution, today, 14:00
3 points by ColinWright  1 day ago   2 comments top 2
ColinWright 1 day ago 0 replies      
This is the same talk I gave in New York last December, Finland last year, Portugal the year before, and around the UK some 80 times a year, every year since around 1995.

    Juggling: Theory and Practice.

ColinWright 22 hours ago 0 replies      
Bother, 'net access lost when trying to delete.

Apologies ...

Ask HN: Anyone use Rackspace Managed Cloud Servers?
5 points by dustyreagan  1 day ago   1 comment top
true_religion 9 hours ago 0 replies      
Yes. In my unscientific experience their I/O is faster than Amazon, but I migrated away from cloud servers completely because it didn't fit my needs.
Ask HN: I could really use some help and/or advice
21 points by scott_r  3 days ago   6 comments top 3
Mz 2 days ago 0 replies      
I have a different medical condition which leaves me visually impaired, among other things, and I no longer drive. I answered a similar question back in June elsewhere:


I did freelance work online earlier this year of the sort you describe. It was inadequate to my needs and felt like a trap. I am currently getting public assistance and working on developing my websites as my only hope of a long term, real solution.

Feel free to email me.

antidoh 3 days ago 1 reply      
I have no short term advice, sorry.

An observation: given your description of recent history, it might be best for you if you ran your own business. In other words, create your own job. Maybe that's freelancing, maybe running a service, or maybe something not even internet or tech related.

Maybe iOS apps will get you that, if you're lucky or really good, but I think most people don't make much on apps. If you do, great, not trying to discourage you.

tonyjwang 3 days ago 2 replies      
Could you provide more info? I have no idea whether you're legit or a Nigerian scammer.
       cached 7 July 2012 20:05:01 GMT