Amazon's homepage was down - <AUTHOR> http://www.amazon.com/?down=yes <comment><USER3> Unfortunately changing the URL from <http://www.amazon.com/?down=yes> to <http://www.amazon.com/?down=no> does not appear to fix the problem.

<comment><USER4> This seems to be working for me: <http://www.amazon.com/?is_it_jeff=yes>

<comment><AUTHOR> Looks like it's back up

<comment><USER5> it is up.

<comment><USER6> Not for me (America).

<comment><USER7> Up for me (Kentucky)

</comment></comment></comment></comment></comment></comment><comment><USER8> During my time as an engineer working on Amazon.com, we occasionally experienced outages of various lengths. One of the surprising details about these outages is that they really didn't result in any revenue loss. That is, it appeared that customers would simply wait until the website was available again to make their purchase. I would be surprised if that effect doesn't still happen today especially with the availability of Amazon on a variety of platforms (i.e. customers are comfortable ordering from their phones when they couldn't get to the website from their desktop computers).

<comment><USER9> This is really insightful and sort of flies in the face of the research about Google's page latencies affecting search volume (even subconsciously).

Thanks for sharing a non-obvious data point.

<comment><USER10> It was actually someone from Amazon themselves, reporting on a/b testing they did, that gave us the numbers of 100ms of latency cost them 1% in sales. People might wait for Amazon to come back, but if it's slow to navigate back and forth to compare brands, or slow to return search results, or slow to just render the page, you can easily imagine losing some percentage of people or just some percentage of what you could have sold to them.

<http://news.ycombinator.com/item?id=273900>

</comment></comment></comment><comment><USER11> "by nbashaw 28 minutes ago"

I thought for sure I'd have missed it and this would be one of those reports where the service was back up before the story gained traction, but as of 12:07 PM Pacific/US time I cannot navigate to Amazon's home page..

The amazing thing about this for me is that it reminds me that it was only a few years ago that even the biggest sites would have fairly frequent multi- hour outages, but these days it is pretty rare for this sort of thing to happen, particularly on a retail or otherwise direct-money generating site.

<comment><USER12> On the plus side, if they're willing to share, I bet this will be a very interesting postmortem. Presumably Amazon.com is one of the more bulletproof web properties in the world. Whatever could have occurred to take it down for nearly an hour (at this point) can only be interesting!

<comment><USER13> I can't compare to other web properties, but when I worked at Amazon, the store going down was a regular event. Something broke almost daily, though it was rare for the whole store to go down. (EG: You might not be able to search, or checkout might be down, etc.)

The store went thru periods of relative stability, and relative lack of stability, and in the periods where it was not doing so well, it (or a major piece of functionality) would go down in some key area at least once a week, sometimes multiple times a week during the holidays.

While it's been several years and I'm sure they've improved reliability, the sheer mass of the store made it very slow to evolve. And as an ex-amazonian sometimes I go and check for bugs that were issues back in the day- several of them have come back over the years, which is not surprising given that the entire group that was working on the parts I was working on disbanded because so many people were driven off by bad management. (A one-two punch in that case, a bad manager backed by another bad manager, neither of which had any technical knowledge.)

At the time I worked there, large swaths of code in the store had no team who was responsible because the team had been disbanded in one of the regular shuffles of employees. Amazon had a tendency to get a team together to do a feature, launch it, get the PR and the stock bump, then disband the team and put them on other projects. Of course some of these things stuck around if they were successful, but there was a lot of cruft from past efforts like: Local restaurant menus, the movie times system, various "social shopping features" (a perennial favorite to try again and again.) Hell, they used to have catalogs for mail order merchants- scanned paper catalogs!

At the time, they were claiming that "AWS is what we built the amazon store on!" (which was totally false, S3 was engineered completely separately from the store, and to its credit, as obidos and gurupa were crap. The only thing the store shared with AWS for at least the first several years was being hosted in some of the same datacenters.)

At least at the time I worked there, I'd call it a mess held together by the code equivalents of duct tape and bailing wire.

One of the things Amazon excels at is customer service, so when these problems would impact the customer, their bacon was often saved by customer support fixing the problem manually (eg: messed up orders, etc.)

Granted, operating at Amazon's scale is not trivial matter. But Amazon is a retailer and stock marketing company (Eg: one of their primary products is Amazon stock), more than an engineering company.

I'm kinda amazed that people perceive them as a "tech giant" along with Google, Facebook and Amazon. Shows the power of a good (actually, _GREAT_ ) side business like AWS. They get the credit for building something good and scalable with AWS, but of course it was a separate team lead by a senior executive with enough political clout to shelter that team.

<comment><USER14> 'I'm kinda amazed that people perceive them as a "tech giant" along with Google, Facebook and Amazon ' err.. we are talking about Amazon here

<comment><USER15> Amazon is a weird company, and it has lots of parts. Even at, say, Microsoft there can be a huge amount of variation from division to division and team to team on how things are run, the corporate culture micro-climate, etc. At Amazon this is even more true, each team is substantially on their own, and while there is a certain amount of global overarching corporate culture every group is different and some groups buck against the trend successfully.

</comment></comment></comment></comment></comment><comment><USER16> Maybe they should consider hosting in the cloud.

<comment><USER17> They should definitely try AWS. It is ridiculous that a simple online store manages its own infrastructure.

<comment><USER18> AWS was actually UP all this time, so perhaps that's not a bad suggestion.

<comment><USER19> Wow. You really don't know why AWS exists. AWS is Amazon.com.

[http://www.zdnet.com/how-amazon-exposed-its-guts-the- history...](http://www.zdnet.com/how-amazon-exposed-its-guts-the-history-of- awss-ec2-3040155310/)

As for why, it's easy. Taxes. Much like Walmart rents its stores form an LLC it owns to write off the taxes and bring down the liability of the largest revenue sector, Amazon can write off their server costs since they can "rent" them from AWS LLC. While AWS makes a good chunk of change, it has nothing on amazon.com so by making AWS its own entity (and event better for them that its publicly available) they get a gigantic tax write off and AWS makes capex expenditures saving them taxes. All In all, the shell game must save amazon millions just like it does for Walmart

<comment><USER20> I think you might have missed a joke there.

</comment></comment></comment></comment></comment><comment><AUTHOR> Sorry for the weird query string (?down=yes), but HN already had a amazon.com submission

<comment><USER21> You beat me to it by 30 seconds.

<comment><USER22> I was 400ms too late :(

<comment><USER23> Or he was 400ms too early...

</comment></comment></comment></comment><comment><USER24> Interesting. Never thought I'd see that.

Does anyone have statistics for Amazon homepage uptime? I don't remember the last time I heard about Amazon being down.

And an hour after I read Patrick's (patio11) article on the Rails vulnerabilities. It's a scary day indeed.

<comment><USER25> It's actually surprising it isn't down more often—internally, everyone has write access to prod and the rule is that if you deploy something to prod you need to be able to roll it back.* Apparently, though, someone has failed on the second item.

* Or so I was told in a job interview with the big A a few years back.

<comment><USER11> I find this extremely hard to believe. (Not calling you a liar, but I think something must have gotten lost in translation).

The possibility for theft and fraud would be so massive if every dev at Amazon had write access to production that I find it nearly impossible to believe this is true.

<comment><USER26> Developers probably have access to most production systems. Credit card processing and source of truth on orders that get shipped are most likely segregated. (actually PCI dictates that physical and data access controls be in place so only essential employees can access card data)

<comment><USER11> Who cares if I can access the credit card processing system if I can insert random code elsewhere in the system that redirects you to my phishing page whenever you enter credit card information?

<comment><USER27> Given that you would be an Amazon employee with a solid audit trail leading back to you in that scenario, I'd say it's pretty likely you'd be caught and prosecuted rather quickly.

<comment><USER28> Yes, I and my coworkers could've sold the realtime trades of a petroleum multinational to the highest bidder, including ones that hadn't happened yet. That would've been easy, and would've been worth 100's of millions to someone. Not getting caught and having your life ruined -- that was scary and would've been hard. Now, if I was working for a sovereign power, like China, and my life was there anyhow, then pulling stuff like that in the US wouldn't be so hard.

<comment><USER27> When did amazon start selling petroleum futures?

<comment><USER28> Amazon is not a petroleum multinational. Guess again.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> Interesting for all those people chasing "five nines": If 45 minutes today is their only downtime for the year, their annual uptime for 2013 will be just

        1 - 45/(60*24*365)

or 0.99992.

<comment><USER30> "5 nines" works out to about 5 minutes of downtime a year: very challenging to achieve. For reference, 4 nines is about an hour, and 6 nines is only ~30 seconds of downtime a year!

<comment><USER31> Lucky I have no need to do this math! Our requirements is 100%!

</comment></comment></comment><comment><USER32> it looks like just homepage

all the internal links seem to be working fine <http://www.amazon.com/gp/site- directory/>

edit: added less ugly link

<comment><AUTHOR> Good catch - title updated accordingly

</comment></comment><comment><USER33> Cue HN admin changing submission title to "Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more" in 3...2...1...

(cf. <http://news.ycombinator.com/item?id=5142851>)

<comment><USER34> Less cynicism on HN might be a good thing, too.

<comment><USER28> I'm going read that as ironic. (Or, did I write that...?)

</comment></comment></comment><comment><USER35> How many $/seconds do you think the homepage being down costs?

<comment><USER36> Since Amazon's retail operations are unprofitable, they're actually gaining money.

<comment><USER37> Is this seriously true?? (If so, where do they make their money?)

<comment><USER38> It's true that their profit margins can be vanishingly thin, but that doesn't mean they don't make money.

For some classes of items, they can sell at cost and still make money, because their operations are allegedly so good that they can turn over the inventory before their own payment to the supplier is due.

For example, say Amazon buys a book today and payment is due to the publisher in 30 days. They sell the book tomorrow at cost. Now they get to sit on the full price of the book for the rest of the month. In fact, take that money and buy another book, and sell it right away too. Keep that up, and you have a very big pool of money always sitting in your bank account. Money that can be profitably invested in other activities.

Why would a publisher give them 30 days to pay? Because they're Amazon. It's good to be big.

<comment><USER39> Net 30 is very common, even if you are not Amazon.

<comment><USER28> And lots of big companies will take 2X or 3X longer to pay you if they can get away with it.

</comment></comment></comment></comment></comment></comment><comment><USER40> <http://aws.amazon.com/console/> and aws is still up.

</comment><comment><USER41> The really interesting thing that really happened was Techcrunch's reporting of this news worthy event.

[http://techcrunch.com/2013/01/31/amazon-com- down-503-service...](http://techcrunch.com/2013/01/31/amazon-com- down-503-service-unavailable/)

It's sad that "tech" bloggers don't research and report on news worthy things anymore, they just take what's on Hacker News and call it news.

<comment><USER42> Traditional news does with the AP and Reuters news wires. Hacker News is a newswire of the tech world.

</comment></comment><comment><USER43> It appears just to be the homepage, but all deep links are unauthenticated. That is: if you were logged in before the site started misbehaving, and use a deep link, you're not logged in on the page that loads.

</comment><comment><USER44> Per <http://gizmodo.com/5980618/amazon-is-down>, a hacker group named Nazi Gods has claimed responsibility for the downtime.

<comment><USER26> They are just trolling. Wait for something to go down on its own then spin it.

These twitter gems demonstrate the cluelessness of the "hackers": <https://twitter.com/NaziGods/status/297074050881183744> <https://twitter.com/NaziGods/status/297070145141104641>

</comment></comment><comment><USER45> Maybe they forgot to pay their EC2 bill

</comment><comment><USER46> Thankfully, it looks like all of AWS is still up. <http://status.aws.amazon.com/>

</comment><comment><USER47> It's up now! But it's strange that they were down. And don't they run on AWS themselves?

<comment><USER48> I remember being in a talk by Dr. Vogels last year and he mentioning that *most of the Amazon.com North America services moved over to AWS in September 2011, many other services outside of NA were yet to move.

</comment></comment><comment><USER49> I've been having odd behavior with DynamoDB all day. I wonder if it's related. The AWS Health Dashboard says things are fine, but I'm not so sure: <http://status.aws.amazon.com/>

<comment><USER50> Have you reported your issues in the Forum or via the "Report an Issue" page?

</comment></comment><comment><USER51> JeffB is for sure getting paged.

</comment><comment><USER52> Been a while since I've seen the amazon homepage down. Wow.

I know from the e-commerce side, when walmart.com went down last year we saw a traffic increase (enough to actually link to to the outage for walmart). I wonder if it'll happen here.

</comment><comment><USER53> What's the guess as to how much revenue Amazon loses for every second of downtime?

<comment><USER54> Not all abandon sales are a loss for Amazon. Many customers will simply just com back and buy another day because they don't know about the competition.

</comment></comment><comment><USER55> Good thing that hacker news is their first port of call for monitoring then !

</comment><comment><USER56> I managed to clip the isitdownrightnow.com status while it was down:

[http://clipboard.com/clip/LQOyBd- lpIMCZzlmvYHqted7GrrQ3zkJis...](http://clipboard.com/clip/LQOyBd- lpIMCZzlmvYHqted7GrrQ3zkJisue)

</comment><comment><USER57> Today's deals works fine <http://www.amazon.com/gp/goldbox/ref=cs_top_nav_gb27>

</comment><comment><USER58> Free month of Thinkful to the team that's supposed to be keeping it up. Could have order something and had it delivered in the time it took to get back up...

</comment><comment><USER59> OH NO I MISSED THIS IMPORTANT EVENT!?

Why does this post have 168 points?

</comment><comment><USER60> Still down at 2:00 PM CST. I hope we see a good post-mortem out of this. For their record amounts of uptime, I can only expect something extreme.

<comment><USER61> Still down at 1423 CST.

<comment><USER61> However, I just reloaded and it loaded back up nice and pretty.

</comment></comment></comment><comment><USER62> Well this explains some things I had to deal with this morning. Apparently some people had issues with EC2 as well.

</comment><comment><USER63> It's up on the east coast, but that was almost 50 minutes of downtime. (I heard that they make $100,000/minute...)

</comment><comment><USER64> Apart from it being down all hits from hackers are bound to just create load on the server. :)

<comment><USER34> My server with an Intel Atom, Windows 7, and 100KB/s upload connection didn't go down from reaching the Hacker News homepage. It's laughable that any other website does. For Amazon, traffic from sites like Hackernews must be completely negligible.

</comment></comment><comment><USER65> It's still down <http://cl.ly/MZNo>

</comment><comment><USER66> Hah, we're losing $3 a minute from lost sales while they're down - <USER2> travesty!

</comment><comment><USER54> Back up her in Norway also.

</comment><comment><USER67> ... 35 minutes and anonymous hasn't claimed responsibility yet?

<comment><USER68> of course they did: <http://gizmodo.com/5980618/amazon-is-down>

bogus, I can assure you

</comment></comment><comment><USER69> Back up @ 19:46 GMT.

<comment><USER69> ... and it's down again @ 19:47GMT.

</comment></comment><comment><USER45> more detail: <http://www.isitdownrightnow.com/amazon.com.html>

</comment><comment><USER70> No, it is not.

Don't post outages here.

</comment><comment><USER71> I wonder how many millions they've lost

</comment><comment><USER72> Is Amazon running Rails or Rubygems?

<comment><USER26> The blessed languages of Amazon are C++, Java, and Perl.

<comment><USER68> Ruby is replacing Perl, and that's been going on for a few years now (and we have a pretty active RoR community).

<comment><USER73> stats?

<comment><USER68> not sure what kind of statistics would be good and not violate the NDA =) but our internal rubyhackers mailing list is one of the busiest lists that I'm on. I myself am not a Ruby fan, so don't know any details.

</comment></comment></comment></comment></comment><comment><USER74> > ping ec2.amazonaws.com

</comment><comment><USER34> Any news on what happened?

</comment><comment><USER75> But... I can't read my front page letter from Jeff?

</comment><comment><USER76> The beginning of the end of the world!

</comment><comment><USER77> Backup for US EAST at 14:58

</comment><comment><USER78> OH MY GOD</comment>


Ask HN: One-person SaaS apps that are profitable? - <AUTHOR> Hi HN,
Do you know any one man SaaS app that are profitable?
I'm asking this because I'm considering starting a SaaS app as a side project, and I'm looking for some inspiration.
Thanks! <comment><USER2> I run S3stat ([https://www.s3stat.com](https://www.s3stat.com)) and Twiddla ([http://www.twiddla.com](http://www.twiddla.com)) by myself and they combine to bring in a nice living.

I built both with the stated goal of bringing in recurring income while minimizing the amount of time I actually spent "working". As such, I had plenty of time along the way to bootstrap via consulting work and to travel and otherwise lead an interesting life while the product businesses ramped up in the background.

They're both ticking away nicely now, to the point where it's Officially Silly to continue working for anybody else, ever. As a result, "work" hours are defined as the ones where it's raining, the kids are in school and I've been mountain biking recently, or it's been sunny for a week and I need a rest day. Even with those constraints, you'd be surprised how many new features get shipped.

I mention this side of the business by way of convincing anybody sitting on the fence that it's probably worth giving this whole SaaS thing a try. It really doesn't impact your life in the way a "startup" would, can be done while still doing gainful work for others, and doesn't take much in the way of capital investment.

But if and when it starts paying dividends, it does in fact get as good as it seems it should.

Good luck!

<comment><USER3> Hey Jason,

Thanks for sharing your 2 projects! To be honest, I'm surprised that a few simple projects like that could support someone! I'm completely new to this, and was wondering if you could break down some numbers for me? Like: how many users, where they come from, what you think is the total market, how much of that you currently capture, and any growth hacking or marketing you did?

Thanks a lot!

</comment></comment><comment><USER4> I run Improvely ([https://www.improvely.com](https://www.improvely.com)) and W3Counter ([https://www.w3counter.com](https://www.w3counter.com)) alone. I initially developed Improvely in 2012, and W3Counter in 2004. They, along with some other side projects, are how I have made a living for most of the past 10 years.

<comment><USER5> Glad to see you're still around. I remember when you used to post on SitePoint often. I always looked up to your work. Just felt like saying that.

<comment><USER4> Hey, thanks. I remember the old SitePoint forums fondly, and other people there inspired and helped me get W3Counter off the ground. I occasionally check up on people I knew from there as well... Zach Holman (lo0ol) sold Good- Tutorials and became one of the first engineers at GitHub, Josh Pigford (shpigford) went on to make Baremetrics, Roger Stringer (freekrai) made Flybase, Josh Catone (bleys) became a writer then executive for RWW/Mashable... SPF was our HN before HN.

<comment><USER6> I miss the old SP days, I wasn't very active as a user, but I did a lot of business there buying services. The redo messed that all up and since I haven't had as good of luck finding talent. :/

</comment></comment></comment></comment><comment><USER7> I run Nomad List ([https://nomadlist.com](https://nomadlist.com)) which is not exactly a SaaS but it is a subscription revenue based company. It just passed $300k/y

<comment><USER8> Have you thought about adding vacation rental listings? I'm in the vacation rental space on the backend at [http://ownerrez.com](http://ownerrez.com).

I hear a lot of customers clamoring for the old school pay for listing, get inquiries via emails method, particuarly after the big guys in the space are stumbling: [https://www.consumeraffairs.com/news/homeaway-vrbo- service-f...](https://www.consumeraffairs.com/news/homeaway-vrbo-service-fees- rile-property-owners-and-renters-060616.html)

<comment><USER7> Yes I have Airbnb median prices listed [https://nomadlist.com/airbnb-vs- hotel](https://nomadlist.com/airbnb-vs-hotel)

It's not my main focus atm though!

</comment></comment></comment><comment><USER9> I'm pretty sure [https://pinboard.in](https://pinboard.in) is only one person. Apparently a healthy skepticism about everything is useful for running your own SaaS.

<comment><USER10> And he's making 20K every 3 weeks, according to some previous comments.

I paid for the app before it went to a subscription model and it's perfect. Nothing more and nothing less than what I want in bookmarking app.

<comment><USER11> Very inspiring :D

</comment></comment></comment><comment><USER12> Gary Brewer founded [http://builtwith.com](http://builtwith.com), earns over $1 million is sales. It's a one man band!!

[http://www.startupdaily.net/2015/09/builtwith-is-perhaps- one...](http://www.startupdaily.net/2015/09/builtwith-is-perhaps-one-of- australias-most-profitable-online-companies-and-has-zero-staff/) [https://medium.com/@andrewjrogers/the-story-of- builtwith-e3b...](https://medium.com/@andrewjrogers/the-story-of- builtwith-e3bbc17c239f#.3hv5vdrpb)

</comment><comment><USER13> I run [https://formcrafts.com](https://formcrafts.com) and [http://formcraft- wp.com](http://formcraft-wp.com), and both are profitable, netting over 150k+ a year in total. They were my side projects when I was in accounting school, lol

<comment><USER14> FYI: uBlock Origin blocks formcrafts because it's used by malware.

<comment><USER13> We do get people using our site for phishing (perks of a freemium model), and, being a small fish, sometimes get the whole domain blocked. Working on the uBlock thing. They haven't replied back.

<comment><USER15> > They haven't replied back.

I am responsible for uBlock Origin (the other uBlock is abandonware), and I haven't received anything from you. In any case, my answer would have been that I am not responsible of the content of 3rd-party filter lists, and in the current case you would need to contact malwaredomains.com, they are the ones listing you as malware.

<comment><USER13> My apologies for the confusion. I contacted malwaredomains.com and got formcrafts.com off the list.

</comment></comment></comment></comment></comment><comment><USER16> I started Complice ([https://complice.co/](https://complice.co/)) 2.5 years ago while in university, with the goal of making enough money by graduation that I didn't have to get a job. I succeeded at that, and have now grown it to about twice that, and it continues to grow, mostly via word of mouth and a few communities.

I mostly work on it one day a week, when I have a super maker schedule day and code for like 14h straight. The other days of the week I answer support emails and sometimes write blog posts. Total time these days is about 20h/week, and if I want to it can easily be 4h or less.

I've written a bit about my experience getting to here: \- [http://blog.complice.co/post/129788685472/complice-goals- ach...](http://blog.complice.co/post/129788685472/complice-goals- achieved-2-years-in) \- [http://blog.complice.co/post/130460454477/complice- at-2-year...](http://blog.complice.co/post/130460454477/complice-at-2-years- howd-we-get-here) -[http://blog.complice.co/post/139686741757/my-complice- origin...](http://blog.complice.co/post/139686741757/my-complice-origin-story)

In some senses it worked fairly smoothly for me, but I'm not assuming it's easy. Some basic advice: (the posts above elaborate on some of this) \- do things that don't scale \- charge people from the beginning: ideally get 10 people to literally send you cash for their first month's subscription before you do much work--message friends directly rather than setting up a huge sales site \- _then_ gradually automate it with software, \- (before you get monthly payments running on your app, you can run them with moonclerk (which uses stripe, so it's a seamless transition))

By following these principles, you know that at each step of the way, you're building something that people will pay for, _because you have people paying for it_. This also forces anyone you talk to for advice to take you more seriously.

Feel free to hit me up on twitter @Malcolm_Ocean with questions or just to connect :)

</comment><comment><USER17> I _think_ all the Laravel-related SaaS apps are one-man, and I'm vaguely sure they're profitable going by mentions in relevant podcasts

[https://forge.laravel.com/](https://forge.laravel.com/)

[https://envoyer.io/](https://envoyer.io/)

[https://spark.laravel.com/](https://spark.laravel.com/)

I'm not associated in any way other than as a user - Just the first things that popped into mind.

</comment><comment><USER18> Plenty of Fish is the canonical example (although I guess it isn't really SaaS per se).

For years he ran it by himself, eventually hired a couple people to help him out, and then sold it for $575M in cash, keeping about $500M for himself.

</comment><comment><USER19> I started monetizing [https://sheetsu.com](https://sheetsu.com) two months ago. It's profitable right now. I'm the only one involved, wearer of many hats. I'm opening my Baremetrics.com dashboard soon to be transparent.

<comment><USER20> So each document is an API and the paid plans support multiple sheets/tabs per document?

<comment><USER19> Yes. Each document is separate API. Paid plans support multiple sheets/tabs. Also, on the paid plan you've got bigger quota of available APIs/Sheets you can create and number of hits you can perform to each API.

</comment></comment></comment><comment><USER21> [http://geniepad.com](http://geniepad.com) is quite profitable. I work when I want to. At a minimum I need to put in about 1 hours of work a week total. I travel, enjoy life, read a shitload of books, etc. Total lifestyle business.

<comment><USER21> I see that a few of you are requesting pricing info and videos from the website. If you have any questions about the process let me know ;)

<comment><USER22> Can you write about how you started and how your sales and promotion strategies evolved.

</comment></comment></comment><comment><USER23> I developed and run [https://analytics.statvoo.com](https://analytics.statvoo.com) (realtime analytics) and [https://statvoo.com](https://statvoo.com) (aggregated website stats) alone. Both are profitable. I found doing things by myself to be the most productive way of getting things done very quickly without all the politics of a normal business environment.

</comment><comment><USER24> I run broadstreetads.com (2x techstars finalist, 3x reject), and it's profitable with plenty of growth potential.

Building a profitable sass business lies in the ability to understand your market, the problem your product solves and execute on sales goals. Learning how to do that takes a while though - you generally don't get your business legs for a while.

I'd be happy to share tips if you want to connect: katzgrau at gmail

<comment><USER25> Executing on the sales goals seems to be the part that most engineerings (at least myself) get hung up on, because that's not our expertise. It's pretty easy to learn once you devote a lot of time to it, but it's a new thing for sure.

<comment><USER26> I'd love to write about this more at some point but something I think that engineers don't understand is some of the key advantages they have over a lot of traditional marketing folk (like myself).

My background was always in that space and about 3 years ago I started to teach myself to code. Albeit not great but enough to probably land a job as a junior full stack developer if I ever wanted to.

I think the canonical example of this was someone like Patrick McKenzie, I remember when I first came across him a while back and being blown away at what he could do with just a little bit of marketing knowledge and some code.

I look back on many of the things he would suggest to SaaS businesses for example now and while they were no doubt "clever" very few of them were actually complicated ideas from either a marketing or engineering point of view. Those kinds of things are entirely within your reach.

I don't want to trivialize the marketing side of it but honestly I feel like you could EASILY learn enough concepts within under 2 months that you could apply to everything you ever worked on again forever. I'd also make the argument that if you are in the one man SaaS space that would be a very profitable and very worthwhile endeavor to embark on.

</comment></comment></comment><comment><USER27> Rob Walling started out doing his stuff on his own. He's a prolific writer and podcaster - his material is well worth looking up. His book is somewhat dated, but still pretty good: [http://amzn.to/1UdN0Ap](http://amzn.to/1UdN0Ap)

</comment><comment><USER28> I _think_ [http://cushionapp.com](http://cushionapp.com) might be profitable. The founder has recently started using some freelancers to help with features but as far as I know it's still a one person company.

The founder writes about their experiences here: [http://cushionapp.com/journal](http://cushionapp.com/journal)

</comment><comment><USER29> MinuteDock ([https://MinuteDock.com](https://MinuteDock.com)) was just me until last year - scaled up a couple of staff to try grow faster :-) still bootstrapped and profitable!

Also the guys at Quotientapp.com are just 2 dudes bootstrapped - and multiple times bigger than MinuteDock.

World's your oyster - it's a hard slog just grow slow and steady and you'll get there.

<comment><USER22> Interesting. Can you write more about how you got started and your sales and promotion strategies.

<comment><USER29> Sure

Got started scratching our own itch basically. Needed time billing software that integrated with Xero for tracking consulting work, was nothing really available at the time. Also hated traditional timesheet/timecard approach, hence the slightly different take on the user interface (twitter-esque time entry)

Built something using Xero's API which was in beta at the time, and then slowly grew off the back of that through friends/colleagues liking the product, word of mouth & channel referrals (Xero had a landing page for their 3rd party integrations).

We also engage closely with the accounting/bookkeeping community, so we get a lot of referrals through accounting providers who need software for their clients that integrates with their back office accounting packages. Repeated the same process with other channel partners (QuickBooks, MYOB, etc.).

It's definitely been a long slog - no hockey stick growth yet.

Would say that sales & promotion is one of our WEAKNESSES to be honest - I'm very much a developer who has fallen into trying to manage this kind of stuff. Always open to ideas, suggestions and feedback :-)

<comment><USER22> Thank you.

So if I understand it correctly, integration & being featured by Xero was the leverage the product needed.

</comment></comment></comment></comment><comment><USER30> Founder of Commando.io here ([https://commando.io](https://commando.io)). One man... Wearer of many hats.

Commando.io is SaaS that helps companies and people manage their servers. Think distributed SSH with a full audit trail, versioned scripts (call them recipes), and automation (full API and scheduling).

<comment><USER31> Very cool, but this definitely worries me a bit

> Commando.io is SaaS that helps companies and people manage their servers

I'm not sure if I want the tools I use to manage my production servers to be managed by one guy. What if things start breaking and you're not around?

<comment><USER30> Valid concern for sure. So the answer is basically I've setup lots of tests, monitoring, and alerting (thanks Pingdom, Runscope, and Pagerduty). Quite truthfully the code is stable and mature as this point. Shoot me an e-mail, I can go over more details if you're interested in learning more.

</comment></comment></comment><comment><USER32> I run [https://SendToMyCloud.com](https://SendToMyCloud.com) and [https://PrivateForms.com](https://PrivateForms.com), which are both profitable. SendToMyCloud is an order of magnitude more successful, though.

Both were created in 2015.

</comment><comment><USER33> I host [https://dns-api.com/](https://dns-api.com/) which allows you to use Git repositories to host DNS, via Amazon's Route53 infrastructure.

I seem to pick up new users pretty organically, and it's been running for over a year now.

</comment><comment><USER34> I run [http://www.designertask.com](http://www.designertask.com), steady growing every day. We offer on-demand designer with unlimited requests & revisions.

</comment><comment><USER35> I am running [http://provulo.com](http://provulo.com) all by my lonesome (at the arse end of Africa to boot) and it provides a very comfortable income

</comment><comment><USER36> Sorry to hijack this thread, but it's great to be able to make a SaaS app because you're a developer. But how can I non-dev do it?

For example, I use a VoIP tool quite often (almost daily). There are a lot of backends that can be used, like Twilio. The only thing is the front-end (ofcourse, it's not all front-end but you know what I mean)

I've been burning up knowing that if I were to have such a SaaS app, it will really do great.

Any suggestions on how I could start that up?

<comment><USER37> You can start here: [http://www.saasmgr.eu](http://www.saasmgr.eu)

Before you start your first SaaS, read this:

[http://www.saasgenius.com/blog/how-saas-will-change- technolo...](http://www.saasgenius.com/blog/how-saas-will-change-technology- landscape)

<comment><USER36> Thanks, but just curious on how to bring a dev in on it, or if it's even possible.

I'm great with ideas (like everyone lol) but mine are practical and definitely niches. Logic, and Usability are my strengths. I can really chart out a great experience.

Currently running a successful & profitable marketing agency where the "grunt" work is done by contractors. Wondering if developing a SaaS app can be the same...

</comment></comment></comment><comment><USER37> Hi Im_a_throw_away

If you are looking for SaaS inspiration, maybe it's better to start with sales & marketing (Between January 2014 and January 2016 the number of SaaS companies grow from 947 to 3874.)

Source: [http://www.saasgenius.com/blog/does-growth-hacking-work- stor...](http://www.saasgenius.com/blog/does-growth-hacking-work- story-12-million-profit-and-4500-growth-over-three-years)

</comment><comment><USER38> I am working on [https://www.podrover.com](https://www.podrover.com). It's totally self funded. I didn't quit consulting yet, but I am happy with how it's going. My suggestion is to start your side project right away, regardless of whether you think it will be profitable or not.

</comment><comment><USER39> I started [https://scrap.me](https://scrap.me) as a soloprenuer though we are still very far from reaching 1M ARR but we are doing good. I have started this tool as a helping tool for my other venture but launched as a seperate product after our customers started to ask about the product.

</comment><comment><USER40> I run OptKit ([https://OptKit.com](https://OptKit.com)) -- it's been ramen profitable for almost 2.5 years now.. I built it from a need I had in my other business- a small web agency. I'm phasing out of the agency work, and full- time into OptKit soon.

</comment><comment><USER41> Thanks for sharing this. I'm bootstrapping www.actionpages.co and www.actionwins.co. I'm curious to learn how other entrepreneurs who have bootstrapped their SaaS companies have managed to keep their CAC low enough to not raise money. What strategies did you use?

</comment><comment><USER42> [https://serpscan.com](https://serpscan.com)

<comment><USER43> How does it work? As far as I can remember - Google's API was deprecated and their ToS forbid scraping, right?

<comment><USER44> There are several services like that. They all scrape Google: think tons of distributes proxies all over the world, regular IP/proxy rotation, etc.

</comment></comment></comment><comment><USER37> I run [http://www.saasgenius.com](http://www.saasgenius.com) and it's going to be profitable in next year. Started it in 2015 as a side project and now working full time on it!

</comment><comment><USER45> I run DripEmails.com and SimpleDonation.com both are profitable.

</comment><comment><USER46> I'm looking to buy a SaaS app where the owner would to move on to next project. Let me know if you or anybody you may know would like to sell.

<comment><USER47> I have two new side projects (pagecull.com and flit.email) I am looking to sell. PM me if interested.

</comment></comment><comment><USER48> I run www.terminusapp.com and it's profitable. Started it as a side project and now working full time on it.

</comment><comment><USER49> PlainSite [http://www.plainsite.org](http://www.plainsite.org)

</comment><comment><USER50> I created voipspear.com about 8 years ago and have been running it ever since.

</comment><comment><USER51> PDFBUDDY.com is one.

</comment><comment><USER52> laracasts.com by Jeffrey Way.

<comment><USER53> That's not a SaaS.

<comment><USER54> [https://envoyer.io/](https://envoyer.io/)

</comment></comment></comment><comment><USER55> StatHat is profitable.</comment>


μLithp - a Lisp in 27 lines of Ruby - <AUTHOR> http://fogus.github.com/ulithp/ <comment><USER4> Before this devolves into another farcical, Lisp arm-chair punditry: at 9 operators it's pretty much a kernel untyped lambda-calculus with pairs. And _just_ that.

The implementation is as trivial as the concept is profound. The discussion should be about the lambda-calculus, not Lisp, which is a far more complex beast. And much less about Lisp dialects, Greenspun's, or the usual BS topics that invariably appear on any L-word thread.

<comment><USER5> If I had a little more time I would have written the uLithp eval in uLithp. The stark simplicity of that never fails to take my breath away.

<comment><USER4> Even then, it should inspire people to study the fundamentals, not go into big-language punditry :-D

<comment><USER5> Well, I can't control everything. :-)

<comment><USER4> That was a wishful "should"; a naive statement made in the hopes of it becoming self-fulfilling, an impersonal prayer to the universe. Not an imperative directed at you.

Besides, we have better uses for you ;-)

</comment></comment></comment></comment></comment><comment><USER6> _plug_

Once upon a time I wrote a lisp to lua _compiler_ in 100 lines. [https://github.com/meric/l2l/commit/a530f0133e002c3981937d21...](https://github.com/meric/l2l/commit/a530f0133e002c3981937d21b24d552041008181)

It's now over a thousand. <https://github.com/meric/l2l/>

</comment><comment><USER7> I think this is a neat project and a nice demonstration of how Lisp-influenced Ruby is.

However, whenever people post "Lisp in Ruby" stories, I always hope that it'll be a "Clojure in Ruby" implementation. I am surprised no-one has done it yet.

<comment><USER8> Apart from using the JVM, what is the advantage of Clojure over other Lisp dialects?

<comment><USER9> I am mostly familiar with Clojure as opposed to CL (have read a bit of Practical Common Lisp) or Scheme (have read a decent chunk of SICP), but there are some pieces here and there.

Clojure is immutable by default, which is a pretty big difference AIUI. It also has a pretty strong emphasis on concurrency, including a bunch of primitives for such. It uses STM.

A bunch of data structures are first class, like vectors, maps, and sets. There are literals for each of them, and you can use maps and sets as functions. You can also use keywords as functions against maps to e.g. retrieve the :name value from a list of maps:

        user=> (map :name [{:name "foo"} {:name "bar"}])
        ("foo" "bar")

Lambda literals are nice:

        user=> (map #(* 2 (inc %)) [1 2 3])
        (4 6 8)

They can take multiple args (e.g. %1 %2) instead of just %.

Threading macros are somewhat closer to Haskell's syntactically straightforward function composition:

        user=> (->> [1 2 3] ;; this'll be the last arg passed to each fn below
        #_=>   (map #(* 2 %))
        #_=>   (map inc))
        (3 5 7)

I'm sure there's more. Maybe a more experienced Lisper can chime in.

<comment><USER10> _Clojure is immutable by default_ what does this sentence mean? How Scheme is less immutable by default?

Which data-structures are not first class "objects" in Scheme?

<comment><USER9> Again, I don't have much experience with Scheme; I've read about half of SICP. So that's a huge caveat here.

It may have been misleading to say that Clojure was immutable by default. It _is_ immutable; it does not have set! or the moral equivalent. You can use concurrency primitives to update in place (sort of? AFAICT you're mutating the var itself, not the data it contains) but each primitive comes with its own semantics.

As far as first-class is concerned: in Clojure, maps, sets, and vectors are functions. They're functions of their data as well as being data, and there are literal representations for each.

Examples:

            user=> ({:foo 1} :foo) ;; maps are functions
    	1
            user=> (:foo {:foo 1}) ;; keywords are functions, too
    	1
    	user=> (filter :name [{:name "foo"} {:surname "baz"}]) ;; filter by key
    	({:name "foo"})
    	user=> ([\a \b \c] 2) ;; access vector by index
    	\c
    	user=> (#{1 2 3} 4) ;; test set membership
    	nil
    	user=> user=> (filter #{2 4 6} (range 1 10)) ;; filter by set membership
    	(2 4 6)

To what extent is any of that true of Scheme? I am reasonably certain that these data types can't operate as functions in Scheme. Glancing at such as the Racket docs, my impression is that generally you use a specific set of functions to interact with each type (e.g. hash-map-get, hash-has-key?, set- member?).

<comment><USER10> This is rather tricky subject - to understand real behavior - what is behind this or that a syntactic sugar.

In Scheme, for example, we could implement any data-structure as a closure, which accepts messages. There is no difficulty in writing such wrappers - <USER2> is just a closure which return another closure which accepts "messages", and following some protocol, returns, for example, another closures to be called for a certain action (generators, iterators, etc.)

We could teach the read function to recognize any kind of wired syntax we wish, and constructing appropriate data-structures with type-tags attached to them. But it will become a mess.

The real data-structures, however, its representation is very different thing. In Clojure, I suppose, it is based on built-in Java types and generic interfaces, such as Iterable or whatever it is. So, they are ordinary Java objects, without any magic in it.

In Scheme or CL it depends on the implementation, the choices made by developers. So, for example, Gambit-C and MIT Scheme are quite different in how they implement hash-tables or vectors. My guess is that, say Alegro CL and CMUCL are also very different, yet they all conform to some standards (CLtL2, ANSI).

Having very different implementations with different set of compromises is a strength.

So, in my opinion, there is absolutely nothing special in this syntactic constructions, moreover, it is not that difficult to implement them using closures and macroses. In arc.arc you could see how strings and tables were implemented.

Another issue is, should we add all this wired syntax to what we call Lisp? In my opinion doing this ruins Lisp and the result is some very different in a look-and-feel language. Calling it Lisp is, well, confusing, at least to me. Arc is a Lisp, no doubt. CL and Scheme are Lisps, for sure. Clojure is Java with lisp-like syntax, if you wish.)

The old rules says that there must be very heavy reasons to add any new symbol or a keyword into a language, and that the same things shall look the same, and different - differently. For me, personally, Arc is a proper approach, while Clojure is, well, a mess.)

<comment><USER11> >So, in my opinion, there is absolutely nothing special in this syntactic constructions, moreover, it is not that difficult to implement them using closures and macroses. In arc.arc you could see how strings and tables were implemented.

You're right, there is nothing special about what Clojure does; everything could be implemented in Scheme just fine. The real advantage comes from the fact that these things are there "out of the box" so that libraries are written to use them.

There is a lot of inertia when it comes to libraries in a language. In some sense, you only get one chance to get it "right" before everything becomes interdependent and you can no longer change anything. Clojure's advantage is simply that it presented a chance to start over and get things right from the beginning.

<comment><USER9> Right, yes: what ships with the language shapes the way the language is used, and has wider impacts beyond what you could theoretically or even practically do with it.

A dumb example would be a Option/Maybe type in Java. You could write a good approximation. But none of the standard libraries would use it, let alone any user supplied libs. Lisps are different in some very important ways, but since this is in part a meatspace phenomenon, it's still a challenge. Somebody went so far as to call it The Lisp Curse[0].

Anyway, syntax is a matter of taste, though I think people focus too much on it one way or the other— people don't like s-expressions b/c parens, people don't like Clojure b/c brackets/braces/whatever.

So while I agree that Clojure syntax isn't a huge game-changer, it can and does improve the quality of life for some people, myself included. Built-in literals are a big deal. And there is a lot to be said for being able to use these as primitives on _day 1_ of learning Clojure, esp. as your first Lisp.

[0]: <http://www.winestockwebdesign.com/Essays/Lisp_Curse.html>.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Don't call it Lisp.

Lisp _begins_ with something like this:

      (defmacro when (test &body forms)
          `(cond (,test nil ,@forms)))

Without using underlying list structure, environments, lexical scoping and reader function it is just a lisp-like syntax.

Lisp without lists at its core is nothing but another clumsy language. Look at Clojure - what a mess.

<comment> guard-of-terra What's the problem with Clojure?:

        (defmacro when
    	  "Evaluates test. If logical true, evaluates body in an implicit do."
    	  {:added "1.0"}
    	  [test & body]
    	  (list 'if test (cons 'do body)))

Moreover, what's the problem with μLithp?

        l.eval [:label, :second, [:quote, [:lambda, [:x],   [:car, [:cdr, :x]]]]]

        l.eval [:second, [:quote, [1, 2, 3]]]

Seems list-y enough for me. I have a feeling that you didn't actually read the article.

<comment><USER10> There isn't any problem with this Clojure macro. If you would like to see problems with Clojure, take a look at keep function in core.clj.

There is a classic function:

      (define (filter fn l)
          (cond ((null? l) '())
    	  ((fn (car l)) (cons (car l) (filter fn (cdr l))))
    	  (else (filter fn (cdr l)))))

The point is that stuffing more data-structures into a lisp ruins it. Somehow switching to the prefix notation and adding parenthesis doesn't transform Java to Lisp.

For the second piece of code - are't semicolons and comas somehow redundant?

Moreover, what is the point of writing something this way?

<comment><USER12> Not sure what the objection to the keep function is, other than maybe the performance optimisations that chunked sequences allow. Taking away the chunked consideration gives something like:

        (let [x (f (first s))]
          (if (nil? x)
            (keep f (rest s))
            (cons x (keep f (rest s)))))

Which looks almost identical (with differences, as you seem to be giving filter rather than keep, which are different functions). The library function COULD be defined like this, it just wouldn't be as fast.

<comment><USER10> _Taking away the chunked consideration..._

</comment></comment></comment></comment></comment><comment><USER13> Yeah, 27 lines. Unless you count the ~120 lines of sexpistol.

<https://github.com/aarongough/sexpistol>

<comment><USER5> My s-expression reader is 34 lines. <https://github.com/fogus/ulithp/blob/master/src/reader.rb>

A minimal Lisp (the bare minimal) does not require sexprs though.

<comment><USER14> _A minimal Lisp (the bare minimal) does not require sexprs_

Really? Why not? I realize that McCarthy's original spec used recursion equations, but that notation is more complicated than s-expressions.

</comment></comment></comment><comment><USER15> Related: <http://news.ycombinator.com/item?id=3511100>

Above was HN submission from early last year, _Lisp in 32 lines of Ruby_ , which was the original blog post of this code by Fogus.

</comment><comment><USER16> Not sure what this proves exactly. For fun, here's a Javascript equivalent in 27, err, "lines":

        module.exports = function() {
            var atom = function(val) { return val instanceof Array ? false : true; };
            var env = {
                label:  function(sexpr, senv) { senv[sexpr[1]] = evaluate( sexpr[2] ); },
                quote:  function(sexpr, senv) { return sexpr[1]; },
                "==":   function(sexpr, senv) { return evaluate(sexpr[1], senv) == evaluate(sexpr[2], senv); },
                head:   function(sexpr, senv) { return evaluate(sexpr[1], senv)[0]; },
                tail:   function(sexpr, senv) { return evaluate(sexpr[1], senv).slice(1); },
                conc:   function(sexpr, senv) { return [evaluate(sexpr[1])].concat(evaluate(sexpr[2])); },
                "if":   function(sexpr, senv) { return evaluate(sexpr[1], senv) ? evaluate(sexpr[2], senv) : evaluate(sexpr[3], senv); },
                atom:   function(sexpr, senv) { return atom(sexpr[1]); },
                lambda: function(sexpr, senv) {
                    return function(lexpr, lenv) {
                        for(var i=0; i<sexpr[1].length; ++i) lenv[sexpr[1][i]] = evaluate(lexpr[i+1], lenv);
                        return evaluate(sexpr[2], lenv);
                    };
                }
            };

            var evaluate = function(sexpr, senv) {
                senv = senv || env;
                if( atom(sexpr) ) return senv[sexpr] !== undefined ? senv[sexpr] : sexpr;
                else return senv[sexpr[0]](sexpr, senv);
            };

            this.evaluate = evaluate;
        };

Example:

        var notlisp = require("./notlisp.js");
        var l = new notlisp();
        l.evaluate( ["label", "second", ["lambda", ["x"], ["head", ["tail", "x"]]]] );
        l.evaluate( ["second", ["quote", [1, 2, 3]] ] );

</comment><comment><USER17> I want to learn a lisp variant. I'm okay in several scripting languages-- Python, Ruby, PHP.

Any obvious choice? (If not, I imagine I'd like to learn the most widely-used)

<comment><USER18> > I imagine I'd like to learn the most widely-used

Learn yourself some Clojure for great good.

<comment><USER17> Light Table implements clojure, right?

Then I can get busy with that ahead of time (I've been sweating a Python release)!

Thank you.

<comment><USER18> > Light Table implements clojure, right?

Yep!

Happy hacking: learning some Lisp variant is a great day/month/year/lifetime in any programmer's life.

</comment></comment></comment></comment><comment><USER19> related: Norvig's implementation of lisp in python:

<http://norvig.com/lispy.html>

<comment><USER20> Norvig's implementation of Scheme in Lisp:

[http://books.google.de/books?id=QzGuHnDhvZIC&lpg=PA756&#...</a>

<comment><USER15> Also a Scheme implementation written in Perl by Bill Hails - <USER3> Programming Language Architecture in Perl_ :

(book & code) - <http://billhails.net/Book/> | Previous HN post - <http://news.ycombinator.com/item?id=1747132>

</comment></comment></comment><comment><USER21> 1993: «Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.» [1]

20 years later: for Ruby users, situation improves! :)

[1] <http://en.wikipedia.org/wiki/Greenspuns_tenth_rule>

<comment><USER22> "Common Lisp" means the loop macro and CLOS, I think. And you guys still don't have those ;)

</comment></comment><comment><USER23> Is it normal that I don't have the slightest idea what I'm reading here, or is it just me?

<comment><USER21> If you don't know what Lisp is, and are a programmer, it's high time to go read about its basic principles.

Lisp is _very_ simple and _very_ powerful. Those who don't learn it are doomed to reinvent it, badly ( _cough_ XSLT _cough_ ).

<comment><USER24> I'm not exactly a programmer. Could you explain how Lisp can be simple _and_ powerful?

<comment><USER25> A lisp program's code can be manipulated by the program itself. Lisp programs are self-aware.

It's a bit mind-bending, but from this simple foundation comes the power to easily create and assimilate ever higher-level abstractions (which is what programming is really all about). Parts of a program can be used as a template for creating other parts as needed. You can assemble these parts and shape the language into something very specific for the problem you are solving.

Other languages come part-way, but don't fully embrace this concept (code=data) because it has a cost: it seems difficult to learn because it requires a change in thinking; it seems difficult to write (and read) because you're directly encoding a data structure and it all looks a bit 'samey'. Where other languages have 'shapes' in their code that give the trained eye an indication of what the code is expressing (such as for...do loops and indentation), lisp code has one shape: a tree [1].

I don't know if I've reached beyond your understanding. I haven't meant to, but the takeaway should be this: lisp programs are self-aware and can operate on themselves because a lisp program is just data like any other. This makes it easy for the interpreter/compiler (hence _'lisp in x lines of code'_ ), but more difficult for the programmer (at first). As with all things, practice and familiarity overcome these initial difficulties. It is worth it.

[1] <http://en.wikipedia.org/wiki/Tree_(data_structure)>

<comment><USER26> > code=data

This is a really good explanation, and I just want to add a small bit to it, having had to use Lisp as a primary language quite recently due to some AI projects in cognitive modeling. One thing that I've found personally is that by understanding Lisp, you can essentially gain a deep understanding of every __other__ programming language.

If I had the chance to do my entire Computer Science career over again, I would have learned Lisp as my first language, and then compared every other subsequent language against it. Because of the deep symmetry between code and data, it is one of the easiest languages for implementing and re-implementing programming language features on top of.

</comment></comment></comment></comment></comment><comment><USER27> You should use Docco for your page, I find it much more readable: <http://jashkenas.github.com/docco/>

<comment><USER28> Ah, but this is org-mode! He can evaluate his code inside his editor! Grumble rah rah emacs!

He could probably set up his publish templates to accomplish the same formatting.

(huge org mode nerd, checking in)

\--- _EDIT_ \---

And what do you know, Eric Schulte already implemented this for org mode! It's checked in under contrib.

Instructions: <http://eschulte.me/org-docco/org-docco.html>

Org source: [http://orgmode.org/w/?p=org- mode.git;a=blob_plain;f=contrib/...](http://orgmode.org/w/?p=org- mode.git;a=blob_plain;f=contrib/scripts/org-docco.org;hb=HEAD)

</comment></comment><comment><USER29> Cool project, but I think it's been done before in less lines: <https://gist.github.com/4176087>

<comment><USER30> I've never understood the line-count craze some people get on. If it was that important, we'd all be using J or APL. Since we're not — in fact, almost _nobody_ is — it must not be that critical.

<comment><USER31> _> If it was that important, we'd all be using J or APL._

Fallacy. You haven't eliminated the possibility that line count is important, but also that too few lines is also bad. It's widely understood that line count, even though it's a hazy and exploitable metric, is indeed important. It's also widely understood that being too terse is as bad as being too verbose. Time to brush up on some old-school CS curriculum books. (Mythical Man-Month? I'm not sure if the above is discussed there, but it's a good place to start.)

<comment><USER30> I haven't proved anything, true — I was illustrating a point with an example, not writing a series of syllogisms. What I meant to do was to direct the reader to the broader idea that our language usage doesn't suggest that line count is a pressing concern past a point that allows for considerable verbosity.

Now, wasn't it more enjoyable the way I put it first?

<comment><USER31> It's more accurate and less misleading the way you put it second. The way you put it first, it suggests that you've shown that line counts don't matter.

</comment></comment></comment></comment></comment><comment><USER32> Who's up for implementing a μRuby on top of this μLisp?

</comment><comment><USER33> I love the economy of lisp implementations in dynamic languages. It's especially nice because you don't have to worry about the memory management.

On the otherhand, I've been interested in doing a lisp in low memory environments (uC's, etc). I've done a dialect in C using a semi-space garbage collector. But I'm curious if anyone's done any work on lisps in resource constrained environments.

</comment><comment><USER34> Really? Lithp? Not that I'm offended, but the pun seems unnecessary.

<comment><USER35> Is necessity a prerequisite for humor?

<comment><USER34> It's not. And it's totally understandable how this could pass for humor in middle school.

</comment></comment></comment><comment><USER36> My one question is: Why?

<comment><USER37> It's weird that this question keeps coming out in several cool but not that useful HN posts.

Some times it's cool to do things just because you can, maybe he was bored or he always wanted to implement a lisp dialect.

It might not be that useful, but i'm sure that the autor had a blast doing it, otherwise he wouldn't have done it.</comment></comment>


New engine to real-world multiple vehicle pickup and delivery problem [video] - <AUTHOR> https://www.youtube.com/watch?v=lpn9V3pnrbA <comment><AUTHOR> Real-world multiple vehicle pickup and delivery problem is much more complicated than traveler salesman problem. Current algorithms solve two situations: fixed start point and end point/few pickups and limited number of nodes.To enable a much more flexible and efficient logistic, my new engine supports large number pickups in each route and customization to real-world constraints.</comment>


What do few youngsters do differently that makes them create new industries? - <AUTHOR> I have been seeing examples, say Matt Mullenweg who created WordPress, Vitalik Buterin who created Ethereum and the list can go on. <comment><USER2> There are a few things which younger entrepreneurs have advantage over older ones:

1\. Experience (or lack thereof): It's a double edged sword, you may stop making any progress through paralysis-analysis. Progress is the best motivator and when you don't it starts affecting you in ways you will be surprised.

2\. Cost of living: As you get older the cost of living only climbs up. You will be shouldering a lot of more responsibilities but biggest of all which I experience personally is associating dollar-cost with my time. You start valuing cost of money over cost of opportunity. If I am not making money that means I am loosing money.

3\. Social pressure: We are social beings and when you see your friends moving ahead in life and you tend to remain where you are ( think first 1k days [https://www.youtube.com/watch?v=L03vBkOKTrc](https://www.youtube.com/watch?v=L03vBkOKTrc)), you need to have a certain kind of personality to be able to get through that period. Not vacationing, living a frugal life & compromising at every stage takes a toll on you personally. It starts affecting your mind in weird ways.

This is by no means a comprehensive list but it's my own experience & it's a constant battle especially when the chips are down.

EDIT to clear #1 speaking as an older developer.

<comment><USER3> To add one more thing, I think there's a significant selection bias at play, when one sees successful risk takers.

For all the reasons mentioned above, older folk have a lower affinity to risky ventures. Younger folk often take up risky ventures; a small fraction succeed, but they get a lot of attention.

</comment></comment><comment><USER4> I've always thought of it in terms of knowledge and experience available at developing ages.

Consider how babies/children so easily pick up tablets and smartphones while their grandparents have a difficult time discovering any kind of functionality.

Consider also that as these children mature (thinking teen years) and start to seriously develop their world view, they're exposed to a different slice of technology and ideas from us, many of which enable them far more than we were at our respective formative periods.

Now consider that all of this is internalized almost totally. It is a core part of who this average person is; a product of their environment and technology era.

This is what I think about when I hear about some 20 year old coming out with a major advancement in a field, or who built an app at age 10, or someone at age 24 built some revolutionary device.

They've had the advantage of growing up with and internalizing and _thinking and reasoning with_ a set of ideas and assumptions that we from different generations don't have. With a degree of freedom that we didn't have. Pair that with other arguments here (less pressure, more financial freedom, etc) and to me it seems like a very fertile ground for powerful and enabled ideas. Especially in the last decade.

</comment><comment><USER5> under-rated quality: naivete

lack of experience, wisdom, or judgment. "the administration's naiveté and inexperience in foreign policy" innocence or unsophistication. "they took advantage of his naiveté and deep pockets" synonyms: innocence, ingenuousness, guilelessness, artlessness, unworldliness, trustfulness; More

</comment><comment><USER6> Randomness? lots of people (youngsters?) do new things, some will fail and some will succeed.

the only thing that they have in common is they started doing something, you should buy a lotto ticket to win one!

</comment><comment><USER7> Little girl trying to play a Gameboy in the touchscreen era:

[https://www.reddit.com/r/gaming/comments/722huo/little_girl_...](https://www.reddit.com/r/gaming/comments/722huo/little_girl_trying_to_play_a_gameboy_it_in_the/?utm_term=37f5c9bd-f2af-4c08-b43f-0510c7df4b87&utm_medium=search&utm_source=reddit&utm_name=frontpage&utm_content=1)

Young people have a different experience of current circumstances than older people, so they see different problems and opportunities. _Digital natives_ will have different mental models of life, the universe and everything. While older people are still trying to adjust to the new fangled thing, youngsters are envisioning the logical next step.

Some industries and solutions benefit from long experience and wisdom. Others benefit from a relatively clean slate, unburdened by excess expectations of how things "should" be done.

(My adult sons seem to just know how to do things on a tablet. I prefer the tablet to a laptop, but I often get help from my kids. Touchscreen tech in no way comes naturally to me, even though I have spent more time on a tablet in the last few years than a PC or laptop.)

</comment><comment><USER8> They've got plenty of times on their hands and no family or doesn't need to work to feed their own mouths, which is plenty of advantage over 99% of the population of the world.

Now add being born in a good country, or having rich parents, or getting good education

then add a bit of luck

there you go

<comment><USER9> It's a good recipe but there's no easy way to make sure you nail the ingredients every time! :D

</comment></comment><comment><USER9> > What do they do differently? They help others flourish in an adjacent field.

Every successful "youngster" you see has been helping someone around her/him or in her/his tribe achieve something they themselves did not envision or think possible.

What sets the successful youngster apart from the rest is their empathy, and their wish to see other people around them flourish. Elevate the people around you and it is very wonderful what will land in your basket.

</comment><comment><USER10> It's not about age it's about risk/reward.

A youngster has nothing to lose if it starts a 1000 hour project. In the worst case scenario it will be a very good resume that will get him hired.

For an experienced professional that is already making good money from it's current job/business and has a family to sustain, losing 1000 hours on a project that can get him 0 in return is simply not viable most of the times.

So youngsters are much more likely to experiment more.

</comment><comment><USER11> They don't know that "no, that's not going to work"

</comment><comment><USER12> Before I had a family, I had a lot more time on my hands to play around and try new things. I'm sure that has something to do with it.

</comment><comment><USER13> Experience destroys creativity.</comment>


The Wrong Reasons To Pursue Venture Capital: Founder Salaries - <AUTHOR> http://www.markpeterdavis.com/getventure/2010/05/the-wrong-reasons-to-pursue-venture-capital-salaries.html#disqus_thread

<comment><USER3> I don't see why the reason for the money really matters. If you have founders that don't need salaries, but do need to buy $400k worth of equipment (or whatever) it's not much different than two guys who need $90k/year salaries for 2 years (because they're older and have mortgages/families/whatever).

If you can get enough money from angels you should probably always do that first. If you can only get a sufficient amount from VCs then you don't have a choice.

</comment><comment><USER4> I think a very small % of founders raise money solely for their own salaries. However, given that human capital is often the majority of costs for early stage start-ups (especially consumer Internet) and that small teams can accomplish a lot it doesn't seem off-base for lean startups to extend their runway by raising venture capital to pay salaries for founders and early employees.

In unrelated news, an associate at a VC firm makes an average salary of $194K/year. :)

</comment><comment><USER5> While I agree with the general idea, that a founder's salary is a means to and end (growing a company) and not an end in and of itself (hooray I have a paycheck!) I'm not sure it was well explained. He seems to be saying that VC funding should not be thought of as the road to fat paychecks but that there are other routes to go if thats your goal. There is a decent bone of an idea in this article - just not enough meat on it for my tastes.

</comment><comment><USER6> "The lower the CEO salary, the more likely [a startup] is to succeed." - <USER2> Thiel

[http://techcrunch.com/2008/09/08/peter-thiel-best- predictor-...](http://techcrunch.com/2008/09/08/peter-thiel-best-predictor-of- startup-success-is-low-ceo-pay/)

<comment><USER7> Probably because low salaries are a proxy for commitment, not because of direct cause-and-effect.

<comment><USER8> The investors I know want to match their risk profile with the risk profile of the founders.

That means that if they are risking 1% of their net wealth, they would like the founders to also risk ~1% of their net wealth - even if that means $4m or $40.

This is because they don't want founders to have incentives that don't align with theirs. You are right that no one wants a founder who is under-invested as they may end up not pushing hard enough.

But a founder who is over-invested might cause even more problems because if a 2x return means they get to keep their house they might not go all out for a 50x return if it puts that 2x return at risk.

</comment></comment></comment><comment><USER9> I would enjoy the site more without ridiculous pictures.</comment>


Yarn – A small embeddable VM with a custom instruction set - <AUTHOR> https://github.com/WetDesertRock/Yarn <comment><USER2> Very cool and promising!

It reminds the Moxie processor:

[http://moxielogic.org/blog/](http://moxielogic.org/blog/)

[https://github.com/atgreen/moxiedev](https://github.com/atgreen/moxiedev)

The author even wrote a backend for GCC.

Your demo from Twitter should compile to JS with emscripten.

<comment><AUTHOR> Oh interesting, I'll look more into that.

Yeah, it should compile to JS, I'll probably look into doing that at a later point in time.

<comment><USER2> It's simple once the emscripten SDK is installed ("emcc main.c -o main.js/html").

[https://kripken.github.io/emscripten- site/docs/tools_referen...](https://kripken.github.io/emscripten- site/docs/tools_reference/emcc.html)

</comment></comment></comment><comment><USER3> Nice ! Seems interesting to consider it for my diy game console (bitboxconsole.blogspot.com) and allowing on-console game dev !

<comment><AUTHOR> Yeah, an idea like this would work well for console development!

</comment></comment><comment><USER4> I find this strangely fascinating, but have no idea what I could use it for. Is it intended to be useful, or just a neat experiment?

<comment><USER5> It looks like a neat experiment (definitely cool though), but I imagine you could (eventually?) implement a scripting language like lua in it, and register your program's external commands the scripting language needs access to.

<comment><AUTHOR> Yeah, I have some specific goals to it. One is making it into a game platform. See a video of the start of that project: [https://twitter.com/WetDesertRock/status/703300191512715264](https://twitter.com/WetDesertRock/status/703300191512715264)

<comment><USER6> What sort of graphics/audio interface do you expose to the program?

(The project is very cool! The instruction set reminds me a bit of the MIPS subset usually implemented in uni courses.)

<comment><AUTHOR> Oh, and I forgot to answer your question.

I haven't decided on audio. It might be a set of sys calls that manipulate oscillators. The graphics interface is quite literally just manipulating the program memory. You can see the registers in the lower left corner of the video I linked.

</comment></comment></comment></comment></comment><comment><USER7> Pretty cool. I'd like to know more about the design decisions. Why registers? Why those specifically? And more.

<comment><AUTHOR> Alright. Even though its not really needed, and complicates things more, I was oddly attracted to the variable length instructions. I realize this would be a bit less attractive if it wasn't _my_ project, but I wanted to anyways. My basic design was one byte for the instruction (could be divided into two nibbles, one for the type, one for the actual instruction), and one byte for the registers. This allowed me 255 instructions max, and max 16 registers.

I then just started listing off the registers I needed. I could try to make up my own method of keeping track of the stack, base and instruction pointers, but I didn't really care enough. I also liked the _cdecl method of function calling in assembly, so I kept with that design as well. This meant a return register. The rest were split between caller and callee save registers, and I tried to give them a decently easy to remember mnemonic. Compare that to x86! I also realized I needed a null register which would indicate no register was used for operations (ie a `mov *(0x0), %ret` where there is no register for the first argument). I think I'll enforce this convention to make %null a little more useful. Unless the user tries really hard, I'll prevent anything from changing the contents of null from 0, making it useful for comparisons, and popping unwanted data.

</comment></comment><comment><USER8> Fyi Yarn is also the name of the resource manager of Hadoop v2 => might be a bit confusing. [http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop- yar...](http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn- site/YARN.html)

<comment><AUTHOR> Ah, yeah. Its super hard to name anything anymore!

I think I'm okay with this name collision, but if there are any confusions I frequently refer to mine as YarnVM.</comment></comment>