hacker news with inline top comments    .. more ..    29 Jun 2015 Ask
home   ask   best   4 years ago   
Ask HN: My startup has failed. What comes next?
13 points by blinduck  59 minutes ago   8 comments top 7
cat9 37 minutes ago 0 replies      
What do you want to come next?

If you can constructively and reliably ship code to prod, you almost certainly have better immediate options than Elance.

Worst case, calling ten different web agencies in your area will probably get you enough work to pay the bills, likely at rates which are not unreasonable, and with far less pathological clients than you'd find on Elance. You might have to call another ten after that, if your luck is bad or if your sales skills are poor.

After that, what? Full-time job? Freelancing? Another startup? Get out of software and into the exciting world of fruit vending?

It's a wide world and you have skills that are in high demand. What do you want the next chapter in your life to be about?

patrickryan 13 minutes ago 0 replies      
I was in the same situation as you at the end of last year. After 2.5 years working on a Techstars VC funded startup as a co-founder, we failed. Unfortunately at the time, I didn't have the extra cash to take time off, so I sent a few emails out (to the Techstars network) and a few weeks later jumped onboard another early startup as the first engineering hire. I honestly wasn't sure if I wanted to join another early stage company, but they offered a nice salary (I obviously chose salary over equity), a nice bonus, + some equity. They were the perfect fit for me, so things worked out well.

If you have the $$ to travel before moving on, I would advise you to take some time off to relax and get your mind away from the startup world. Go see your family, it's amazing how much they care.

Lastly, you will experience many emotions for many months following, don't take it too hard. Life goes on, things happen for a reason, and good luck! It will all work out.

timr 30 minutes ago 0 replies      
Having done it, I wouldn't advise jumping directly into another startup. Take as long a break as you can allow yourself, then get a job for a while -- one that won't demand much more from you than a a reasonable work day and steady output. If you are a competent programmer, this should be easy in the current market.

Work until you're painfully bored, or until you can't imagine not dropping it all and pursuing the Next Thing.

If you're a programmer, starting a startup right now puts you on the wrong side of the labor market. Your financial (and lifestyle) expected value is higher to work for someone else. So take a vacation, enjoy some of the fruits of life (instead of working), and save your very nice income. You may never hit it big, but you will definitely never regain your youth.

adamzerner 8 minutes ago 0 replies      
Personally I wasn't a great coder after my startup failed (right after college). So I went to Fullstack Academy, and then got a job as a web developer. I plan on taking another stab at it once I get some more experience though.
staunch 33 minutes ago 1 reply      
1. Pay the bills, save some money.

2. Take a vacation: "Me and my friends have been too busy sunbathing off the southern coast of St. Bart's with spider monkeys for the past two weeks, tripping on acid. Changed our whole perspective on shit."

3. Tinker: https://www.physics.ohio-state.edu/~kilcup/262/feynman.html

abrookewood 33 minutes ago 0 replies      
Couple of things: Can you sell your code? If not consider open sourcing it. Either you get some money or you get some kudos in the community.

If you still want to work in startups, look at the post a few pages back for people looking for founders:https://news.ycombinator.com/item?id=9795503

mikerichards 29 minutes ago 0 replies      
Did you start looking for a job? Did you jump straight into your next startup

I'm always curious about comments like this. Do you have enough personal reserves to go into startup mode again and still pay rent/mortgage, household expenses for another year, whatever?

SpaceX Launch Vehicle Failure
356 points by onwardly  13 hours ago   323 comments top 82
dcposch 6 hours ago 1 reply      
I watched the launch live this morning. It reminded me of one of the best interviews ever. Elon Musk after SpaceX's first three launches all exploded:http://archive.wired.com/science/space/news/2008/08/musk_qa

I read that in high school, and it's part of the reason I became an engineer.

"Far better is it to dare mighty things, to win glorious triumphs, even though checkered by failure... than to rank with those poor spirits who neither enjoy nor suffer much, because they live in a gray twilight that knows not victory nor defeat." --Teddy Roosevelt

Osmium 11 hours ago 1 reply      
Looks like Southwest Research Institute's meteor shower camera will have been lost again. They're not having much luck :(

> The device aboard [today's launch] was actually a backup of the original meteor camera that blew up along with Orbital Sciences' Antares rocket in 2014.


51Cards 12 hours ago 4 replies      
From Elon just now via Twitter:

"There was an overpressure event in the upper stage liquid oxygen tank. Data suggests counterintuitive cause. That's all we can say with confidence right now. Will have more to say following a thorough fault tree analysis."

rorykoehler 13 hours ago 3 replies      
Can anyone here with a little more knowledge answer the following please?

Who pays for the expense of these types of failures? Does SpaceX have some sort of 3rd party insurance from a private insurer or are they insured by NASA or another branch of the US gov?

How much is the equipment that got destroyed worth? If this happens multiple times in a short space of time as it seems to have recently does the cost of insurance go up for every launch? Does their analysis of data have any impact of the cost of insuring future launches?

ash 13 hours ago 2 replies      
hackuser 8 hours ago 7 replies      
Costs and catastrophic failures:[1]

* United Launch Alliance (Boeing and Lockheed Martin): 0 "outright failures" and 83 successful launches, ~$110 million/launch

* SpaceX: 1 failure and 18 successful launches, $60 million/launch

If you are looking for someone to launch your assets into orbit, who do you choose?

[1] http://www.cbsnews.com/news/spacex-falcon-9-rocket-destroyed...

jerf 13 hours ago 5 replies      
So, the advantage of a weekend launch is that I could show my kids (boys 7 & 4), right?


In the last few minutes, over a dozen K-Nex rockets have lifted off and exploded shortly after takeoff.


Not the best introduction to the second Space Age for them.... ah well, we'll try again later.

At least nobody was aboard.

NamTaf 13 hours ago 5 replies      
Well, that was an unexpected and uncontrolled structural disintegration.

e: On the upside, happy birthday Elon, I hope you enjoyed your really awesome fireworks!

amix 13 hours ago 2 replies      
My thoughts go out to the SpaceX team. Must be devastating to see your hard work blow up :-(
kid0m4n 13 hours ago 6 replies      
Yep... just saw... hate the silence on the stream

Update: Looks like the explosion was triggered by Range Control in response to non nominal flight

UnoriginalGuy 12 hours ago 4 replies      
I feel bad for the SpaceX team. No sympathy for Musk considering all the mean spirited and unfair things he's said publicly about Orbital Sciences' rockets (inc. "One of our competitors, Orbital Sciences, has a contract to resupply the International Space Station, and their rocket honestly sounds like the punch line to a joke. It uses Russian rocket engines that were made in the '60s. I dont mean their design is from the '60s -- I mean they start with engines that were literally made in the '60s and, like, packed away in Siberia somewhere."). Which is an even more ironic quote if you knew that Musk tried to buy exactly those same rockets from Russia and was declined[0].

Hopefully Musk is learning some humility.

[0] http://www.dailymail.co.uk/sciencetech/article-3082067/Russi...

xur17 13 hours ago 0 replies      
It exploded :(. Link to that part of the livestream:


satyajeet23 13 hours ago 1 reply      
Success consists of going from failure to failure without loss of enthusiasm.
daguava 13 hours ago 0 replies      
I would rather see SpaceX fail a thousand times unmanned than once with astronauts aboard: this is all part of progress forward.
n_coats 13 hours ago 2 replies      
Was just watching the rocket from my backyard and it looked like it exploded... wow, can't believe that.
cloudwalking 12 hours ago 0 replies      
Elon: "There was an overpressure event in the upper stage liquid oxygen tank. Data suggests counterintuitive cause."https://twitter.com/elonmusk/status/615185076813459456
neals 14 hours ago 1 reply      
Elon Musk's 44th birthday today. Crazy way to celebrate that, right: Launching a rocket into space and getting to re-use the rocket.
solomatov 11 hours ago 0 replies      
It's absolutely ok to have failures during rocket development. See statistics of American and Russian rockets at the dawn of space race. https://en.wikipedia.org/wiki/List_of_spaceflight-related_ac...

I wish the best SpaceX and hope they will make space flight affordable for many commercial and consumer applications.

moioci 12 hours ago 0 replies      
This is the natural consequence of testing being so expensive that you _have_ to test in production.
51Cards 13 hours ago 1 reply      
So in a case like this, would it be possible to have the pad abort system kick in? It could potentially pull the cargo module away and make an attempt to parachute it back for recovery? I doubt it could overcome the speed of the rocket but it might have a chance to separate it from the debris cloud?
eps 8 hours ago 1 reply      
Hold on.

So that's the second in a row ISS resupply mission that failed, isn't it? First was with the Progress in late April. How does this affect the ISS plans, does anyone now?

nkoren 14 hours ago 2 replies      
Gods, it feels good to see the future finally arrive. It's been a long time coming.

Growing up in the 80s, I became quite bitter about the pace of technological change. Sure, personal computers were nifty, but the heroic age of spaceflight was really what the future should've been about. That age had ended with Apollo 17, three years before I was born. Everything since then looked like a shambolic shuffle into a new dark age.

One insane coincidence in the late 80s gave me some remarkable perspective on this. I was taking the train down the coast of California, around the horn of Vandenberg Airforce Base. The train was the only place from which civilians could see the Vandenberg Launch Complex, including the SLC-6 Shuttle launch site[1]. Nasa had spent over $4 Billion preparing it for shuttle launches which would never come. The Challenger disaster had ended all hopes for that; the complex had been mothballed and was already starting to rust. Seeing this made my 13-year-old-self angry. I started ranting to the poor gentleman sitting next to me about how my grandmother hand grown up with horses and buggies yet got to see men walking on the moon; my generation, on the other hand, had seen nothing but decline.

As I ranted, the gentleman slumped in his seat. At the end of my rant, he gave a long sigh and said "tell me about it." Then he introduced himself. He was Deke Slayton, a Mercury and Apollo astronaut[2]. He'd retired from NASA in 1982, frustrated with its bureaucracy, and tried to start a private space-launch company. It hadn't gone well.[3] I wish I could say that our conversation gave me hope for the future, but it didn't.

Later, my hopes were raised by the DC-X[4], then dashed by the subsequent (insanely corrupt) X-33 fiasco, and the failure of Beal Aerospace[5]. Raised again when I stood on the flight line at Mojave and watched SpaceShipOne take its first space shot[6], then dashed again when that program seemed to fly into molasses. Throughout, there was the sense that the future was possible, but by no means inevitable. There was no guarantee that it would arrive in my lifetime.

But now here it is. This time it's real, this time it'll work, and nobody will have to get nailed to anything. I couldn't be happier!

1: https://en.wikipedia.org/wiki/Vandenberg_AFB_Space_Launch_Co...

2: https://en.wikipedia.org/wiki/Deke_Slayton

3: https://www.flickr.com/photos/stevefrancis/sets/721576293246...

4: https://en.wikipedia.org/wiki/McDonnell_Douglas_DC-X

5: https://en.wikipedia.org/wiki/Beal_Aerospace

6: https://en.wikipedia.org/wiki/SpaceShipOne_flight_15P

benihana 12 hours ago 3 replies      
Crazy how little actual conflagration there is. I would have expected a big fireball when that much RP-1 and LOX explodes. I mean the entire second stage's fuel exploded.

Edit: Here's a Titan 1, which was fueled with RP-1 and LOX exploding on the pad: https://www.youtube.com/watch?v=UBzigaTSPZY

transfire 13 hours ago 0 replies      
It's never going to work well until we find a way to get to space without lighting our asses on fire.
AYBABTME 13 hours ago 1 reply      
I'm very saddened at this event, it makes me worry about how future launches will go.

Will their customers agree for them to add landing legs to their future missions? Will their manned flights be delayed? How about their certification to launch for the USAF.

Also I'm not sure but, did I see the Dragon spacecraft eject?

Thorondor 11 hours ago 1 reply      
The press conference is being broadcast live now (1 PM ET). http://www.nasa.gov/multimedia/nasatv/
dEnigma 13 hours ago 0 replies      
To quote xkcd: "You will not go to space today"
adanto6840 11 hours ago 0 replies      
Press conference just started, YouTube live stream here:https://www.youtube.com/watch?v=wyMOYHiatos
satyajeet23 13 hours ago 1 reply      
SpaceX and NASA is continuing to evaluate.Live coverage: http://www.nasa.gov/multimedia/nasatv/index.html
FrankenPC 10 hours ago 1 reply      
My only question is, is the real time telemetry at a high enough resolution that the exact cause of the explosion can be ferreted out? I'm guessing yes. This is another very important learning experience. One of countless thousands on the way to reliable space launch and recovery.

My only pessimistic thought in all this is that companies like Space X simply do not have the funds necessary to keep absorbing catastrophic loss and will just give up.

vonklaus 12 hours ago 0 replies      
"Success is not final, failure is not fatal, it is the courage to continue that counts" - winston chruchill
ChuckMcM 9 hours ago 0 replies      
Bummer. Telemetry will be useful and of course. I doubt it will de-rail SpaceX.

Several interesting questions came to mind though, especially given the successful test of the Dragon 2's thrusters, which is whether or not an inflight abort could have saved the cargo. I understand that isn't practical in the general case but in the specific case of a Dragon cargo capsule, I'm wondering if they can fly one with the super draco thrusters. And have that one do the in flight abort sequence at some point in the future.

And given a rocket at mach 1+ what is the velocity of the explosion wavefront? In particular if you know that the back end of the rocket has just exploded, how many milliseconds do you have before the shockwave catches up to the front of the rocket? Could you perform a disconnect and burn of the super draco package to put the Dragon capsule far enough ahead of the shock wave to survive it?

doguozkan 13 hours ago 1 reply      
What are the implications of this for SpaceX in monetary terms? Can they just shrug this failure off?
xur17 13 hours ago 0 replies      
dordoka 13 hours ago 0 replies      
It has exploded! :(
tocs 13 hours ago 2 replies      
I think (of course just an uneducated guess) things were going poorly from the beginning. It just looked slower than usual. Also, it looked like some of the engine exhaust was in places it should not have been several seconds before the "anomaly".

I hope they get everything figured out and get back on track soon. Best wished.

thecrumb 13 hours ago 1 reply      
Bonus points if any of the debris lands on the barge!
bendtheblock 12 hours ago 1 reply      
A complete coincidence, I was just watching these worst rocket malfunctions [1] then flicked over to HN and this was #1 story.

Initial thoughts are that the main difference is now we have HD video and for some reason the controllers remain silent after the explosion... Why the silence? There used to be at least some reaction from the controllers. From an "oh no" to "obviously a major malfunction"... no sh*t Sherlock...

[1] https://www.youtube.com/watch?v=m6qJh9upqW8

whoisthemachine 13 hours ago 0 replies      
Lift-off looked normal, seemed like things were going fine. Personally, I noticed a darker piece of material fly off the rocket, and then disintegration. Will be interesting to hear the reason/root cause.
vonklaus 15 hours ago 1 reply      
>The seventh cargo resupply mission of Dragon to the ISS, also carrying the first International Docking Adapter in the trunk of Dragon, for use in Commercial Crew missions.

Are they looking to relight and land today? They usually do for geo or ISS missions.

LesZedCB 13 hours ago 1 reply      
Does anybody have a way to watch the video again? I'm curious to watch it again now that I know what happened. I haven't watched many launches before so I didn't know if what was happening was routine or not. Though, admittedly, it was weird that one second there was a rocket, then the next there was only debris...

edit: https://www.youtube.com/watch?v=ZeiBFtkrZEw&t=23m38s Thanks xur17!

filvdg 13 hours ago 0 replies      
It looked like the exhaust fumes changed patern and than everything desintegrated ... maybe it autodistructed ... it did not look like it changed direction or anything before the explosion
MichaelMoser123 13 hours ago 3 replies      
Good that nobody was hurt.

that reminds me that Elon Musk said that Antares rockets are junk, so now his own spacecrafts are exploding. Space tech has its problems. Maybe that will teach him to be a bit more humble.


scolson 13 hours ago 0 replies      
I was wondering what happened. This was my first time watching the live stream so I wasn't sure if that was normal or not.

Edit: They just called it, they had an "anomaly."

JackWebbHeller 13 hours ago 5 replies      
So what's going to happen to the astronauts aboard the ISS - this was a resupply mission. How much longer can they stay up there with their current supplies?
mkempe 15 hours ago 2 replies      
nothrabannosir 13 hours ago 2 replies      
did it just explode???
ColinWright 13 hours ago 2 replies      
Oh. Crap.

Space really is hard.

binoyxj 13 hours ago 2 replies      
BREAKING: "The range confirmed that the vehicle has broken up. @SpaceX is putting together their anomaly team."
neals 13 hours ago 0 replies      
Awkwards silence on the livestream... RIP Falcon 9. Still happy birthday Elon, I guess ?
noobie 10 hours ago 0 replies      
RIP Jebediah Kerman.
calin2k 13 hours ago 1 reply      
"Non nominal flight"
ekianjo 13 hours ago 0 replies      
Gone, baby Gone. Too bad... :(
thomasrossi 13 hours ago 0 replies      
I remember as a kid playing buzz aldrin's race into space I was fascinated by the exploding rockets. Now that I better realize the cost, no more fascinated. Trial and error has its costs
waterlesscloud 15 hours ago 2 replies      
Wait, is the banner on SpaceX's YouTube channel really the terraforming of Mars?


jacquesm 13 hours ago 0 replies      
Man that sucks... At least it wasn't a manned flight yet.
cosmolev 13 hours ago 0 replies      
Happy birthday Elon! We know you'll do it eventually.
satai 11 hours ago 0 replies      
AFAIK only three launch vehicles have better count of starts before the first big acident: Space Shuttle, Soyuz and Delta II.
mabbo 13 hours ago 2 replies      
As the ship exploded, the words on the screen were something to the tune of "At this point, the ship is under the highest aerodynamic pressure".
satyajeet23 12 hours ago 0 replies      
Elon Musk Tweeted:There was an overpressure event in the upper stage liquid oxygen tank. Data suggests counterintuitive cause.
transfire 13 hours ago 2 replies      
I sat here watching it go up and thought "please don't blow up. please don't blow up." I should have stayed in bed. Sorry all.
Sami_Lehtinen 13 hours ago 0 replies      
Isn't 180 seconds just the burn time of first stage? So it's when 2nd stage should fire?
sidcool 12 hours ago 0 replies      
I feel very sad. This is second in a row. The guys up there are short on supplies...
logingone 12 hours ago 1 reply      
Why don't they eject the cargo as they've tested for crew?
DanielBMarkham 13 hours ago 0 replies      
Meta: From many years of watching various rockets explode, I believe the correct euphemism is "catastrophic departure from controlled flight conditions"
knrdev 13 hours ago 0 replies      
First time i watch SpaceX launch. Rocket explodes. Disappointed.
dantheman 13 hours ago 1 reply      
I love watching as many launches as I can it's great!
32faction 12 hours ago 0 replies      
gif of explosion: http://imgur.com/SYwUIbI
tocs 13 hours ago 0 replies      
Hate to see it also. It think things were going bad right from the beginning though (a completely uneducated guess).
brodo 13 hours ago 2 replies      
Has anyone got a video recording?
bingobob 12 hours ago 0 replies      
Poor Microsoft HoloLens
sabertoothed 13 hours ago 0 replies      
so sad
facetube 13 hours ago 0 replies      
Holy shit.
stox 12 hours ago 0 replies      
So honey, how was the launch today?

We had a blast!

cwt137 13 hours ago 0 replies      
did it just blow up?
cwt137 13 hours ago 0 replies      
End of the live broadcast
kjson 12 hours ago 0 replies      
it blowd up
jpetersonmn 11 hours ago 0 replies      
How many teslas started on fire? How many of them were not modified by their owners? How many have they sold in total?
jedikv 8 hours ago 0 replies      
SpaceX - making the world's most expensive bottle rockets
Ask HN: Who's looking for a cofounder?
73 points by philippnagel  4 hours ago   65 comments top 36
SeanAnderson 2 hours ago 2 replies      
Hey everyone,

I develop Streamus, https://streamus.com // https://chrome.google.com/webstore/detail/streamus/jbnkffmin...

Streamus is a browser extension alternative to Spotify powered by YouTube. I have been developing the software for ~3 years and it currently has 300K active users. I'm interested in working towards a first round of funding after having misc. angels express interest in the past.

I live in San Luis Obispo, CA (smack dab in the middle between LA and SF).

I'm mostly looking for another developer fluent in JavaScript to aid in development. Bonus points for having a business/start-up background.

I'd like to think I bring a lot to the table. I'm currently coasting on savings while working on Streamus full-time, unpaid. I contract ~12hrs/wk to cover bare necessities. I have 4 yrs xp as lead developer of a small software company and am an active contributor to Backbone.Marionette, one of the leading open-source JavaScript frameworks. My efforts on Streamus are well known on Reddit with my latest marketing efforts resulting in the #4 post of all time in r/music, http://www.reddit.com/r/Music/comments/2sypcn/seven_months_a.... My efforts have also been featured on TechCrunch, LifeHacker, TheNextWeb, Product Hunt (twice), and many other tech. blogs. I've declined a potential position at YouTube Music in order to pursue this project further.

Feel free to hit me up at admin@streamus.com for any business inquiries, or if you just want to chat and learn more about the product. :)


benjismith 1 hour ago 1 reply      
I'm the founder of Shaxpir, a word-processor in the cloud for fiction authors. I have a software engineering background, so I build the MVP myself. After two years of prototyping, I just launched the beta 2 months ago, and by now there are about 100 people using the beta. It's a desktop app built with web technologies (like Slack or Atom) and a Java backend on AWS with Elasticsearch.

Anyhow, I'm getting ready to start raising money in a few months, after the beta ends and we launch the product publicly. I've already recruited two co-founders, but I'm looking for a VP of Engineering. I'm based in Portland, OR, so somebody in the PNW would be ideal.

Here's a teaser video introducing the product:


And the product website is here:


You can email at benji@shaxpir.com if you're interested.

throwaway84557 10 minutes ago 0 replies      
I'm a technical founder building an easy way for consumers to seek justice against the large corporations we are forced to deal with every day (Comcast, Verizon, Bank of America) via small claims.

I'm seeking a legal cofounder to shape the product to be compliant and effective.

Currently building prototype. Email throwaway84557@gmail.com

jordigh 4 hours ago 2 replies      
Okay, I'll bite...

I'm looking for a cofounder for a small business deal. I want to sell GNU Octave. Something like what the Julia folks are doing[1]. I do not foresee this will be a startup, not a build once, sell infinitely often kind of deal (I don't consider what the Julia people are doing is a startup either). We are in all probability not going to become millionaires. But hopefully we will be doing good in the world and we will find a way to fund others who are. Matlab is huge, and while Julia and Python chip around the edges of its market dominance, we need something like Octave that can take it head-on and be a drop-in replacement.

I do mathematics and programming. I know GNU Octave well, and I also know its community. I don't know how to do market research, advertising, how to negotiate contracts, or how to look for funding. If you think you could help me, contact me at jordigh@octave.org

[1] https://news.ycombinator.com/item?id=9516298

viksit 1 hour ago 0 replies      
I've built a working prototype of an intelligent system that can act as a virtual assistant for a narrow set of tasks. Think what clara labs or magic try to do - they are partly human and partly automated. Here's my earlier post [1] with more details. I'm looking for a cofounder with,

* A CS background (algorithms/ml)

* (Some) experience in implementing machine learning systems

* (Some) experience in low latency web services

* Generalist coding skills

In case you're into product stuff - lets chat as well!

[1] https://news.ycombinator.com/item?id=9565645

mozumder 1 hour ago 0 replies      
I have a fashion-media startup called FutureClaw - it's both a print magazine and a website - that I bootstrapped and work on part-time over the last several years:



We've been featured in E!, Vanity Fair, Style.com, etc.

I do all aspects of the business myself, including graphic design, editing, writing, publicity, as well as full-stack web development in Django.

I also deal with hundreds/thousands of the worlds top fashion brands, creatives, publicists, etc., that I've carefully built relationships with over the years.

I'm looking for people that would like to create the next top fashion media brand. I'm open to ideas and also have a lot of original ideas in this space, from basic web-tech, to high-end e-commerce, advertising, photography, and more. All this could be based on what I've done and the relationships I've built.

These brand relationships are so important. I've seen so many fashion startups go under because they don't have work with the top brands or creative people, or are just out-of-touch stylistically and don't know the market.

Anyways my background is here: https://www.linkedin.com/in/mozumder

I'm in the Washington, DC area if you want to meet. You can contact me at: info@futureclaw.com

mdaniel 3 hours ago 0 replies      
I hope we can get this monthly topic added to the "whoishiring" posting routine. Or perhaps this will surface where other's have had success finding matches, provided it doesn't get crushed by the Monday news cycle.
cdolan92 3 hours ago 0 replies      
Putting my 2 cents in - I think this is a really cool idea. While I'm not actively looking for a co-founder I'd love to read a regular post and see if I could lend a hand to a new project.
thebaer 2 hours ago 0 replies      
I'm a technical founder (full stack + Android), currently bootstrapping a no sign-up, private/anonymous blogging platform. I've got the architecture and apps built out and in "beta," so the last step is building out optional user accounts and the premium features to go along with it.

I'm looking for someone primarily with business/marketing experience who's done this before, or someone technical who knows security and/or iOS. But above all, I need someone who believes in developing more privacy-focused tech. I'm trying to build a long-term business, and this product is just the start of a bigger picture I have in mind.

I'm based out of Jacksonville, FL, but location shouldn't matter. My email is matt@write.as.

jorkos 1 hour ago 0 replies      
I'm a somewhat technical founder currently bootstrapping an elearning startup - Tapfun. Although I have a biz dev / marketing background, I wanted to be able to contribute on the product so I rolled up my sleeves and built all of our iOS apps to date. I grew up with computers but was never deeply technical (just building websites for extra income).

We have over 1M downloads on iPad and everyday tens of thousands of young students use our apps. Recently I hired some contractors to help build the next gen of our products with a proper backend. We have our first school client for the platform and they are rolling out an app for all of their grade 1 students using this technology (in place: contract iOS dev, backend, front end).

I've realized that I really need a technical partner so that I can trust someone to really own the technical side of the business and I will focus on raising a seed round and growing the customer base. I'm planning to move from Toronto to the US in the fall (either NYC or San Fran) depending on how my accelerator applications go.

Even though i've been at this for 3+ years i'm open to bringing in a cofounder. Seeking full stack expertise (bonus points for ML experience) with a desire to make a huge impact in the learning space. Drop me a line (email in profile) to chat about how education will change in the future.

neya 41 minutes ago 0 replies      
Hi all,I'm a full stack developer who is also proficient in electronics (Arduino, Raspberry Pi, IoT). I've been building stuff for other people all these years and would like to build something on my own. I'm currently based in Singapore. Email: d3signerd [at] gmail.com
threefour 1 hour ago 0 replies      
We're building a 'TurboTax for personal financial plans.' Think LearnVest but automated instead of using human financial advisors. http://www.nickelhq.com

I'm a product designer and my co-founder is a certified financial planner. We're using lean startup and as of our eighth prototype I've maxed out my programming skills. We're looking for a technical co-founder to join us.

Contact me at victor (at) nickelhq.com

marekf 1 hour ago 0 replies      
What: classic online games (chess, bridge etc.)


http://www.kurnik.pl/ in Polish)

Location: Warsaw, Poland

Stage: self-funded, profitable

Who: full-stack developer with strong html5/hybrid apps skills; obsessive about design, minimalism, ux

More info in Polish: http://www.kurnik.pl/misc/ninja/

overload119 1 hour ago 0 replies      
I'm building an online community of rappers, lyricists, and producers to write and share rap songs, collaborate, learn how to freestyle, improve their craft, etc.

Tech + creative tools (natural language processing, lyrical analysis, etc.) + community = best place to get better at making hip hop.


This is a side project for me, but it's been going pretty well recently and I've gotten excited about it. I'm looking for anyone that would like to help.

It is built with Rails.

meesterdude 1 hour ago 0 replies      
I am not "actively" seeking a co-founder, but if the right person comes a long and we're in sync on the right things, i'm open to the idea. But I don't mind DIY either.

working on: The rebolder, an online social news site with a focus on donating to charities and providing an experience worth paying for in itself. There are no upvotes/downvotes but instead voteable tags, signup requires donation to charity, enchanced paid posting options and VIP accounts with more vote weight.

Stack: Rails + Postgres + ES

I live in Philadelphia.

Who I'm looking for: deeply ethical pragmatist and social capitalist, willing to make a living serving a public good on multiple fronts, not a build & flip. Interest in news and newspapers and associated history. Absolute unwavering loyalty to the users and their best interests.

What I bring to the table: everything that's not financials or legal, more or less.

Stage: mostly designed and built, a few integrations and tweaks to go.

Contact: r.rebolderco@ruru.name

no1youknowz 59 minutes ago 0 replies      
Disclaimer: I'm in the adult industry.

Not looking for a co-founder. But looking for someone who can help with a current project with ML (Machine Learning).

My company is in the ad space. I built the platform which is a mix of an ad server, tracking platform and email system with the data sharable among all pillars.

We buy traffic globally on a monthly basis and are able to generate our own banners, landing pages and email templates.

Through that inventory, we can spin any text and images for multi-variate testing. In addition, we can capture things like referrer, category, geo-location, mobile carrier/isp, device meta (30 data points), time spent on page, funnel activity and come out with many many data points for reporting to see what works and what doesn't.

I am looking for someone to help with the ML aspect. To analyse the data and optimise campaigns automatically, that is change the headline, call to action, hero image for the banner/landing page/offer page and also decide what is working and what not working across campaigns, pages, offers, images, text, etc. Potentially there is a lot of data to pour over.

In addition, I'd love to start figuring out how to analyse and catelog images in our repository. To give them scores and work out if certain images rank higher than others for certain categories.

Where I would want to get to. Is to get higher conversions for what we are selling when a user clicks a banner and lands on a specific sales page. Depending on the origin, the ML bot would test the best converting headline, copy, image for conversion and eventually have a winner.

If you want to talk more, hit me up on my username @gmail.com.


jonathanjaeger 2 hours ago 0 replies      
What: HypedSound, http://www.hypedsound.com, soon to be http://www.hype.co, community where creatives can upload their media and sync their social networks to one simple, clean profile to showcase to their audience. Currently have API integrations with Facebook, Twitter, SoundCloud, YouTube, Instagram, and tumblr. Example: http://www.hypedsound.com/hypedsound

Stage: Self-funded, bootstrapping

Where: NYC, but willing to talk to people elsewhere

Who: Django developer who wants to help take the site and community to the next level. I'm the only person in the company, I work with freelancers, so I can offer very fair equity and possible stipend/contract work to start.

Contact: jonathan@hypedsound.com

dnautics 2 hours ago 1 reply      
I'm working on developing open source pharmaceuticals. I'm located in Oakland, CA. The stage is "on-paper only". Looking mostly for someone who is on the business end of things (referrals welcome). I've got the tech down. I am probably okay at but could use help getting media attention, and I am probably not good at: wrangling legal issues, and (most importantly) developing business relationships with commercial partners.

The plan is to enter an incubator to pilot a proof of concept and then seek seed investment. I also have a strategic plan (hires, etc) on taking the seed to a series A with MVP potential.

Requirements: Passion for the idea of expanding open source. You're also willing for the company to make 1 billion, instead of 10, but leave the world a better place. An ability to understand and communicate either biology, code, or both.

Bonus points for experience in law/IP materials.

Contact info in profile.

fidz 1 hour ago 0 replies      
An internet of things startup based on South East Asia, Indonesia. To be precise, Depok district in West Java. No funding at least for now (still struggling building the product). Currently we are creating something to easily track expedition truck. We are looking for people who understand about embedded system and ZigBee. Feel free to mail me (waza at fastmail dot jp)

Hint: ODB bus, distributed network. At the backend, we use Postgres and Rails.

jmcmahon443 3 hours ago 0 replies      
Looking For a Co-Founder


iOS game launching in December 2015. Written in Swift 2.0 with mostly SpriteKit. Team is two: graphic designer + digital musician, also both programmer.

About you: have a Mac, use XCode, have been learning Swift. Want to download the most recent El Capitan beta and XCode 7. Are excited to work on a game for iOS 9, which includes the brand new Gameplay Kit and updated SpriteKit. BONUS POINTS: Have a game on the App Store. Are an Objective C ninja. Know how to use storyboards and GameKit for social add-ins.

E-Mail me if you're interested: joe@orbert.io

Compensation: We have no budget. You will earn 33% of the profits from the game.

marknadal 3 hours ago 1 reply      
What: Open Source Firebase, http://gunDB.io/ . Realtime, graph, decentralized, javascript database.

Stage: Funded, seed stage, with Tim Draper as lead investor.

Where: SD, LA, SF, and currently: Provo, Utah.

Who: A co-founder that has an academic/technical background and industry respect in databases, and wants to do more administrative/business/Series-A/enterprise/sales/marketing side of the coin.

Offer: 20% of the company, a small "cover your needs" $60k salary to start.


dkrvt 2 hours ago 0 replies      
I have developed Nirror https://www.nirror.com/ a SaaS solution designed to support your customers on your website in real-time.

Looking for a bizdev / co-founder with experience on bootstrapping this kind of service.

The company is located in Paris, France but your location should not matter.

Contact me at tug@nirror.com

maxsavin 2 hours ago 0 replies      
I started in the design/marketing side of things and worked my way to the back-end. I created apps that you can see at http://maxsavin.com

I'm looking for a co-founder who would like to focus on back-end so I can get back to design/marketing/etc.

chroem- 1 hour ago 2 replies      
Currently working on Uber for supercomputers. Would appreciate someone who is also college-aged in the Seattle/ north Puget Sound area.

I've got a website and a working prototype. If interested, email chroem@uw.edu .

jiahen 1 hour ago 1 reply      
I'm working on vrcollab.com. We are trying to create a HTML like 3d standard and editor for virtual reality. How do you represent <table> in 3d? A 3d table.

We are located in sunny Singapore. We just got our first seed funding.

We are looking for another developer that is fluent in Javascript and interested in Webgl and WebVR. Or, Graphic (opengl) guy that is interested in bringing 3d to web.

It is an interesting project, the project will be open source (good career boost) and we got the funding! We will be providing Singapore working visa.

My email is jia@vrcollab.com

geoffw8 3 hours ago 0 replies      
I'm actually looking for a biz dev/sales type person who is familiar with the digital ad sales space/publishing space.

Location doesn't matter right now except would be great if you were in a (relevant) major city. I'm in Bali right now, Malaysia & Singapore next week, Tokyo for the rest of July.

Product is there, currently talking to people about it.

Best to get me on advgeoff@gmail.com (Intentional obfuscation)

ux-app 2 hours ago 0 replies      
I've developed https://www.ux-app.com, I'm looking for someone to partner up with who is interested in business development/marketing.

If you're a UX or Interaction Designer with an interest in business dev and marketing then I'd be keen to hear from you too.

my email is eli@ux-app.com

spiritplumber 2 hours ago 0 replies      
I kind of am. Been doing done stuff since 2009, considering taking it past "personal project" and into something bigger.

I've refused money from, among others, NASA and Google.


rottyguy 1 hour ago 0 replies      
tech guy with domain proximiny.com

interested in playing around with ideas involving mobile/local based on user location.

if you share the same interest, hit me up at lbs@proximiny.com and let's chat to see if there's a match

located in nyc


dopeboy 3 hours ago 0 replies      
If you're interested in fashion & tech and based out of NYC, hit me up - arithmetic@gmail.com
Aloha 1 hour ago 0 replies      
I'm looking for a technical co-founder for a geolocation app.
morgante 2 hours ago 0 replies      
Looking for: a domain expert with a great idea they want help on executing

Me: a full stack developer with some startup & business experience

Why: I have savings and a drive to launch a startup, but no good ideas

Where: NYC currently

Contact: me@morgante.net

logicallee 3 hours ago 4 replies      
I am toying with the idea of "startup as a service" meaning taking care of anything that is on a startup checklist. That is, taking care of things like incorporation, hosting, even tiny amounts of seed money (a few hundred dollars) so that in this case rather than hitting up family, a 19 year old founder can fail fast anywhere in the world by just building and trying to get traction on our "startup as a service" platform. In other words, making it absolutely, positively, free to start a startup and start getting customers. (With ourselves as investors if it starts getting traction, or, of course, they are free to move off of our platform if they want.)

The idea is that nothing should come between a founder and the idea/MVP. Nothing. my ideal cofounder would have considerable experience with legalities, experienced regarding terms (since it's our model), and potentially on board for this as a future source of dealflow (i.e. someone who wants a source of investments personally would be a match as well.). hit me up if you'd like to have this conversation.

Things that scale to 10,000 founders:

-> Incorporation process with standardized terms

-> Docker containers with hosting (that we host) that we can look into and judge actual traction (to keep founders from wasting any time whatsoever on a seed round, no matter how disconnected they might be - traction unlocks it automatically, they should just build, build, build)

-> collective service agreements on behalf of all our founders, so that we can take care of service integrations. For example giving all our founders stripe integration so they can start billing for whatever they put up.

-> Basically everything that can be taken off of a startup checklist, when someone is first starting out and doesn't want to be distracted for weeks with business and service arrangements that are not about building product!

-> Streamlining a PR process by having key contacts get a steady stream of stories of traction by our founders.

davyjones 2 hours ago 1 reply      
Looking for a co-founder who has a strong ML background for SaaS business in retail/brick'n'mortar space.
moron4hire 2 hours ago 0 replies      
Primrose Editor is a syntax-highlighting text editor component for virtual reality applications built in web browsers. Very soon, it will be a framework for creating applications and games in WebVR:

I have also developed haptic devices for use with VR applications.

We will pitch consulting services in VR to universities, hospitals, retail spaces, reception halls, etc., to continue to build out the framework. The framework will be the core technology to games and applications we create.

I'm looking for help with biz dev, marketing, sales, systems ops, and software development.

Contact me through my HN profile.

andy 2 hours ago 0 replies      
I'd like to build a competitor to Betterment. I'm looking for someone to help me follow the steps to becoming a brokerage, find funding, and to build the app and website and tools needed. I found this http://www.investopedia.com/professionals/faqs/general/21010... I have the domain greenrobot.com and an LLC. My email is andy at greenrobot.com
The Emily Programming Language
3 points by Strikingwolf  38 minutes ago   discuss
Ask HN: What do you think of the anti-CSS debate?
3 points by donjh  39 minutes ago   3 comments top 3
jdeisenberg 6 minutes ago 0 replies      
Random thoughts: As far as I understand it, CSS is declarative. JavaScript, not so much. The declarative aspect of CSS is nice; you just specify what you want and CSS handles everything else for you.

I am also idly wondering how this would all work out in "HTML and CSS as s-expressions" la ablono https://github.com/r0man/sablono

vezzy-fnord 23 minutes ago 0 replies      
Ironically enough, Netscape proposed a JavaScript Style Sheets specification back in 1996 to replace CSS, but was rejected for being too complicated: https://en.wikipedia.org/wiki/JavaScript_Style_Sheets
helpmeimpoor 15 minutes ago 0 replies      
I hope html and css bending become one language is there any language like that to make a webpage?
Ask HN: I need to transfer 10TB of Data across Pacific
4 points by stkim1  3 hours ago   14 comments top 11
cat9 1 hour ago 1 reply      
The best solution depends entirely on your optimization conditions.

If transaction time is important, hard drives are high bandwidth. Ten 1TB hard drives are $500. Two 6TB hard drives are also $500, but you have fewer drives to worry about shipping. Five 2TB hard drives are about $370, if drive price is more important. Using ten 1TB drives is only best if we're optimizing for load / unload time and have that degree of parallelism in the pipeline. Otherwise, one of the other two will be better, depending on price sensitivity vs. other factors.

If it's not as time-sensitive, something like BitTorrent Sync will get the job done. This doesn't require shipments, additional hardware, or mucking about with hardware at either end, so it's very nice if "get it there ASAP" isn't a constraint.

Regardless, don't ship the only copy.

laurencerowe 1 hour ago 0 replies      
With long ping times you want to split your upload into many parallel parts so the odd dropped packet doesn't bring things to a halt. Then it just depends on your bandwidth.

We were able to saturate the gigabit nic on an ec2 instance in Ireland uploading to S3 in Oregon. At that rate a 10TB will take a little over a day.

toast0 1 hour ago 0 replies      
Two 6 TB or three 4 TB is probably a better choice than ten 1 TB. Although you may want to have an extra disk so one could totally fail in transit; so maybe six 2 TB. Build a big parity archive (par2 or similar) first. If you have 1gbps end to end, it would take most of a day (make sure you have big TCP windows
gesman 2 hours ago 0 replies      
5 x 2TB HD's bought at Costco + shipping charges.

Total cost: <$1k

Rather small package."Upload" time <10 days.

bogrollben 1 hour ago 1 reply      
Mail it to me at the hacker house in Kansas City. We do uploads for people all the time using Google Fiber. Probably take a few hours (YMMV). Google Homes for Hackers. My cell is right there on the site.
dgomesbr 2 hours ago 0 replies      
Bit torrent it to the other side of the pacific. With a 35mbps connection will take like a month.
meat_fist 2 hours ago 0 replies      
Mail a HD.
001sky 2 hours ago 0 replies      
FedEx or similar
deskinner 2 hours ago 0 replies      
Ask HN: What books should I read as a software manager?
14 points by mmelih  6 hours ago   14 comments top 11
jseliger 5 hours ago 0 replies      
frostmatthew 6 hours ago 2 replies      
The Mythical Man-Month by Frederick Brooks
lsiebert 42 minutes ago 0 replies      
Dreaming in Code is work a read.
loumf 6 hours ago 0 replies      
Peopleware by DeMarco and Lister
jrs235 3 hours ago 1 reply      
ahp 5 hours ago 0 replies      
Eric Raymond, "The Cathedral and the Bazaar." On face, it's largely about FOSS development; but, more so, it's about how one ought to go about thinking of solutions to technical problems. A phenomenal read.
MichaelCrawford 6 hours ago 0 replies      
John Lakos, Large Scale C++ Software Design. Read it even if you dont do C++ as the most valuable parts apply to any language.

Anything by Watts Humphrey.

Elliot Aronson, The Social Animal

Eric Berne MD, Games People Play

GeoffreyP 4 hours ago 0 replies      
Also check out manager-tools.com. The basics podcasts are invaluable to keeping sanity as a manager.
robindoran 5 hours ago 0 replies      
Getting Things Done - David Allen.

I read it when I had a team your size.

streblo 5 hours ago 0 replies      
High Output Management by Andy Grove
kylebennett 6 hours ago 0 replies      
Management 3.0 by Jurgen Appelo.
Taiwan dust explosion injures 500 vs. Mythbusters Creamer Powder Explosion
5 points by stefap2  3 hours ago   2 comments top 2
PaulHoule 2 hours ago 0 replies      
Dust explosions are like a fuel-air bomb in that the energy yield per pound is greatly improved by the use of oxidizer from the air.

They've gotten away with this so far because it is pretty hard to ignite that kind of powder. You've got to get a pretty good area (a foot cubic or so) of dust to the boiling point before a self-sustaining reaction is at all assured. A match won't do it, and not static electricity (much safer than flash powder), think of a small campfire.

socceroos 2 hours ago 0 replies      
I feel for those caught up in it. But boy, oh boy, did it look like a scene from Hell!
Ask HN: Any devs/hackers in Bogota?
2 points by bischofs  2 hours ago   1 comment top
scardine 2 hours ago 0 replies      
I'm not in Colombia but I will pay you some coffee if you ever visit Sao Paulo in Brazil.
Ask HN: What's the best way to quickly get up to speed on Java?
4 points by Kapura  5 hours ago   1 comment top
hkailahi 24 minutes ago 0 replies      
Refresh on the syntax, read up on some Java specific stuff ( like geeksforgeeks.org/Java), and check out "Effective Java" - http://uet.vnu.edu.vn/~chauttm/e-books/java/Effective.Java.2... . Seems long, but it actually reads pretty well.

Also, check out the Google Java style guide. It's a nice point-of-reference, but don't get too hung up on their conventions.

That's pretty generic advice. There is probably a better resource specific to what you'll be doing.

EDIT: I'm still just a college student, but I have done a few Java-based internships. My advice probably won't be all that helpful if your senior developer, or doing some super low-level stuff.

Ask HN: Is it necessary to operate from the USA to succeed?
9 points by gotzephyr  8 hours ago   11 comments top 8
seaneking 53 minutes ago 1 reply      
Depends how you define success. Can't beat Silicon Valley for investment opportunity, but by the same token as others have said its not all about getting funded as fast and highly as possible. If you can reach your customers from where you are then you can grow from where you are. Take for eg: Aus/NZ (where I'm operating), certainly not renowned for VC activity, yet has it's share of very successful startups (Xero, Canva, Atlassian, etc.)
dangrossman 8 hours ago 0 replies      
Outside investors are not a requirement to start or operate a successful business. The only things you need to create "Scotland's Slack" are a computer, an internet connection and a $5 VPS.
charlesdm 4 hours ago 0 replies      
Customers matter more than investors. Some people forget business is about creating things that create value for customers, and not about trying to raise capital from investors.

1. There is a ton of capital in Europe. It's just harder to access for the average 20 year old, and investors tend to be a bit more conservative. It's all about building relationships and about your network. Europe has many family offices that invest directly into the top US venture funds (i.e. Sequoia)

2. If you're doing something in FinTech, go to London or NYC. If you're doing something in fashion, London/Paris/NYC/Milan. Oil & Gas? The UAE, Texas, etc. Anyway, you get the point. Go where the customer is.

Flipping an app however, is harder. Maybe that's not such a bad thing.

syllogism 6 hours ago 0 replies      
Moving to another country ain't easy.

I decided to move from Sydney to Berlin when I decided to do a start-up. I did it because I like it here, cost of living is lower, there's a scene, and it will be much easier to hire for reasonable prices than it would be in Sydney.

But...It's been a pretty massive saga, full of uncertainties.

Does the US even offer a visa category that applies to you? Immigration uncertainty is really bad to have hanging over you. At the end of the day, the company resides where the M.D. resides...So if you have to leave the U.S., I believe exit taxes will becomes due. My understanding is that means you'll owe 20-30% of the value of the company, without necessarily any liquidity associated.

scardine 2 hours ago 0 replies      
It is the same difference from starting a Soccer team in Spain or in Japan. In Spain you have the whole ecosystem in place, the same happens in Silicon Valley. That is why most of the world's best Soccer professionals are in Spain.

It is not impossible for a Japanese team to win the world's soccer championship, but to this day, only teams from Europe or South America won.

staunch 4 hours ago 1 reply      
1. You definitely do not have to be in Silicon Valley to create a hugely successful startup.

2. Silicon Valley startups have a number of unique advantages that are sometimes critically important.

indoindo 7 hours ago 0 replies      
Of course, Yes. Venture capital industry has more growth in the USA and they have many Tech Investors.

more preferable place is NYC or SF where many tech companies out there. SV is expansive place to living in i guess.

but i strongly recommended if you clone slack for your countryeven if you live in USAGood luck!

nphyte 6 hours ago 0 replies      
focus on the business and customers more than the investors or your lack of being in a hub
Ask HN: How big does an open-source project need to be for a lifestyle business?
193 points by jnbiche  1 day ago   111 comments top 31
ledlauzis 1 day ago 3 replies      
You can turn everything into a business as long as you have a reasonable business plan in place and know that users are willing to pay for some extra features or service.

Story time: 2 years ago I started to learn frontend web development from various online courses. I had zero technical background and no intention to make money. Within few months I learned enough to create my first WordPress theme. It was terrible but it worked . I made few more themes and never did anything with them. I made like 6 themes and just deleted theme few months down the road. Then I decided to submit one theme on WordPress.org just to see if it gets approved. Themes goes through review and someone would evaluate my code and that's what I was after. Long story short my themes now have been downloaded over 1,000,000 times and I have turned it into 6 figure a year business.

While I haven't sold a single theme yet, apparently you can recommend hosting and premium plugins that goes along with your themes and make a decent income.

For those interested you can visit site at: https://colorlib.com/

gavinballard 1 day ago 3 replies      
Mike Perham has done a great job of turning two successful open source projects (Sidekiq and Inspeqtor) into successful businesses.

If you're interested, I recommend listening to his interviews on the ChangeLog Podcast (https://changelog.com/159/, https://changelog.com/130/, https://changelog.com/92/) where he talks about how he monetised those products.

I'm pretty sure that succeeding in this is not going to be a matter of how many "stars" your project has, but rather a function of the dollar value of the problem your software solves and how well you market the paid product. You should start that marketing now by providing a link to your project :).

josscrowcroft 1 day ago 6 replies      
I created Open Exchange Rates[0] as an open source project four years ago, publishing free currency data into a GitHub repository.

It was launched alongside money.js[1] (a minimal JavaScript currency conversion library), designed to work seamlessly together and both found a brilliant response and grew an organic community.

Hundreds of tutorials and thousands of posts and mentions later, GitHub eventually contacted me and politely asked me to take down the exchange rates repository, because they were being hammered by people requesting the data - only at this point did it occur to me that I'd created something of genuine value, and (6 months of fretting and tail-chasing later) I opened up a paid option.

For me the key thing was: I never intended to create a business. It was (and is) a labour of love. We've since grown to be the industry-leader for our area - "good enough data" for the startup and SME market - and count Etsy, KickStarter, WordPress and Lonely Planet among our clients.

Although it's no longer truly open source, 98% of our users are still on the Free plan, which will very soon be expanding to include all features (so, no more limiting by price tiers) - this is how I still feel so passionate about it.

I can't wait to publish the next steps in our journey - where we're opening everything up to the community and marketplace. I don't like where the industry is heading (competitive, closed, secretive) and we've chosen to move towards transparency and sharing.

I like businesses built on a core of open source community, because they're in service to the people who are actually building the products, rather than those in the traditional 'upper levels'. This means there's really no "sales process" (which I'm massively allergic to) - apart from the occasional grilling from the accounting department, who may find it hard to trust a business based on open source principles.

Good luck!

[0] https://openexchangerates.org

[1] https://github.com/openexchangerates/money.js

fragmede 1 day ago 1 reply      
Yeah, so looking at the GitHub Cabal's secret price list, 25,000 GH stars will put you at $102k / yr, so shoot for that.

Seriously though, the fact that you're asking about GitHub stars is... telling. There's plenty of popular repo's on GitHub that I'd refuse to pay any money to, but more to the point, GitHub is a terrible customer experience because it's not for selling software to people, thus the only thing 'GH stars' tells us is... the number of people that have starred a particular repo.

For a purely open-source project, look at OpenSSL. It's probably in production in a significant amount of the entire internet. But until Heartbleed came along and it came to light that the OpenSSL project was severely underfunded, it was limping along with little sponsorship.

Red Hat is probably the most famous open source business, but unfortunately, if you look at their practices, they're abiding by the letter of the GPL, but not entirely the spirit, which they've decided is necessary from a business perspective, so if you're looking to make a lifestyle business based on your open-source project, the question to you is: how comfortable would you be with a lifestyle business based on an entirely proprietary project?

Is this a pipe dream? Chances are, yeah. But do dreams come true? Sometimes :)

andrea_s 1 day ago 0 replies      
Making money with software is not very correlated with said software's quality - or popularity. I think yours is an unanswerable question, you should probably start from the other side of the equation (i.e. what's the target marget? who would be willing to pay for the software? and, given that we are talking about open source, what would you sell - and to whom - to beat the possibility to just use it? What would the licensing options for commercial usage look like?).
joepie91_ 1 day ago 2 replies      
Here comes the unpopular opinion: I don't like open-source projects being "turned into a business" at all. Something's always gotta give.

* Paid support: you now have an incentive against improving the documentation. Conflict of interest.

* Selling binary builds: your software can no longer be easily recommended and shared by others.

* "Premium features": I'd rather call this 'crippleware'. You're intentionally crippling the 'community version' to give people an incentive to pay you money. That's certainly not in the spirit of open-source.

Frankly, I don't feel software is a thing that should be sold at all. You're always going to be intentionally (and artificially) restricting something to make that business model work - after all, software is infinitely reproducible at effectively zero cost.

Instead, if you absolutely must make a business out of it, offer something like a hosted service (that people can easily replicate themselves, in the spirit of open-source). That way you add something to be sold, rather than taking something from the existing project and asking money for it.

The better option is to accept donations, and put some serious effort into getting those going. I don't really understand why people will spend weeks drawing up a business plan, but for donations they just slap a 'donate' link in the footer of the page without thinking, and then complain after a few months that they're barely getting any donations. Accepting donations requires the same amount of thought to make it work.

EDIT: No bulletpoint lists on HN? :|

karterk 1 day ago 1 reply      
You would never know unless you started exploring. Stars have nothing to do with revenue - it's purely a function of how much value you can add to the enterprise. Basically, you have to demonstrate quantitatively that you can charge $X to help them save $Y where Y >> X.

Here's what I would suggest. Reach out to a few people from these organizations and ask them for their general views on your project and what their major pain points are. I'm sure they will be more than happy to talk to you about it if they're indeed already deriving great value from it. Once you have established a good rapport (i.e. warming up the lead), set-up a call with them to pitch your vision for the paid product. A call is crucial because email and text can only communicate so much - you can get a far better idea of their domain and problems through a quick 45 min call. Scheduling this should not be a major problem once you have established a good email channel previously.

If you can get about 8-10 people interested in exploring your paid offering you have something that's promising. After that you can think about scaling the business with self-service etc.

gizmo 1 day ago 3 replies      
It's completely feasible, but you're playing on hard mode when you keep the software open source. If you've got good business sense and are willing to hustle you'll find a way to succeed. If your only strong suit is software, however, you're setting yourself up for failure.

Would you rather make $300k a year writing and selling proprietary software or fail/make $20k a year providing value-added services for an open-source project? This isn't a tough choice for me, but for some people the ideal of open source trumps all.

It's much easier to write software that fits a simple business model, than to figure out how to shoehorn a business model onto an open source project. You can tell which route is the pragmatic one: start from scratch, optimize for easy monetization.

That said, don't let any of this discourage you. It's absolutely possible to create a cool lifestyle business based on an open source project (or anything really). The only way to know if you can do this is to seriously commit to it. If you don't have to support a family it's probably a risk you can take.

chrismartin 1 day ago 0 replies      
Sell your expertise as an integration/support engineer to companies who want to use your project but don't want to dedicate the internal staff time to become experts on same.

Every company that emails you asking you for help is a sales lead. "I'm happy to implement/configure this for you. I charge $X per hour, and what you're asking for is about Y hours of labor." To the client, X*Y is often cheaper than the opportunity cost of pulling an engineer away from other work. Also, don't be afraid to make X >> $100 if nobody else offers the same expertise.

You can do as much of this as you want, without changing anything about how the software is licensed or packaged.

jmadsen 1 day ago 1 reply      
There are a few podcasts that have discussed this. Typically it is done via support for existing OSS, offered to companies who need to be able to depend on full knowledge & stability of that code. A couple of examples:

1) Redhat

2) "some guy" from one of the podcasts I can't think of at the moment who forks Ruby and keeps a stable, supported version for his corporate clients, while dealing with patches & upgrades on his own to his fork

In both of these cases, you can see that is isn't actually "how many users", but "how many corporate users who need a service that keeps software X completely stable and managed"

So I think from what you've said that it would be a good thing to look into. You may want to contact the guys from http://www.tropicalmba.com/ for a few pointers - this is right up their ally and they are very willing to discuss

rushabh 1 day ago 0 replies      
I manage a small open source project (https://github.com/frappe/erpnext) that churns 100+k per year and helps me manage a small team. It took me 4-5 years to reach here. We make money by providing hosting and also help to other developers working on our platform.

I would start with a services plan and a beautiful website. If you are not a designer, do hire one. Good design and quality can go a very long way towards achieving your dream.

If your project is an app, you can also go the SAAS (softare-as-a-service) way. But beware, building a multi-tenant platform, and working on user onboarding, marketing your site can be 2x to 3x of your original project your project.

The good thing is that once you are there, 1/2 years is a reasonable time, this will only grow.

sytse 1 day ago 0 replies      
It is less about how many stars you have an more about how many enterprises use your software. GitLab has 15k stars on GitHub (we moved the canonical source to GitLab itself a while ago) and more than 100k organizations are using it. But most of our income is coming from larger enterprises in the United States. It you can offer them extra features and market it properly you can expect something like 1% of your users to sign up for a paid plan. Please let me know if you have any questions.
bestan 1 day ago 0 replies      
Yes, it is definitely realistic. We've seen several projects like Sidekiq (http://sidekiq.org/) that did it.

Another quantitative indicator you can use is number of downloads on relevant package manager (npm, PyPi etc.). These indicators only tell you how big your audience is and not whether your project could provide income. However, having big audience increase chances of success - you have a good position here.

Check out MinoHubs (https://www.minohubs.com). We provide tools that will help you get started with monetizing your project in several ways very quickly. Let us know if you have any questions or if you're missing anything.

jakejake 1 day ago 0 replies      
I have had a few open source projects with around 250k installs (web apps and Wordpress plugins). One of them I was able to monetize for about $1k per month. I was getting inundated with support requests so finally I created a "product" by putting up a "buy now" button for $250 installation support. I then ran some google ads to promote it. This was an encryption product so it had business users.

If you make it easy for people to give you money and you have a useful product then there usually will be a small percentage of users who will pay. But I'm a firm believer that to make money you have to put effort into sales.

dschiptsov 1 day ago 0 replies      
There is no sustainable way to monetize an open source project, except to offer a "premium" service (which, unless you are comparable to Redhat by market cap will probably unprofitable - I think Orable is losing money on MySQL) or you offer closed source "enterprises" version, like so many do, but it must be an exceptional tool, like nginx, varnish or nessus.

So I am very sceptical about monetization of community-driven momentum (the moment you close the code it begins to stagnate and die). Unless you are leader in your niche the chances for earning living from a project are close to zero.

Wordpress or other themes is a different kind of offer.

joeblau 1 day ago 3 replies      
I have a little over 1000 stars (1044 at time of post) and have made $10 in Bitcoin (Which is worth less than $10 now). That being said, my project is extremely-side-projecty[1].

Others have discussed busies models, so it should be a simple calculation of how much you can charge for a model vs how much it will cost you to run your business and if you can live with the reminder after taxes etc... then I would say do it.

[1] - https://github.com/joeblau/gitignore.io

roel_v 1 day ago 2 replies      
Pipe dream.

a) 100k / year is not 'reasonable', it's huge in microisv terms. The modal revenue for independent software vendors is $0 (stats from payment processors). To get there in 2 years is even less common.

b) The number of 'stars' has correlation r=0 with ability to monetize. I'd even speculate - the more stars, the more ingrained in people's heads it is 'this is open source, ergo free', the harder it will be to make money. If you're selling support for something only slightly popular, customers will have no other options - but on support for Wordpress, you have to compete with other devs, with 2$/hour rentacoder people, with Amazon selling 'teach yourself Wordpress in 60 minutes' books etc.

c) What incentive do companies have to pay for it? You have to be able to articulate it clearly before going down this path. Your wording makes me think you are thinking 'this is my secret sauce, I can't give it away', which is (frankly) very naive. If your idea is even a little bit good, you'll have to stuff it down people's throats to accept it. I don't know of any business that makes money OS software (on the software itself, not the consultancy around it) without having a dual licensing model - GPL or commercial. And if that was really a cash cow, Trolltech wouldn't have been sold a dozen times (or so) over the last 10 years...

To judge whether your product has commercial potential, you need to

1) Describe your customers. In detail. Not just 'anyone using a database', but 'medium scale accounting businesses with on-premises case database' (idiotic example, of course). You need to do this in such a way that you can derive a strategy from it on how to find them. E.g., accountants meet at industry events, where you could book a booth.

2) Identify a sample of, say, 100 of them, using the methods from step 1.

3) Start calling them. Preferably after you've taken a sales class (just 2 days will give you life changing insights, I promise). Not emailing, actually talking to people. For the 100 from step 2, identify how many would buy your product.

4) Get sales promises, 10 or 15 or so. People who you can excite so much about your product that they promise (informally) 'yes, I'll buy this if you offer it within 6 months' or whatever.

5) If you can't even do this, you have no (OK, 'barely any') hope of succeeding.

The main skill you need is marketing to succeed at an endeavor like this. The quality of your software, or its popularity amongst the crowd that uses Github, is of secondary importance at best. That's not to say that you can succeed with selling people crap product, snakeoil style, just that your life as a software vendor is 10 or 20% of software development, at best (or worst, depending on your perspective...)

joelhooks 1 day ago 0 replies      
You've made fantastic steps towards making money from your project. It's use in production shows that it has business value.


I think Nathan's book describes an excellent outline for success in this regard. Basically you can look into "tiers". You give away "free" resources. Blog posts and the liberally licensed open source software itself. You can also paid resources. A book, perhaps screencasts that accompany the book for a premium price. Workshops and onsite training provide another tier. At the very top is consulting at ultra-premium rates.

This is oversimplified, but this is the idea. The "free" stuff is critical, and builds the basis and "proof" for the paid offerings.

csomar 1 day ago 0 replies      
1 star. If you are starred by a big tech biz and they are willing to finance you up to $250k/year (or maybe a million per year?) to keep the project running and clean bugs by the very own creator of the project. Because your project is handling infrastructure for them that runs a multi-million dollars business.

100,000 star. If you are starred by your average to not-so-average (high or low) developer. There is no clear monentization plan. But given the popularity, ads and affiliates might bring you $1 per star (assuming a star is 40-50 visits/year).

Think about it. You have a bridge between Queens and Manhattan. I'm sure the US, NYC and people are willing to finance, pay you, or buy you. For what-ever big price (might be unreasonable too, to the cost of creation) you ask.

But if you have a bridge between Antarctica and the French Southern Antarctic lands (just randomly picked), it'll be certainly an amazing and well-known artefact but I'm not sure how you are going to finance it (especially that Tourism is not huge there).

z3t4 1 day ago 0 replies      
When you get the hype, for example front page of HN, that would probably be a good indicator that it should be possible to make a living on it. It doesn't even have to be your own project :P

There are excellent comments in this thread btw. I've bookmarked it.

jakobegger 1 day ago 0 replies      
As others have said, the number of stars is irrelevant. The most important factor for success is not the popularity of your project, but the problem it solves, and whether there's a way to monetize it.

I started making money in 2011 with a GUI for an open source command line tool. The open source software was available completely for free, but compiling it was a hassle, using it was annoying because of a few serious bugs, and you had to use it from the command line.

I made money by making an existing, free tool available to people who didn't want to use the command line or compile their own software. I charged a modest fee (initially just $5), and people gladly bought my app to solve their problem. Nobody cared about the fact that it was open source and they could have solved their problem for free; they just considered my app a fair deal.

(I still sell this app, MDB Viewer for Mac, but I've since completely rewritten the open source library it depended on)

SwellJoe 1 day ago 2 replies      
I've got one data point for you, though I don't think you can guesstimate income based merely on one factor, especially not github stars (we only have 295).

My company is based on Open Source software (Webmin, Virtualmin, Cloudmin, and Usermin), and it sounds sort of similar to your situation. When we started the company based on this stuff we had several major companies in our target market (and we chose our target market, and chose to focus on Virtualmin rather than other features of Webmin, because that market already knew us and used our software in visible ways) using at least one of our projects, almost a million downloads a year, and my co-founder and I had both been making a decent living doing contract work based on it and writing about it.

Today, Webmin has about 1 million installations worldwide (and has grown to ~3.5 million downloads per year). We make enough money from our small proprietary extensions to Virtualmin and Cloudmin to support three modest salaries. It is not $100k/year for any of the three people working on it, though it's not an outrageous dream to think we could get there..we've had much better years than we're having this year or last year, however, so revenue is not necessarily growing like gangbusters, despite our userbase roughly tripling in the time the company has existed and still growing at a comfortable clip annually. Ours is sort of an open core model, though the core is very large (~500kloc) and the proprietary bits are very small (~20kloc), which may be part of our revenue problem.

I think there are some things you're probably underestimating (not to say it should discourage you, I'm just trying to open your eyes to some challenges you will face that you might not expect):

When you sell Open Source software, support is your biggest value add, even if you don't want to be a support company. Support costs a lot of time and money to do well. Time and money has to be balanced between making things better and supporting existing users on the current version (true of proprietary as well, but proprietary vendors don't have a million people using the free version and expecting help). Growing the free user base (which can be a side effect of having people working full-time on it) can paradoxically lead to less time and money for making the software better. We fight this battle all the time. To make our current customers and OSS users exceedingly happy with our level of support is to severely limit our ability to deliver next generation solutions. We run on such a shoe-string, and compete with such huge players, that it's always a struggle to deliver both (and we fail plenty).

So, plan to hire someone to help you support the software, eventually. If we were comfortable leaving our forums to "the community" and not bothering to have an official company voice present every day helping answer the hard questions, we could increase our own salaries by a lot (we pay our support guy more than we pay ourselves), but I don't know that we'd continue to see the growth we've seen in our user base, which we also value. We make things because we want them to be used, not just because we want to make money.

Get used to having demands thrown at you every day. The level of documentation and completeness and rapidity of development expected of a product is vastly different than that of an Open Source project, or at least the way you have to respond to it is different...even for users of the Open Source versions. We have over 1,000 printed pages worth of documentation, plus a couple hundred pages of online help, and still get complaints about our documentation regularly. And, we have more "features" than any other product in our space, including the two big proprietary competitors, and yet still get feature requests all the time (and it's harder to say no than to just implement it, which can hurt usability). A million users generates a lot of feedback. It's a very high volume of demands to answer to. Ignoring them pisses people off, saying no pisses people off, and saying yes often risks making the product worse or more complex for the average user, hurting long-term growth. Even saying, "Not right now" pisses people off. You're going to piss a lot of people off, even if you're just trying to make the best software you can and make a decent living.

I think what I'm trying to say is, think about it for a while before committing to your plans. If you currently have steady income, hang on to it while you sort out a few details.

Try to firm up what your users would pay for your value add. Try to figure out how many of your users would pay for your value add. The only sure way to do this is to actually have users pay you something for your value add.

Try to figure out how you will automate support (hint: You can't, because automated support almost always sucks; even Google has awful automated support, and they're good at almost everything.) At least figure out how you will streamline it and offload it; have an active forum already? If not, get one. Have a community of people talking about your software already? Get one. If Open Source based business were a Pokemon, community would be its special ability. So, you should start cultivating that now, even before money is coming in.

jbrooksuk 1 day ago 2 replies      
In regards to the GitHub stars, I don't think that a high amount of stars actually correlates to the amount of people using the repository.

Cachet (https://github.com/cachethq/cachet) has 2.6k stars but I know that the amount of installs is actually far higher.

currentoor 1 day ago 0 replies      
It really depends on what the software does. I've mostly seen people make money off of their open source software by consulting for companies that use it. For example, I know a couple companies paid the creator of core.typed to develop it further. But those were one off gigs, not recurring revenue.
rawnlq 1 day ago 2 replies      
What's your "good way to monetize it"? The typical approach I have seen is selling support (paid custom features or forks) but that doesn't scale well. You'll basically be a freelancer specializing in the project you wrote.
dllthomas 1 day ago 0 replies      
One star, if it's from the right person.

Revenue is number of people willing to pay you time the amount they're willing to part with. Neither of those can be inferred from number of stars on a GitHub page (it probably has the most correlation with the number of people willing to pay, but there's going to be a scaling factor there that will vary dramatically based on the nature of the project).

onion2k 1 day ago 0 replies      
If the project is popular because it's a free alternative to something that costs then I imagine charging would kill it completely.
lukego 1 day ago 0 replies      
Is your goal to be paid to write your software? Have you considered looking for a job where you would be paid to develop this software by a company that needs it?

How do you envision your open source lifestyle business once it is up and running? (do you want to be paid to develop software or are you hoping to make a business that "runs itself"?)

raverbashing 1 day ago 1 reply      
Does your landlord or local supermarket accept stars on github as payment?

There's your answer

You need to provide a service connected to your project, this is regardless of how many people use your project.

transit 18 hours ago 0 replies      
curiously 1 day ago 1 reply      
My question for those that have spent years building a product:

Was it worth it open sourcing your product?

Did you get lot more leads and exposure?

I'm afraid of open sourcing because I'm not sure if it will do anything for me, and that I'm giving away years of work away for free.

Ask HN: How do you familiarize yourself with a new codebase?
385 points by roflc0ptic  2 days ago   233 comments top 115
tessierashpool 2 days ago 10 replies      
I wrote some simple bash scripts around git which allow me to very quickly identify the most frequently-edited files, the most recently-edited files, the largest files, etc.


it's for assessing a project on day one, when you join, especially for "rescue mission" consulting. it's most useful for large projects.

the idea is, you need to know as much as possible right away. so you run these scripts and you get a map which immediately identifies which files are most significant. if it's edited frequently, it was edited yesterday, it was edited on the day the project began, and it's a much bigger file than any other, that's obviously the file to look at first.

we tend to view files in a list, but in reality, some files are very central, some files are out on the periphery and only interact with a few other files. you could actually draw that map, by analyzing "require" and "import" statements, but I didn't go that far with this. those vary tremendously on a language-by-language basis and would require much cleverer code. this is just a good way to hit the ground running with a basic understanding which you will very probably revise, re-evaluate, or throw away completely once you have more context.

but to answer your actual question, you do some analysis like this every time you go into an unfamiliar code base. you also need to get an idea of the basic paradigms involved, the coding style, etc. -- stuff which would be much harder to capture in a format as simple as bash scripts.

one of the best places to start is of course writing tests. Michael Feather wrote a great book about this called "Working Effectively with Legacy Code." brudgers's comment on this is good too but I have some small disagreements with it.

scott_s 2 days ago 4 replies      
A post from last year, "Strategies to quickly become productive in an unfamiliar codebase": https://news.ycombinator.com/item?id=8263402

My comment from that thread:

I do the deep-dive.

I start with a relatively high level interface point, such as an important function in a public API. Such functions and methods tend to accomplish easily understandable things. And by "important" I mean something that is fundamental to what the system accomplishes.

Then you dive.

Your goal is to have a decent understanding of how this fundamental thing is accomplished. You start at the public facing function, then find the actual implementation of that function, and start reading code. If things make sense, you keep going. If you can't make sense of it, then you will probably need to start diving into related APIs and - most importantly - data structures.

This process will tend to have a point where you have dozens of files open, which have non-trivial relationships with each other, and they are a variety of interfaces and data structures. That's okay. You're just trying to get a feel for all of it; you're not necessarily going for total, complete understanding.

What you're going for is that Aha! moment where you can feel confident in saying, "Oh, that's how it's done." This will tend to happen once you find those fundamental data structures, and have finally pieced together some understanding of how they all fit together. Once you've had the Aha! moment, you can start to trace the results back out, to make sure that is how the thing is accomplished, or what is returned. I do this with all large codebases I encounter that I want to understand. It's quite fun to do this with the Linux source code.

My philosophy is that "It's all just code", which means that with enough patience, it's all understandable. Sometimes a good strategy is to just start diving into it.

JustSomeNobody 2 days ago 0 replies      
1. I make sure I can build and run it. I don't move past this step until I can. Period.

After that, if I don't have a particular bug I'm looking to fix or feature to add, I just go spelunking. I pick out some interesting feature and study it. I use pencil and paper to make copious notes. If there's a UI, I may start tracing through what happens when I click on things. I do this, again with pencil and paper first. This helps me use my mind to reason about what the code is doing instead of relying on the computer to tell me.If I'm working on a bug, I'll first try and recreate the bug. Again, taking copious notes in pencil and paper documenting what I've tried. Once I've found how to recreate it, I clean up my notes into legible recreate steps and make sure I can recreate it using those steps. These steps are later included in the bug tracker. Next I start tracing through the code taking copious notes, etc, etc. yada yada. You get the picture.

monk_e_boy 2 days ago 4 replies      
Debugger! Surprised no one has mentioned it yet. I work in js and php, both of which I use the debugger a lot.

Set a breakpoint, burn through the code. Chrome has some really nice features - you can tell it to skip over files (like jQuery) you can open the console and poke around, set variables to see what happens.

Stepping though the code line by line for a few hours will soon show you the basics.

kabdib 2 days ago 4 replies      
I just crack open the source base with Emacs, and start writing stuff down.

I use a large format (8x11 inch) notebook and start going through the abstractions file by file, filling up pages with summaries of things. I'll often copy out the major classes with a summary of their methods, and arrows to reflect class relationships. If there's a database involved, understanding what's being stored is usually pretty crucial, so I'll copy out the record definitions and make notes about fields. Call graphs and event diagrams go here, too.

After identifying the important stuff, I read code, and make notes about what the core functions and methods are doing. Here, a very fast global search is your friend, and "where is this declared?" and "who calls this?" are best answered in seconds. A source-base-wide grep works okay, but tools like Visual Assist's global search work better; I want answers fast.

Why use pen and paper? I find that this manual process helps my memory, and I can rapidly flip around in summaries that I've written in my own hand and fill in my understanding quite quickly. Usually, after a week or so I never refer to the notes again, but the initial phase of boosting my short term memory with paper, global searches and "getting my hands to know the code" works pretty well.

Also, I try to get the code running and fix a bug (or add a small feature) and check the change in, day one. I get anxious if I've been in a new code base for more than a few days without doing this.

agentgt 2 days ago 0 replies      
There is a significant number of answers that may interest you on Stackoverflow. Specifically: http://stackoverflow.com/questions/215076/whats-the-best-way...

Two things I do to familiarize with a code base is to look at how the data is stored. Particularly if its using a database with well named tables I can get some rough ideas of how the system works. Then from there I look at other data objects. Data is easier to understand than behavior.

The other is watching the initialization process of the application with a debugger or logger. Along those lines if your lucky (my opinion) and the application uses dependency injection of some sort you can look to see how the components are wired together. Generally there is an underlying framework to how code pieces work together and that generally reveals itself in the initialization process if its not self evident.

bite_victim 2 days ago 4 replies      
Side rant:

I just cannot believe people praising 'Unit Test'-ing. Fellow programmers, how exactly do you unit test a method / function which draws something on the canvas for example? You assert that it doesn't break the code?!

I see some really talented people out there who write unit test as proof that their code works without issues, that it's awesome and it cooks eggs and bacon etc. They write such laughable tests you cannot even tell if they are joking or not. They test if the properties / attributes they are using in methods are set or not at various points in the setup routine. Or if some function is being called after an event is being triggered.

My point is this: unit testing can only cover such tiny, tiny scenarios and mostly logic stuff that it is almost useless in understanding what is going on in the big picture. Take for example a backbone application like the Media Manager in WordPress. Please tell me how somebody can even begin to unit test something like that.

Unit testing is a joke. And sometimes a massive time consuming joke with a fraction of a benefit considering the obvious limitation(s).

Mithaldu 2 days ago 5 replies      
This may or may not apply to you, since i work with Perl. Typically i'm in a situation where i'm supposed to improve on code written by developers with less time under their belt.

As such my first steps are:

1. tidy/beautify all the code in accordance with a common standard

2. read though all of it, while making the code more clear (split up if/elsif/else christmas trees, make functions smaller, replace for loops with list processing)

While doing that i add todo comments, which usually come with questions like "what the fuck is this?" and make myself tickets with future tasks to do to clean up the codebase.

By the end of it i've looked at everything once, got a whole bunch of stuff to do, and have at least a rough understanding of what it does.

jpgvm 2 days ago 0 replies      
I usually work on more traditional command line applications and daemons so my approach might be a little different to a web developer.

I always start by gauging how much source code there is and how it's structured. The *nix utility "tree" and the source code line counter "cloc" are usually the first 2 things I run on a codebase. This tells me what languages the applications uses, how much of each, how well commented it is and where those files are.

The next thing I usually do is find the entry point of the program. In my case this is usually an executable that calls into the core of the library and sets up the initial application state and starts the core loop and routine that does the guts of the work.

Once I have found said core routine I try to get a grasp for how the state machine of the program looks like. If it's a complicated program this step takes quite a while but is very important for gaining an intuitive understanding of how to either add new features or fix bugs. I like to use my pen and paper to help me explore this part as I often have to back track over source files and re-evaluate what portions mean.

Once I have what I think is the state machine worked out I like to understand how the program takes input or is configured. In the case of a daemon that often means understanding how configuration files are loaded and how the configuration is represented in memory. Important to cover here is how default values are handled etc. I actually prioritise this over exploring the core loops ancillary functions (the bits that do the "real" work) as I find it hard to progress to that stage without understanding how the initial state is setup.

Which brings us to said "real" work. Hanging off of the core loop will be all the functions/modules are called to do the various parts of the programs function. By this time you should already know what these do even if you don't know how they work. Because you already have a good high level understanding at this point you can pick and choose which modules you need to cover and when to cover them.

vineet 2 days ago 0 replies      
I studied a lot of people doing this as part of my PhD. The thing is that there are not many answers that work well in a lot of situations. Given that though, my suggestions is to iterate on developing three views of the code:

1. The Mile High View: A layered architectural diagram can be really helpful to know how the main concepts in a project are related to one another.2. The Core: Try to figure out how the code works with regards to these main concepts. Box and arrow diagrams on paper work really well.3. Key Use Cases: I would suggest tracing atleast one key use case for your app.

droppedasakid 2 days ago 1 reply      
Whatever your IDE/editor of choice is, I think these having these three functions are critical to learning a new codebase, or even developing for that matter:1. Go to definition2. Find all references3. Navigate back

This allows you to go down any code rabbit hole, figure stuff out, then get back to where you were. If you can't do those things it will take much longer to understand how things are interconnected.

gshx 2 days ago 0 replies      
I start with running the tests if there are any. Typically peeling layers of the onion starting with the boundary. If there are no tests, then I'll try to write them. Then running tests in debug mode helps step through the code. If I have the luxury of asking questions to an engineer experienced with the codebase, I request a high level whiteboarding session all the while being cognizant of their time.

Some others have mentioned recency/touchTime as another signal. For large complex codebases, that may or may not always work.

fourier 2 days ago 1 reply      
I'm working a lot with a huge legacy codebases in C/C++. Here are some advices:

1. Be sure what you can compile and run the program

2. Have good tools to navigate around the code (I use git grep mostly)

3. Most of the app contain some user or other service interaction - try to get some easy bit (like request for capabilities or some simple operation) and follow this until the end. You don't need a debugger for it - grep/git grep is enough, these simple tools will force you to understand codebase deeply.

4. Sometimes writing UML diagrams works -

- Draw the diagrams (class diagrams, sequence diagrams) of the current state of things

- Draw the diagrams with a proposal of how you would like to change

5. If it is possible, use a debugger, start with the main() function.

nissimk 2 days ago 0 replies      
I agree with what many others on here have said. It's also a personal thing. In general I like to try to force myself to learn only the minimum required to do what I need to do. If that philosophy sounds good to you, I would recommend taking the buggy version of frozen columns and try to fix the bugs. You may learn that the bugs are structural and you need to implement it differently, or you might be able to fix it with minimal changes. You will certainly get an understanding of the parts of slickgrid that you need to interact with to add this feature.

For the ajax data source thing, I would try to modify or extend the existing data source code to add the behavior you are looking for. As you mess around with it trying to figure out what you need to change, you will encounter the areas of the code that you need to understand.

With this sort of strategy you can avoid having to fully understand all the code while still being able to modify it. You might end up implementing stuff in a way which is not the best, but you will probably be able to implement it faster. It's the classic technical debt dilemma: understanding the complete codebase will allow you to design features that fit in better and are easier to maintain and enhance, but it will take a lot longer than just hacking something together that works.

Sakes 2 days ago 1 reply      
I wish I had a better answer, but I honestly just stumble around it. I typically start by trying to understand how they structured their files, then I'll start diving into the code. I wouldn't try to "understand" it completely. Just look over it until you feel comfortable enough to try to make some modifications.

Michael's code looks clean and well organized. Shouldn't be terribly difficult for someone proficient at JS.

eterm 2 days ago 0 replies      
My approach is to break stuff. If I can break it (and I am good at finding bugs, so I usually can) then I now have a narrow focus which helps me getting "lost" in the code base.

Once I've found and fixed a few things, or if the code base is particularly small or clean that I can't find bugs to fix, I'll set about hacking in the feature I'd like.

I usually start by doing it in the most hacky way possible. That sounds like a bad approach but it narrows the search of how to implement it and means I'm not constraining myself to fit the code base that I don't yet appreciate.

In hacking that feature I'll often break a few things through my carelessness. In then trying to alter my hacked approach so it no longer breaks stuff I'll become more aware of the wider code base from the point of view of my initial narrow focus. This lets me build up the mental model.

Eventually I'll be comfortable enough I can re-write the feature in a way more consistent with the wider code base.

I don't normally start by trying to "read all the code" because that guarentees I won't understand much of it (I'm not quick at picking up function from code). I might have a skim if it is well organised, but I find the "better" written a lot of stuff is, the harder it is to grok what it is actually doing from reading it. to me, reading good code is often like trying to read the FizzBuzz Enterprise Edition[1].

I've worked on many legacy systems: I was last year implementing new features into a VB6 code base, this year (at a different job) I am helping migrate from asp webforms to a more modern system. I've found that starting with trying to fix an issue to be the best way to dive into the code base.

Use good source control so you're never "worried" about changing anything or worrying that you might lose your current state. Commit early, commit often, even when "playing around".

[1] https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris...

brudgers 2 days ago 2 replies      
When you think you understand something write a test and test your belief. If the test passes then both your knowledge and the code base are better for it. If the test fails then rewrite the test to the failure and write another test. Again you will know more and the code base will be better.

Good luck.

jdefr89 2 days ago 0 replies      
I tend to use a hybrid approach, but In general I try to identify the entry point of the code which will lead me to the core datastructures and possibly event loops that act as a central hub for any other code that is called.. That is I look for some kind of dispatch pattern that Integrates the rest of the system, routing and calling different code when needed. Once you identify this "hub" you will have a good mental model and the system and its high level components. From there you can delve into different subsystems and slowly tweak and make changes to be sure a code path does what you conjecture it may do. Using a debugger is helpful at certain points to explore depth of the code.. When you can get a small tweak working as expected you probably have a decent starting model of the code base that you can easily add to.
spion 2 days ago 0 replies      
Another thing that is helpful, especially if you don't even have knowledge of the problem domain of the codebase: Write a glossary.

As you read the code and encounter terms/words you don't know, write them down. Try to explain what they mean and how they relate to other terms. Make it a hyperlinked document (markdown #links plus headings on github works pretty well), that way you can constantly refresh your memory of previous items while writing

Items in the glossary can range from class names / function names to datatype names to common prefixes to parts of the file names (what is `core`? what belongs there?)

Bonus: parts of the end result can be contributed back to the project as documentation.

jameshart 2 days ago 0 replies      
For clientside JavaScript, one useful way in is to run the Chrome profiler on it. That will produce a treeview of the calling hierarchy, and give you an idea of what are the code's 'hotspots' - the functions that are called from everywhere, or the functionality which dispatches everything.

This can be especially useful for event driven code (looks like SlickGrid is jQuery-based, so that definitely applies here); you can start a recording profile, carry out the action you're interested in, then stop recording, and you can then find out exactly which anonymous function is handling that particular click or scroll or drag.

aleem 2 days ago 0 replies      
Some good pointers and links here, surprisingly they miss both my favourite approaches.

1. If it's on Github, find an issue that seems up your alley and check the commits against it. Or the commit log in general for some interesting commits. I often use this approach to guide other devs to implement a new feature using nothing more than a previous commit or issue as a reference and starting point.

2. Unit tests are a great way to get jump started. It functions as a comprehensive examples reference--having both simple and complex examples and workflows. Not only will it contain API examples but it will also let you use experiment with the library using the unit test code as a sandbox.

etagwerker 2 days ago 0 replies      
This is usually how I do it for libraries:

* Read the README.

* Install it and start using it with a couple of sample cases. That will give you an idea of what it does.

* Read the test suite. This will give you a better idea of what the library does.

* Look at the directory structure. This should tell you where things are.

* Start reading the core files.

* Start looking at open issues. Try to solve one by adding a test and changing the code.

* Submit a pull request.

barnacs 2 days ago 0 replies      
I think a top-down approach is pretty much the only way to do it: Start at a high level of abstraction: packages, modules, namespaces, etc and their relations. Pick one that seems related to some core functionality or central to the change you intend to make and dive deeper: interfaces and data structures within that unit and possibly other related units they depend on. Ideally, up to this point you shouldn't even have to worry about function definitions and algorithms, just declarations, types and relations.

While static typing helps a lot with this kind of exploration and navigation, I don't know of any IDEs or other tooling for any language that would really help you with it.Sure, you can probably generate UMLs or something, but it usually requires some additional tool and the output is pretty static. You can't just zoom in from a package-level view to an interface-level and then keep zooming until you are eventually shown line-by-line implementation of a specific function.

I've been thinking about this lately, and I've come to the conclusion that the way we think and reason about code is pretty far from the way our tools present it to us. I tend to think in terms of various levels abstractions and relations between units, yet the tools just show me walls of text in some file system structure (that may or may not mirror the abstractions) and hardly any relationships.

mavidser 2 days ago 1 reply      
Well, I'm not very good at this either but here's what I do. I usually work on modular projects where there are hundreds of files in the project. I usually skip directly to locating the file where I've to make amends (using a lot of grep. grep for function and object definitions, grep for usage patterns, grep for checking how to implement something). Thus, I learn about the codebase as I go along.

Sure, this is not the best practice, and unsuitable for many, but it's what works for me.

geertj 2 days ago 0 replies      
My typical workflow for checking out new open source projects:

- find . -type f

- find . -name \* .ext | wc -l (get an idea of complexity)

- git log (is this thing maintained?)

- find . -name \* .ext | ctags

- find main entry points, depending on platform and language

- vim with NerdTree enabled

- CTRL-], CTRL-T to jump to browse tags in vim

Generally a lot of find, grep and vim gets me started.

git-pull 1 day ago 0 replies      
I love wrapping my brain around large codebases in my spare time. I wrote an application for help me download source code repositories in git, svn and mercurial and keep them in sync:


I keep the applications I want to study in a YAML file (https://github.com/tony/.dot-config/blob/master/.vcspull.yam...) and type "vcspull" to get the latest changes.

You can read my ~/.vcspull.yaml to see some of the projects I look over by programming language. You can setup your config anyway you want (perhaps you wanted to study programming languages implementations, so have ~/work/langs and cpython, lua, ruby, etc. inside it.

shawnps 2 days ago 0 replies      
Get it running locally and then see what happens when you delete some stuff, especially stuff that you don't understand when reading through the code.
awinder 2 days ago 0 replies      
You got a little bit lucky with this project because there's a decently built-out test suite. I would start by digesting the tests because if they're good, you'll be able to see the mechanics about how the exposed interfaces in the code work, and this should also give you a good idea if changes you're making are breaking the expected workflow or not.

From my experience, there are really two ways that learning a new codebase can happen. One is that there's an existing test suite that's fairly comprehensive, and you can learn a lot by examining the tests, making changes to add features / make bug fixes, and then validate that work by rerunning the tests and adding new ones. That's really a great place to be as someone unfamiliar with a new codebase. The other is that there are no tests, and you inevitably need to rely on people familiar with the code, and make peace with the idea that you're going to write bad code that breaks things as you learn the depth of how the project works.

dave_ops 2 days ago 0 replies      
I take it out for dinner and drinks. Spend some time getting know about it and where it comes from and what it does for a living. Then after we're a few cocktails in we get all philosophical. Really start asking the hard questions like, "Why do I even exist? Is any of this real or is it all some weird virtual world?"

We become fast friends and feel like we really understand each other.

But days pass, and each encounter feels less magical. It's almost like we having nothing in common. Like we're from two completely different worlds. One where its stuck in the past and one where I'm ambitious and excited about the future.

After awhile we don't really speak to each other anymore, and after some pretty ugly fights at work that get too personal... I rewrite it.

hal9000xp 2 days ago 0 replies      
I probably won't say anything new here. Last five years, I do the following in order to get my foot wet with new project (some projects I worked with contains more than two millions lines of code):

1. Just make sure I can build project;

2. Play around with services/application (just run, send some requests, get response);

3. Pick up simplest case (for example, some request/response);

4. Find breakpoints (for debugging) somewhere connected with this simplest case (for example, which stopped somewhere when I send request) and setup them in debugger. Usually, I find place where to put breakpoint by just searching keyword associated with my request;

5. Play around with these breakpoints while performing simplest case (for example, sending request) and try to find out call graph;

6. Try to change code and see what happens;

After I do this stuff several days/weeks, I become more and more familiar with the project.

physicsmichael 2 days ago 0 replies      
A very simple method that helps me is to make sure I tackle a new code base on a large monitor, vertically oriented, with small font size. Add to that a pane that shows the file/class structure. Seeing more at once helps ground me in the types of interactions in the code and the code landscape.
ignoramous 2 days ago 0 replies      
I work on AOSP, which is a fairly larger code base. During the early years, the documentation on the internals of Android was close to non-existent. Plenty of tutorials in Mandarin/Cantonese, but not many in English.

A good way to get hang of the code base was to read it (usually using a tool like sourcegraph [0], pfff [1], open-grok [2], doxygen [3], javadocs [4]). Although a lot of people have argued that code is to be not treated like literature [5], but in this case, there was no choice.

The second step was to see if assumptions about the what the code does is correct. This is usually achieved by adding log statements, writing sample apps, and debugging in general.

Repeat the steps above, over and over again.


1. No matter what you do, you absolutely need to document everything you understand / misunderstand about the code base.

2. Never underestimate value of having a different pair of eyes look at code you have hard time reasoning about.

3. Be in constant search for resources (like books, blogs) available on the code / topic of your interest. You'd learn amazing amount by reading through other people's analysis. Stackoverflow is a great start. Heck, you can even ask well thought-out questions on Quora/Stackoverflow.

4. Hang out on related IRC channels / community mailing lists. For things written in esoteric languages such as OCaml, I found these to be pretty helpful.

5. You could blog about it, share the information you know over email lists, setup wikis; and people who know better would correct you. Its a win-win.

Good luck.

[0] http://sourcegraph.com/

[1] https://github.com/facebook/pfff

[2] https://opengrok.github.io/OpenGrok/

[3] http://www.stack.nl/~dimitri/doxygen/

[4] http://www.oracle.com/technetwork/articles/java/index-jsp-13...

[5] http://www.gigamonkeys.com/code-reading/

matthewrhoden1 2 days ago 0 replies      
I've worked in a lot of legacy code bases. Here's my approach:* Skim around to get a general idea of what components are involved.* Try to understand that one module/class that keeps getting used a lot or is really important. * I mentally trace through that code, as if I'm a debugger. * Most importantly, I write down my discoveries/understanding as I go to help me retain this idea.* Re-skim with my new understanding and/or reorganize the code to be more concise or simpler. Depending on how ambitious you are, you might try to keep these changes. But with legacy code, it typically breaks as a result.

Every code base takes time to digest all the information. Sure the information passed your eyes, but is it committed to memory?

vpeters25 2 days ago 1 reply      
This answer is going to be rather unortodox and might get downvoted but this is how I do it:

I just skim throught all the sources, then somehow I am able to point approximate file and line of code where a specific question might be answered.

This might sound "out there" but I realized during college I had the ability to recall the approximate location of specific information I needed from a textbox If I just skimmed through the whole book at the start of the semester.

For years I did this out of intuition, then about 10 years ago I took a course named "photoreading" and to my surprise they were teaching my "ability" but with clear steps so anybody could use it effectively.

VeejayRampay 2 days ago 1 reply      
Drawings will help tremendously. Extract the big masses, their respective interfaces to each others and the means through which they communicate.This will help build a mental map of the code and reduce the cognitive load needed to understand each separate part.
datashovel 1 day ago 0 replies      
If it's not obvious just by looking at how the directories are structured, and files are named, generally I find that everything is (or should be) relatively easy to understand if you start from the perspective of a user.

1) Read docs for how to USE the library if they exist

2) Review example code that describe how a person would use the library to accomplish tasks.

3) In order to start diving in, find a specific example that does something interesting, then hop in from there. Read the code within the methods / functions the user calls, then the functions / methods called inside those, etc.

4) As you dig deeper you may start finding that you understand, or you'll start building up your own hypotheses like "If I change X to Y in this function then something different should happen when I call it". Try it out, and see if your hypothesis is correct.

After a few iterations of doing something like this you'll probably start getting an idea of how the code is structured and where you'd need to go in order to make the changes you'd like to make, or add the features you want to add.

tjallingt 2 days ago 0 replies      
I personally like to reverse engineer functions within a certain codebase to better understand what is happening.

For example I would start by looking up out a basic example of that codebase and for each of the function calls go through the files and see what is happening. This gives me an idea of how the code base is written and how it works. It also gives a clear understanding of the level of separation/specificity of the different functions.

Disclaimer: not very experienced so there might be better ways to familiarising ones self with a new codebase, this is just one way of doing it and it has worked for me in the past.

scrabble 2 days ago 0 replies      
I generally just start by fixing small bugs in different areas of the system. I find that debugging various areas of the system help me understand them better and allow me to start forming a cohesive picture in my mind.
lukaslalinsky 2 days ago 0 replies      
I'm working with somebody else's code more often than writing something new from scratch. It takes some time to get used to that, but it's very far from the hardest tasks developers face.

A couple of things that I typically do:

- Start with a fully working state, i.e. setup your environment, make sure tests (if there are any) are passing. If you can't get things to work properly, that's your first issue to investigate and fix.

- Don't try to understand all of the code at once. You don't need it yet. I'm assuming you want to take over the project for a particular issue. So just focus on that and ignore the rest of the code. If you ask any senior developer about something in their project, there is a great chance they will not remember the exact details, but know where in the code to look at. Aim to get at that level, not memorizing how everything works on the lowest level.

- Don't make any changes to the code that you don't understand. I have a recent example of this. Yesterday I was trying to find a bug in the Phoenix database, which was failing to start after an upgrade. I have never seen the code in my life. After some debugging I realized it's doing something with an empty string that shouldn't be empty. The obvious "solution" is to add an check if the string is empty and be done. Don't do that. Understand exactly why is the problem happening and only do a change like that after you are sure of all the implications. This has two effects, you are not introducing new bugs and you are learning about the codebase. At the end, the fix from my example was just a simple "if", but without understanding how is it ending up with an empty string, I might have caused more problems than I fixed.

- Use the VCS a lot when figuring our why something is done they way it's done. Use "blame" to see when things have been changed, read through the logs, etc. This is one of the main reasons why I don't like people rebasing/squashing their commits before merging. There is so much information they are throwing away this way.

- Adopt the coding style of the existing code. Don't try to push your style, either by having inconsistent style in different parts of the code or re-formatting everything. It's just not worth it.

- Don't be afraid to change things that need changing. There is nothing worst than making a copy of some module, call it v2 and then having to maintain two versions. If you are afraid to make a change in the existing code, make yourself familiar with the part of the code first.

wiresurfer 2 days ago 0 replies      
The most critical step is to get the lib in your workflow , preferably with (build-introspect-debug) capabilities. This increases the upfront time to start, but leads to much quicker "code understanding in my opinion.

TL;DR; Start with the minimum exposed surface area of the project (API), dig through these functions first. Definitely know the initialization sequences the library needs.

This is my approach concerning JS projects or for dealing with other peoples code in general.

First, I make a mental model of what I want to do. !important.Then I write the smallest wrapper needed to start fledging out points where "separation-of-concern" happens.

At this point I should have an idea of what the other persons libraries expose as API. I also should have an idea of what can be done with a unmodified library, and what would need patching.

Then comes monkey-patching the lib at individual function levels with a healthy dose of TODO markers and NotImplemented Method signatures.

By this point I should have a good picture of what goes on in the library apart from what gets exposed and would probably have forked a branch by now.

This strategy has been useful not just for JS projects but bigger codebases of java/scala libraries like Lucene Core/Solr or Play framework, Django in the python realm and to limited success with Research code releases like Stanford Core NLP.

wazari972 2 days ago 0 replies      
I like to use interactive debuggers like gdb (for C) or pdb (for python) for that.

You first have to localize a region (function) you want to study, then you reach one of its execution with a breakpoint, or a conditional breakpoint.

Then, you inspect:

- the callstack: in which condition the function was call

- the parameters / local variables

- the subfunctions: in both tools, you can manually call any (reachable) function, try different parameter values and check the result. Pay attention through to the side effects!

aethertap 2 days ago 0 replies      
The first thing I do is try to get a handle on the libraries it pulls in (maybe spend a day just going through the high-level readme material for each one). That will usually tell me where to start looking for the entry points where I might want to start modifying things. After that, I give myself a series of small functionality changes to implement, kind of like capturing a bunch of little flags. After doing that for a bit I usually have a decent idea of how things work, and it's easier to go forward, at which point I can dig into the relevant parts of the codebase with more confidence.

The first few mods are inevitably disgusting hacks, so don't pick anything you want to keep for your first couple of goals. It is pretty easy to go back and do them right once you've got your head around the rest of the project if you do end up wanting to keep them though.

I've used this method on some decently large C++ and javascript projects (around 100k-200k lines) and it works pretty well for me. I don't learn very well by just reading the code, but doing the little mods seems to make it stick.

l-jenkins 2 days ago 0 replies      
I see a lot of comments talking about code that is in a repository. And that is great, if you have it available. There have been many, many times where our team is handed an application that is broken (or has a bug) and asked to fix it. In many, many of those cases we don't have access to the original repository, or there wasn't one.

We generally approach it with heavy customer/owner involvement at first. We need to know what the application's intended purpose is. It is sort of like a lightening BA session. We get what the application should do, and what it isn't doing properly out of this session (and more importantly, what it should be doing instead).

Our first step: get it into a repo.

Now that we have an understanding of what the application's intended purpose is, we can dive into the code. We don't have any analysis tools (but if there are some that people could recommend, I'm all ears) outside of our IDE (Visual Studio). We generally look for the last-modified date as an indicator of what needed work most recently. Of course, we don't have file history so we don't know exactly what changed, but it gives us a rough idea of what was worked on and when.

Next we usually try and use the application in our development environment. We chase each action a user takes in the code to determine what is the core/central part of the application. After that, we try to determine the cause of the problem (and while we are at it, we generally do a security review of the code).

It takes time, and is painstakingly nuanced and very boring. But I'm not sure what other options we have in such cases. As I said, I'm all ears as to what other might do in these situations.

georgerobinson 2 days ago 0 replies      
I'm currently involved in a project (with 3 others) for my MSc in Computer Science in which we aim to take Google Native Client (a browser extension for Chrome which sandboxes untrusted, native code, downloaded from the web and executed inside your browser) and use it on the server-side to sandbox an HTTP server. Since almost all documentation is catered towards developers who wish to write untrusted native code that runs inside the browser, or browser vendors (this part of the documentation is quite incomplete) who wish to include Native Client in their browser, we're pretty much stuck in the dark.

First, we read the Native Client papers (http://www.chromium.org/nativeclient/reference/research-pape...) to understand how Native Client sandboxes untrusted code. We then looked at the tests in the Native Client source repository to see how to run untrusted code within a Unix process. We're yet to be able to debug executables via GDB for reasons we don't quite understand - so at present we:

1. Set NaClVerbosity to 10 and trace the system calls and functions invoked in the tests2. Run "grep -r" in the src folder to find the source files for each of the functions invoked then read and understand the code for each3. Insert our own calls to NaClLog in the source code to read the state of variables and to validate our hypotheses of paths of execution within Native Client

For example, just this afternoon we found out how to send data via inter-module communication instantiated from the trusted code to the untrusted code. We first thought this wasn't possible - and that communication had to be initiated from the untrusted code, handled in the form of a callback function in the trusted code. However it simply turned out we had set the headers incorrectly in that the first four bytes of the header should be 0xd3c0de01. What's crazy is that we haven't yet understood what these bytes mean - so we're back in the Native Client source code to try and see why it works.

This probably sounds like a rant about Native Client and the Native Client developers. However, the complete opposite is true. The folks on the Native Client Discuss forum have been very helpful and have been more than happy to answer our questions. Quick shoutout to mseaborn: thank you for your help!!!

pmontra 2 days ago 0 replies      
Build it, if there is something to build. Scripting languages usually don't have builds but JS minification and dependencies installation could be a build. Find and read the code paths that perform some recognizable action. Run tests, read them. Add a new feature with tests or pick an open issue and fix it. You're going to have to debug something and that will give you more insight in the inner workings of the code.
tracker1 2 days ago 0 replies      
Try to fix/change/adjust something in the front-end and look back from there... Although this can be frustrating depending on the codebase, but your best bet in learning something new is to try to do something... even something small. If you want to go the extra mile, add comments to stuff that doesn't make sense as you go, and tag things for refactoring with Todo's and corresponding tickets.

Going a step farther still would be to add to the user documentation as you go...

Do something small, and iterative, and go out from there... for that matter, just getting a proper build environment is hard enough for some projects... automate getting the environment setup if it's complex. I've seen applications with 60+ step processes for getting all the corresponding pieces setup.

jajaBinks 2 days ago 0 replies      
For a large c/C++ code base, I use an editor called SourceInsight. This is the most invaluable tool for navigating code I've come across in my 3 year career as a software developer. I work in a very large software company, and there are several code bases running into millions of lines of C/C++ code. My previous team had 60,000+ files, with the largest file being about 12k loc.

If you have access to logs from a production service / component, I find TextAnalyzer.net quite invaluable. I take an example 500 mb log dump - opened in TextAnalyzer.net and just scroll through the logs (often jumping, following code paths etc), while keeping the source code side by side. This allows me to understand the execution flow, and is typically faster than attaching a debugger. If it's a multi-threaded program, the debugger is hard to work with - and logs are your best friend. You are lucky if the log has thread information (like threadId etc)

corysama 2 days ago 0 replies      
I pick a function or an outcome and type out the pseudocode stack traces leading to that in notepad.

I include function names and the names of the variables passed as parameters. But, no braces or other syntax. Almost always omit branches/variable decls/error checking. Include all interesting function calls along the path, but omit any branches/function bodies that lead off the desired path. Inline callbacks as function calls with addition notation. If the process has separate steps that aren't a single call/callback tree, start a new tree with the note "then later..."

To do this, I have to start from the line of code that enacts the outcome and determine the backtrace with a combo of debugger stack traces and examining the code for branches/callbacks of interest.

But, when it's complete, I'll have the start-to-finish process of some complicated task in the code --usually on a single screen of text. It's a tremendously better use of my short term memory to scan over that than to constantly bounce around the actual code base.

dnprock 2 days ago 0 replies      
I don't do code reading or comprehension study. Reading code is boring. I typically create a list of small tasks that I want to achieve with the project. If the task is big, I break it down into smaller tasks. Then I rank the tasks from easy to hard. This way, I can start learning about the codebase and achieve my tasks.

In your case, frozen columns seems to be a hard feature. So I would start with ajax data source. I'd start with a simple SlickGrid example and get it to run. Then go find how SlickGrid sets up data source. Expand that piece of code to add ajax data source. Once I finished ajax data source, I'd dig into frozen columns.

If you are working on a new codebase and worry about bugs, you just give yourself more stress. Bugs (that are not yours) are expected. If they aren't blocking your task, ignore them. Most likely, they aren't relevant to what you are trying to do.

jdavis703 2 days ago 0 replies      
When I have a new code base that I'm unfamiliar with and need to understand it quickly, I'll go line-by-line and add comments about what I believe to be the intended behavior. As I gain more knowledge I'll update the comments. For me explaining something I've learned helps me commit it to memory better, and makes sure I really did comprehended what I just read.
goblin89 2 days ago 0 replies      
Document the codebase, in my experience it helps.

In case of JavaScript youd probably use something like JSDoc. Describe your units and make the tool automatically create beautiful HTML out of that. You dont have to document everything at once but be sure to lay the groundwork, automate documentation build process, and in general try to make maintaining the docs effortless (for yourself and for others). Take some existing well-documented JavaScript codebase as an example.

Thisd make a great contribution already: SlickGrids codebase is somewhat poorly documented, which is a barrier to the involvement of interested developers.

As you write the docs weak spots in existing implementation will come to your attention, helping you figure out what to fix first.

One downside is that writing down and structuring your knowledge in easy for others to grasp way is a challenge in itself, though arguably a useful exercise.

chipsy 2 days ago 0 replies      
I try to seek out the data structures first. If I need help doing it, I either run a profiler or insert some debug prints to get an idea of what parts of the callstack are "hot" and then progress from that to discovering the data. (Languages that don't require type signatures everywhere often have this problem of hidden structures.)

Once I know what the data is I can look at the code with an eye towards maintenance of data integrity. I might still need some "playtime" to grok the system but the one truism of large software is that data is always getting shoved from one big complicated system to another, and I can usually identify boundaries on those systems to narrow the search space.

(the exception to this is if you have code that leaks global state across the boundaries. Then much swearing will occur.)

techbio 2 days ago 0 replies      
I've written scripts to read files and match function calls to their definition/body and output text "trees"; but the process deserves some better visualization, navigation of dependency graph/comprehension specific highlighting. I'd be interested in trying an IDE that can do this.
orthoganol 2 days ago 0 replies      
First, have in your mind what the function of the chunk of code is. If it's not important to the system, skip it, don't read it. If it is important to the system, take a guess how you think it should work, how you would probably implement it if you were the original develop. Then begin reading it.
LoneWolf 2 days ago 0 replies      
At least to me there is no specific method, I work mainly with Java, since your specific case is JavaScript it may not even apply.

If the problem is some bug and there are stack traces that is my starting point, debugger and a few breakpoints chosen from the trace and then follow the stack and from there I start knowing how it is structured, and then the next bug and so on (fixing them of course)For code where I need to add features things get a little more tricky, but there is always some entry point, a web-service invocation, some web page, and try to understand what it is currently doing, again using the debugger to follow the calls and how the data is changed (sometimes even going into libraries).

Reading the docs if there are any is also a good place to start.

Once again, use the debugger a lot, makes it easier to understand than just reading the code.

(edit: formatting)

meadori 2 days ago 0 replies      
I enjoyed this presentation by Allison Kaptur on how to understand CPython better:


While it is focused on CPython, most of the techniques are applicable elsewhere. It also mentions a great article by Peter Seibel (http://www.gigamonkeys.com/code-reading/) that discusses why we don't often read code in the same way we would literature.

Essentially, as the complexity of software has grown people have been forced to take a more experimental approach to understand software even though it was created by other people.

macNchz 2 days ago 0 replies      
A proper IDE can go a long way towards understanding a large codebase. It will be able to index everything so you can really quickly jump around the projectbeing able to jump directly from a method call to its declaration without momentarily context switching to search for where it lives is very valuable.

As you start to add to a project the IDE can also prove valuable in discovering how everything fits together, since it will provide smart and helpful completions with docstrings, method signatures, types etc. This can really help you start writing new code a lot faster.

Also, an IDE will usually also have a decent UI for running the code with a debugger attached, which can be incredibly useful for understanding the changing state of a running program.

twunde 2 days ago 0 replies      
The first thing I try to do is to understand the directory structure, ie where should I be looking for files? Hopefully there should be a standard structure that's used. After that I'll typically try to dig in and fix a minor bug or two. This is especially helpful if you can narrow down the part of the codebase you're working on. I also recommend using an IDE like WebStorm which will give you the ability to jump to a function definition and will help you find the functions you're calling.

One thing I do NOT recommend is changing the code style, unless you're ready to take full ownership of the project. It can make it much harder for the project owner to merge in and if there are any lingering PRs those will typically need work to merge in properly.

buremba 2 days ago 0 replies      
I use debuggers a lot for that purpose. It really helps to find the code paths for specific operations. Instead of reading code file by file, just setup a debugger, set a few breakpoints to the code, perform an operation and follow the read application code through through the paths.
shurcooL 2 days ago 0 replies      
This is not a comprehensive answer, but it's additive.

If you're looking at a large Go codebase with many packages, I find it helpful to visualize their import graph with a little command [0].

Here are results of running it on consul codebase:

 $ goimportgraph github.com/hashicorp/consul/...

[0] https://github.com/shurcooL/cmd/tree/master/goimportgraph

gregulator 2 days ago 0 replies      
I've had to ramp up quickly on a number of projects so far during my career, and I can tell you there's no substitute for simply reading the heck out of the code. Yes it takes discipline to go through code line-by-line, and at times may seem pointless or like its "not sticking". But persistence here pays dividends.

The first read-through is not about comprehending everything. It's about exposing your mind to the codebase and getting it to start sinking into your subconscious. It's kinda like learning a new piece on the piano.

dmuth 2 days ago 0 replies      
As someone who hates debuggers and is a fan of "learning by doing", I make heavy use of console.log() or similar, and I start putting breakpoints all over the code that print out sentinels ("hey, I'm in this part of the code") and data ("the content of this variable are: XXXX").

Then I run the app and put it through its paces, while watching the output in another console.

If there's some code that doesn't make sense, I use console.log() heavier in that section, to help me fully understand what it does. Once I have that level of understanding, I then write some comments in the code and commit them so that other contributors may benefit in the future.

bliti 2 days ago 0 replies      
This codebase is documented and well structured. I would simply being by tackling the issues on github first and sending pull requests. No need to take over it right away. After you feel comfortable reading the code and knowing where is what, you can ask to become a maintainer.

I'd try to fix it using the same style used in the codebase. This way anybody else reading, maintaining ,or using it won't have to make sense of the new style. Pay attention to how each method is defined. They are very readable. Very few traces of complex one line statements.

Most importantly, be patient. You won't be any good with it in less than 2 weeks of constant tinkering. Good luck.

misterjinx 1 day ago 0 replies      
This is one of the reasons I've always thought that each project should have a minimal developer documentation that should include the project's scope, how it's structured, what are its main components and how they are connected etc. This would help a lot a future developer to faster start working on the actual project and reduce the initial time spent on figuring what is all about.
bonestamp2 2 days ago 0 replies      
I like to try two impractical tasks (impractical in the sense that they might not be possible, which is fine).

1. Access some data in the highest level component from one of the lowest level components

2. Access some data in one of the lowest level components from one of the highest level components

In a lot of cases, good architecture will prevent one or both of these from being possible, but identifying how data flows through the app seems to be a good way to understand the general architecture, limitations and strengths of most apps. These two tasks give concrete starting points for tracing the data flow.

makmanalp 2 days ago 0 replies      
I do divide-and-conquer. Find some part or feature of the tool you know from an outsider perspective, and then try to find it within the code. Then work backwards from there. Maybe even try to fiddle with it to change how it works, and see what happens.

I think reading each file or reading the data structures is more difficult because you have no familiarity as to what is going on and you have no knowledge of why things are structured as they are, so it'd end up like reading a math paper straight down: memorize a ton of definitions without knowing why, until you finally get to the gist of it.

deepaksurti 2 days ago 0 replies      
I first try to familiarize myself with the high level design/org of the code base, going through the README, other docs, looking at the test code if any and just generally scanning the important files/modules etc.

Then I prefer to jump into fixing any existing issue. Working on fixing an issue teaches a lot, more fixes, then features, rinse, lather, repeat.

While this post talks about fixing compiler bugs, the overall steps are much replicable: http://random-state.net/log/3522555395.html

perlgeek 2 days ago 1 reply      
git grep.

I search for strings that appear in the frontend (or generated HTML source, or whatever), and then I use a search tool (git grep) to find where it comes from. And then I the same search tool again to trace my way backwards from there to where it's called, until I find the code that interests me.

And then I form a hypothesis how it works, and test it by patching the code in a small way, and observe the result.

Oh, and don't forget 'git grep'. Or ack, or ag, or your IDE's search feature.

mtrn 1 day ago 0 replies      
Related question of programmers.se: http://programmers.stackexchange.com/q/6395/436

> What tools and techniques do you use for exploring and learning an unknown code base?

kalari 2 days ago 0 replies      
I usually skim the code to get an idea of patterns and organization, get it working in a local environment and then run/step-through the code. This usually gives a good idea of what different pieces do.
niuzeta 2 days ago 0 replies      
First build and run. See what it does. Check what it does and what I think it does, see how they differ.

Start from main() and start from the one click event(or any end-game action). Try to connect the two.

crcsmnky 2 days ago 0 replies      
While this generally works best for larger code bases, I tend to start reading through open bugs/tickets and find things that appear easy. Then I will assign them to myself and do what I can to fix it or at least track it down.

Generally I find it hard to just start reading through packages, source, functions, etc. and find it much easier to try and solve some sort of problem. By tracking and debugging a particular issue through to the end, I find a learn a lot about the codebase.

fsloth 2 days ago 0 replies      
I try to compose a formal model and algebra of the codebase - quite informally, mind you. Takes a bit of pen and paper and a few caffeinated drinks usually.

People really do learn quite differently and everyone needs to find their mode of learning - there is no one single true way. This is one of the most important skills in software development, IMO. Once you learn how you learn you can apply it to most new contexts.

I write stuff down because for me that-the process of writing seems to be the most effective way to learn.

sown 2 days ago 0 replies      
I only recently developed this skill a little.

The Ruby application server I looked at was for doing social network feeds. Posts/Likes/Comments go in, feeds come out.

I followed some common code paths for things such as posting a comment and getting a feed. I would write the stack trace down on paper as I went.

It also helped that I happen to know that this ruby server used wisper and sidekiq. This way I didn't overlook single lines of code such as 'publish: yada yada'

zaphar 2 days ago 0 replies      
Other than the many great answers here I will frequently start by doing cleanups of the codebase.

I'll start reading the files using any of the strategies mentioned here and looking for things I can cleanup. Formatting, Simple Refactors, Normalizing Names.

These are all things that are comparatively easy to do and safe but force you to reason about the code you are reading. Asking yourself what you can refactor or fix the naming for is a deent forcing function for actually understanding the code.

xarien 2 days ago 0 replies      
I'd speak to the last person who worked on it face to face with a whiteboard and a marker handy. Get a brain dump ASAP. Even if the person no longer works there, you can take some time to contact them for a lunch. Most people would not say no to this type of request (especially if you're buying). Just make sure you have questions ready so you don't waste their time.
zzzcpan 2 days ago 0 replies      
I found call tracers to be the most efficient way to do this kind of thing. It could be as simple as a perl script inserting printfs on every call and every return, since not every compiler supports instrumentation.

Simply digging through code, tests or reading commit messages in an unfamiliar code base takes at least an order of magnitude more time.

EDIT: tried call graphs too, better than reading through code, but still require you to understand and filter out a lot of unnecessary information.

bozoUser 2 days ago 0 replies      
I have recently jumped onto working for a very huge codebase at work. In general here are a few tricks that helped me. 1) Look at the unit tests and see the flow of the code 2) Try to make a mental picture of how the code is organized(doing it on paper is more helpful) 3) Every codebase has few core classes that do lot of heavy lifting, talk to other contributors and ask them to point you to these.2) also helps you achieve this. Good luck.
amenghra 2 days ago 0 replies      
When you find interesting pieces of code, look at the commit that brought it to life. Commits contain precious gems of information: you'll understand what files are related, who worked on which parts of the codebase, how the commit was tested, related discussions, etc.

Some people use graphical tools to visualize a codebase (e.g. codegraph). It can help you understand what pieces of code are related to each other.

thoman23 2 days ago 0 replies      
If it's code that I need to understand in intimate detail, I actually trace through the code keeping notes with pen and paper. I complement a simple reading of the code with actually exercising the code with test data and a debugger. I go through a few iterations, each time learning a little more about what is important and what can be safely ignored, until I eventually build up a Gliffy diagram of the important parts.
ivan_ah 2 days ago 0 replies      
On that note, could someone recommend a tool for automatically generating the graph that shows the class dependencies/hierarchies in a Java code base? I'm sure there are good tools out there, but all the ones I tried so far (JArchitect, CodePro Analytix, SonarQube) don't seem to have a good graph layout engine.

I'd like to print out a big graph and stick it to the office walls so I'll have a good view of the logical structure.

lucidguppy2000 1 day ago 0 replies      
Write characterization tests for modules, see what inputs produce which outputs. Then you have the start of unit tests.

Programming with unit tests really helps. And it points out where certain parts are too entangled and bound to implementation.

kh_hk 2 days ago 0 replies      
When adding support for small new features or fixing bugs on large codebases the answer is: you don't [1].

You do not need to familiarize yourself with the full codebase at the start. It's too time-consuming and mostly not worth the effort. Set up an objective and go for it slashing your coding axe around until it works.

[1]: Unless you have an special interest or you are assumed to familiarize with the codebase.

exacube 2 days ago 0 replies      
One idea is to useLinux's `perf` to sample stack traces, as the program is running, over a minute or so and see where the code flows.
richardlblair 2 days ago 0 replies      
IMO, the one tool you can't do without is grep.

My typical strategy is to get the project running, then just get to work. Start fixing bugs, and adding requested features. Use the code around you as a guide on what is right and wrong within that company, and forge forward. When you are unsure of something turn to grep, find some examples, and keep going.

kungfooman 2 days ago 0 replies      
Overwrite functions in dynamic languages (like JavaScript) with some "dump all arguments code" and call/return the original function, to get a quick glimpse in the code. Though this doesn't work with closures without some extra eval tricks.
estsauver 2 days ago 1 reply      
I try to work backwards from the public api to get a sense of the operations that are supported by the system. A trick I picked up from a thoughtbot training video a couple years ago for Rails applications is to look at the routes file. If you work with webapps, the routes generally define the things that people can do.
ausjke 2 days ago 0 replies      
I use source navigator to understand the code base. I wish someone will keep improving it, especially the font etc under linux is not looking impressive, under Windows it's all I need. I'm unsure if other tools can provide as many functions for code base analysis.
makuchaku 1 day ago 0 replies      
Start with smaller bugs & try to fix them. Bugs help you to focus your understanding on very small parts of code/paths. This helps in time spent vs output vs confidence.
benjamg 2 days ago 0 replies      
Assuming there is some form of bug list associated with it that is often my preferred way to learn a new code base.

Try to fix a bug and you'll soon find yourself having to learn how the code involved works, and with a goal your focus will be better than just reading through the code flow.

pbreit 1 day ago 0 replies      
Best thing by far is to find someone familiar with the code and spend 15-30 minutes with them in person or by phone. That should be possible in the vast majority of situations.
puissance 2 days ago 0 replies      
I don't.

Take the extreme programming approach. Don't try to familiarize yourself with a new codebase all at once. Start small. Work on a small ticket. It will, organically, help you assimilate what's happening.

ak39 2 days ago 0 replies      
"You cannot understand a system until you try to change it." ~ Kurt Lewin
MarkMc 2 days ago 0 replies      
One thing helps me enormously: I sketch a class diagram as I explore the code. Here's an example:


fasteo 2 days ago 0 replies      
Brute force: Choose a new feature to implement and start looking for the place to write your first line of code.

This is probably not the best way to approach this, but I am somehow ADHDish and I need a clear task to avoid perpetual diving in the codebase.

stuaxo 2 days ago 0 replies      
Back when I did Java, using static analysis tools like findbugs, then going and fixing all the issues found was a good way to get coverage of the codebase... I'm sure for JS there must be similar analysis tools.
antoinevg 2 days ago 1 reply      
Read it until I can identify which fad of the moment the author was following.
Lord_Cheese 2 days ago 0 replies      
If there is a bug list handy, I find tackling a few small ones is often an excellent way to get to know a codebase. It also gives some good insight into the codebase's quirks and oddities.
IanCal 2 days ago 0 replies      
Try doing some profiling. It'll take you through some of the more heavily used parts of the code, is useful in and of itself, and provides a target / some focus.
netoarmando 2 days ago 0 replies      
Good resource for Code Spelunking: http://www.codespelunking.com/
blago 2 days ago 0 replies      
The first thing I do is turn on db and http request logging. Sometimes this alone can be quite a challenge.
OpenDrapery 2 days ago 0 replies      
Pick a class and new it up from a unit test. You will quickly find out where the dependencies are, and how tightly coupled things are.
elkhourygeorges 2 days ago 0 replies      
Pick couple of bugs and fix them. Best way to familiarize yourself with a new codebase.
nickbauman 2 days ago 0 replies      
I always read the tests first. (If there are no tests, I don't take the job. Life is too short.)
chris_wot 2 days ago 0 replies      
Answer: with great difficulty.
lloyd-christmas 2 days ago 0 replies      
Break it one line at a time.
AdrianRossouw 2 days ago 0 replies      
read tests, and then start writing tests for things.

something usually comes up.

dm03514 2 days ago 0 replies      
Build and run the project locally

Then I write unittests

aikah 2 days ago 1 reply      
sourcegraph.com can help.
gdubs 2 days ago 0 replies      
Fix a bug. Repeat.
dm03514 2 days ago 0 replies      
I Write unittests
latenightcoding 2 days ago 0 replies      
grep -r "function()" .
coolsunglasses 2 days ago 0 replies      
If it's in Haskell, I start cleaning up and refactoring datatypes.

Like changing some function like:

 Text -> Text -> IO ()

 ServerHost -> Path -> IO ()
Changing the types will naturally lead you through the codebase and help you learn how everything fits together via the type errors.

In any language I'll try to read the project like the Tractatus.

In stuff that isn't Haskell? Break stuff and run the tests.

mVChr 2 days ago 0 replies      
I've spent the last year rebuilding a huge business-critical system from scratch (along with one other engineer). Yes, usually complete rewrites are a Bad Idea, but in this case product and business decided it was the only way to move forward because the system was in maintenance hell and it was way too difficult and risky to add new features. I discovered why as I learned the architecture, business logic and features of this behemoth pile of spaghetti. Here's what I recommend to do if you're in a similar situation, whether it be a large and great project or a large and horrible project...

- Get a functional dev environment set up where you can mess around with things in a risk-free manner. This includes setting up any dev databases and other external dependencies so that you can add, update and delete data at will. There's nothing that gives more insight than changing a piece of code and seeing what it breaks or alters. Change a lot of things, one at a time.

- Dive deep. This is time consuming, but don't be satisfied with understanding a surface feature only. You must recursively learn the functions, modules and architecture those surface features are using as well until you get to the bottom of the stack. Once you know where the bottom is you know what everything else is based on. This knowledge will help you uncover tricky bugs later if you truly grok what's going on. It will also give you insight as to the complexity of the project (and whether it's inherent to the problem or unnecessary). This can take a lot of time, but it pays off the most.

- Read and run the tests (if any). The tests are (usually) a very clear and simple insight into otherwise complex functionality. This method should do this, this class should do that, we need to mock this other external dependency, etc.

- Read the documentation and comments (if any). This can really help you understand the how's and why's depending on the conscientiousness of the prior engineers.

- If there's something that you really can't untangle, contact the source. Tell him what you're attempting, what you tried, exactly why and how it's not working as you expect, and ask if there's a simple resolution (I don't want to waste your time if there's not). You may not get an answer, but if you've done a lot of digging already and communicate the issue clearly you might get a "Oh yeah, there's a bug with XYZ due to the interaction with the ABC library. I haven't had time to fix it but the problem is in the foo/bar file." You may be able to find a workaround or fix the bug yourself.

- When you do become comfortable enough to add features or fix issues, put forward the effort to find the right place in the code to do this. If you think it requires refactoring other things first, do this in as atomic a manner as possible and consult first with other contributors.

- Pick a simple task to attack first, even if it's imaginary. Get to more complicated stuff after you've done some legwork already.

There are other minor things but this is generally my approach.

yellowapple 2 days ago 0 replies      
It depends on the language, the libraries, the tooling, etc.

My dayjob is with a Ruby on Rails consultancy. Said dayjob involves familiarizing myself with a lot of different codebases. My strategy here is rarely to try and digest the whole codebase all at once, but rather to focus on the portions of code specific to my task, mapping out which models, controllers, views, helpers, config files, etc. I need to manipulate in order to achieve my goal.

The above strategy tends to be my preference for most complex projects. The less I have to juggle in my brain to do something, the better. I tend towards compartmentalizing my more complex programs as a result. For simpler programs (and portions of compartmentalized complex programs), I just start at the entry point and go from there.

Languages with a REPL or some equivalent are really nice for me, especially if they support hot-reloading of code without throwing out too much state. Firing up a Rails console, for example, is generally my first step when it comes to really understanding the functionality of some Rails app. For non-interactive languages, this typically means having to resort to a debugger or writing some toy miniprogram that pulls in the code I'm trying to grok and pokes it with function calls.

For some non-interactive languages, like C or Ada, I'll start by looking at declaration files (.h for C and friends; .ads for Ada) to get a sense of what sorts of things are being publicly exposed, then find their definitions in body files (.c/.cpp/etc. for C and friends; .adb for Ada) and map things out from there. Proper separation of specification from implementation is a godsend for understanding a large codebase quickly.

For a rigorously-tested codebase, I'll often look at the test suite, too, for good measure. When done right, a test suite can provide benefits similar to specification files as described above; giving me some idea of what the code is supposed to do and where the entry points are.

Email reminder, 1d@gleym.com gives you a reminder in 1 day,
7 points by panon  8 hours ago   4 comments top 3
hellbanner 4 hours ago 0 replies      
Cool. I've been wanting to build this, glad to see someone make it!
Jocund 6 hours ago 0 replies      
Neat idea. I currently use the snooze feature in the Mailbox app for reminders, so I'm not sure when I would use this.
motti 4 hours ago 1 reply      
Have you seen followup.cc?
Tell HN: Commercial VPN service now in open source
145 points by v_ivanov  1 day ago   35 comments top 11
benedikt 1 day ago 2 replies      
Hi there,

I did the same. I founded a VPN provider[0] in my free time. It is still running, but I have at times been close to shutting it down.

Most of my code has been open the whole time and is on github[1]. Some internal tools and the website are not on github though. I went with AGPL for license. It'll make my day if someone forks my code and founds their own provider.

I operate out of Iceland and most of my clients are Icelandic. The biggest use case for my service was ISPs in Iceland charging extra for international bandwidth. By having my servers in Icelandic datacenters, I was able to provide my customers with significantly lower prices for bandwidth, thereby lowering the cost of internet for a lot of people. Considering the huge time investment that has gone into this side project, I have not made much money from it. But knowing that I helped my internet usage more affordable is something that has made this project meaningful for me.

Since I started, lots of things have changed. Some ISPs are now offering unmetered connections (this was unheard of before). Others have lowered their prices. I have heard people attributing part of these changes to me and my company.

I have not experienced DDoS attacks like you, but I have been the subject of meetings at some regulatory boards in Iceland, as well as at the monopoly behind the submarine cables[2] connecting Iceland to the world (the source of this dual-pricing schemes). One hosting provider was forced to change their core routing shortly after I starting hosting with them, to make me unable to host there. Other providers have come under preassure from this monopoly to kick me out. Like you said, you feel like your service was real -- someone with a vested interest against it was watching me.

Some time in the near future I will shut down the service. It's just time to move on to other projects and time to recognize that it's fulfilled it's usefulness. I know I will walk away from this project with a great sense of accomplishment, I am proud and happy with the work I did.

[0]: www.lokun.is

[1]: https://www.github.com/benediktkr/lokun-record

[2]: https://en.wikipedia.org/wiki/FARICE-1

2bluesc 1 day ago 1 reply      
This is an interesting read! Like some of the others here I too am trying this. A friend and I founded a VPN provider[0] targeting short term subscriptions (i.e. VPN while at a coffee shop, etc) and later some other novel features as we get further down the road.

I first got an idea for this after publishing my OpenVPN docker image [1][2] which received more attention then I ever imagined. The BackRoad[0] service runs all the VPNs with the exact docker image in the public github repo[2] + CoreOS and all that jazz to make it scale.

I come from a hardware background where starting something is completely different then a web service. I think it's interesting with only minimal risk as you've pointed out.

Thanks for sharing!

[0] http://backroad.io

[1] https://registry.hub.docker.com/u/kylemanna/openvpn/

[2] https://github.com/kylemanna/docker-openvpn

dclusin 1 day ago 2 replies      
Thought about doing this. Questions:

-Which VPN server software did you use?-Did build your own custom client wrapper, or did you have people download something like OpenVPN and enter the configuration info themselves

-How many customers did u end up getting?-Was it hard to acquire customers?-Were people more price sensitive or feature sensitive?

JamesWT 16 hours ago 1 reply      
I'm also setting up a small VPN service with friends.Mostly aimed at penetrating the firewall at my university. Although we chose to use SoftEther VPN instead of OpenVPN.


uzyn 14 hours ago 1 reply      
Thanks for doing this!

Something I've always wondered, for the VPN providers out there, how do you guys protect yourself from the liability as a result from the actions of your customers, whom are supposedly anonymous?

caspereeko 15 hours ago 0 replies      
You can use oh-my-vpn to setup shared VPN server with your friends. https://github.com/alaa/oh-my-vpn
borski 22 hours ago 0 replies      
This is great - thanks for doing this. We did something similar, helping people build their own OpenVPN servers here: https://www.tinfoilsecurity.com/vpn

I'm all for more great and easy-to-use VPN tools! :)

joshmn 1 day ago 1 reply      
I see you baked most of everything from scratch as far as your control panel goes. Is there any reason why you didn't simply opt for something like WHMCS and then bake in your own API wrapper?
pessimizer 1 day ago 1 reply      
You're a fantastic person, and thanks for doing this. Hopefully it'll be the spark that ignites someone else's passion.
rasengan 1 day ago 0 replies      
VPNs are cool :D
eps 1 day ago 3 replies      
> Internet in russia became very limited and censored.

I guess that you must really be craving attention or perhaps it was a part of your marketing pitch, but try and not exaggerate things beyond ridiculous. Internet in Russia is a far cry from being "very limited". I travel there every few months to see family and I'm yet to hit any limitations or blacklists.

Ask HN: Why doesn't Google Analytics fix this?
18 points by mfkp  1 day ago   8 comments top 7
kull 52 minutes ago 0 replies      
Indeed, I started working on this http://ninjaspam.com/, work in progress
kewball 14 hours ago 0 replies      
Yep GA has become mostly useless for me too. I tried checking the box for Google to automatically remove known referral spam on all of my sites but it doesn't seem to change a thing. Might not be such a problem for sites with a lot of traffic but for most of mine spam > valid traffic
true_religion 11 hours ago 1 reply      
In my experience GA, has proved pretty useless for sites which get less than 1,000,000 sessions per month.

If you have so few sessions that just 1000 referrals can swamp your analytics, even for a day, then GA isn't that great.


Anyways, I'm curious... are hits from this group of sites not legitimate hits? I mean if it's not bot traffic, why should it be filtered by default. You can create your own filters.

dalerus 20 hours ago 0 replies      
It's a huge problem for us, we manage analytics on a large group of sites and reporting back to the client has become a huge pain.

We have to setup custom filters for all of these. Google does have a feature to automatically remove know sources, but it's not turned on by default. Here's the announcement: https://plus.google.com/+GoogleAnalytics/posts/2tJ79CkfnZk

We also run Piwki on all our client's websites as well and they block this junk automatically: http://piwik.org/blog/2015/05/stopping-referrer-spam/

Seth_R 20 hours ago 0 replies      
Yeah we also see these on our analytics.There's a thing called spamninja that handles this, see at http://ninjaspam.com/

We will soon start working with this new analytics tool - Kilometer.io that will most chances be very good tool and a nice competitor.They now have this beta waiting list for a month at - http://www.kilometer.io

mrhhug 14 hours ago 0 replies      
> Why doesn't Google Analytics fix this?

fix? They are giving you the data you asked for. You can ignore web requests based on referer. Why are you sending these places data back? You are wasting bandwidth.

well......I have maintain the full stack on the sites I care about, so I would ignore based on referer, but i acknowledge not every dev has this luxury. I would be mad if a statistical analysis app fudged my numbers as default.

Ask HN: Best host for a one-page website?
34 points by nahcub  8 hours ago   41 comments top 27
ninjakeyboard 8 hours ago 2 replies      
I'll echo:- Github Pages

Also you can look at:- https://neocities.org/ is ad free and free

Then if you're willing to compromise a bit, these are easy and free:

- Wordpress if you want to post an article. It'll put spam on your page though.

- Google sites is a good wiki style solution for posting a few things up with a wysiwyg editor.

- If you don't want it to be an html page, there is also google docs and google drive so you can share an artifact.

sinak 8 hours ago 1 reply      
Github pages is a great way to go, you basically push to a branch called "gh-pages" and a file in the root called CNAME with the domain and you're done.


elliottburris 7 hours ago 0 replies      
I'm voting Amazon S3. Super cheap, scalable, and easy to set up & maintain
27182818284 7 hours ago 1 reply      
You can do something with your own custom domain and dirt cheap rates with https://www.nearlyfreespeech.net/

You can deposit some money and if it doesn't get used, it just stays in the account, rather than an automatic cost per month.

savanaly 8 hours ago 0 replies      
I believe Github Pages is right for you. It is free.


VoxPelli 7 hours ago 1 reply      
My impression:

Free hosting: https://pages.github.com/ currently using for a couple of sites and it works very

Paid hosting: https://divshot.com/ thinking of using for some sites mainly because I can get https on a custom domain there, which I can't at GitHub Pages

phliver 8 hours ago 0 replies      
I haven't used this service in a VERY long time, but you can give NearlyFreeSpeech.NET a shot. They offer free hosting.https://www.nearlyfreespeech.net
unicornporn 8 hours ago 2 replies      
Tumblr will probably work very well. HTML and CSS is fully customizable. You don't need to form your "theme" in a blogish fashion. Connecting a domain is free.
saukrates 7 hours ago 0 replies      

1. Sign Up2. Drag & Drop3. Done

daigoba66 7 hours ago 1 reply      
Amazon S3 will cost you only pennies a month.
krat0sprakhar 7 hours ago 1 reply      
Checkout http://surge.sh. Free, production grade CDN, easy-peasy CLI integration, one command deploys.
fallenhitokiri 6 hours ago 0 replies      
As others have mentioned AWS S3 is a good way to put a static page - not just a one-page website but everything that does not require a server side language - online. Additionally and IIRC without significantly increasing your bill you can put AWS CloudFront in front of your S3 bucket and you get a CDN nearly for free.
NeatoJn 7 hours ago 0 replies      
You can use Dropbox for hosting. If you have got a "public" folder, copy the HTML file into it and get a direct link.

or you can use some service like pancake (pancake.io, currently i am getting 503 error though, not sure whether it is permanently down), my.droppages(my.droppages.com) etc.

bartosaurus 5 hours ago 0 replies      
Github pages are awesome, but I also encourage you to check out https://surge.sh/
jonnyrockit 8 hours ago 0 replies      
Github pages works really well.

An example of a site running on it: http://arthur-osx.com/

cpursley 8 hours ago 0 replies      
I'm a big fan of divshot.io for this sort of thing. Easier to set up than the other suggestions and they've got a free tier.
nkh 7 hours ago 0 replies      
kentt 7 hours ago 0 replies      
Openshift has free tier. It works similar to Heroku. The downside is that it is likely overkill for a one page site.
epeus 7 hours ago 0 replies      
Blogger and appengine both have ways to do this, depending on whether you prefer a gui or a command line.
volent 8 hours ago 0 replies      
thekaleb 7 hours ago 0 replies      
https://divshot.com seems reasonable
mandeepj 5 hours ago 0 replies      
Google app engine. It is much cheaper than Amazon s3
pki 8 hours ago 0 replies      
free: github pages

cheap: static s3 index.html

daakus 7 hours ago 0 replies      
GitHub pages + Cloudflare.
nilmonibasak 6 hours ago 0 replies      
Github pages or amazon S3
fweespeech 6 hours ago 0 replies      
Honestly a push CDN zone like Cloudfront or https://www.keycdn.com/pricing is what I'd suggest. Its not free but its pretty close. $1/month unless its super busy.
Ask HN: Open source OCR library?
262 points by whbv  4 days ago   97 comments top 30
hbornfree 3 days ago 1 reply      
As others pointed out, Tesseract with OpenCV (for identifying and cropping the text region) is quite effective. On top of that, Tesseract is fully trainable with custom fonts.

In our use case, we've mostly had to deal with handwritten text and that's where none of them really did well. Your next best bet would be to use HoG(Histogram of oriented gradients) along with SVMs. OpenCV has really good implementations of both.

Even then, we've had to write extra heuristics to disambiguate between 2 and z and s and 5 etc. That was too much work and a lot of if-else. We're currently putting in our efforts on CNNs(Convolutional Neural Networks). As a start, you can look at Torch or Caffe.

kargo 3 days ago 3 replies      
Does it have to be open-source? If free, but not trainable and restricted to Windows apps/phone is good enough, then I recommend the Microsoft OCR library. It gives you very, VERY good results out of the box. An excellent piece of work from Microsoft Research. To test it, see for example https://ocr.a9t9.com/ which uses Microsoft OCR inside.

And for comparison, an OCR application with Tesseract inside: It has a dramatically lower text recognition rate: http://blog.a9t9.com/p/free-ocr-windows.html

(Disclaimer: both links are my little open-source side projects)

physcab 3 days ago 3 replies      
I tried using Tesseract and could not get it to work reliably. I tried a bunch of different pre-processing techniques and it turned into a very frustrating experience.

When I compared Tesseract to Abbyy, the difference was night and day. Abbyy straight out of the box got me 80%-90% accuracy of my text. Tesseract got around 75% at best with several layers deep of image pre-processing.

I know you said open source, and just wanted to say, I went down that path too and discovered in my case, proprietary software really was worth the price.

bittersweet 3 days ago 5 replies      
I was actually looking in to Tesseract yesterday, so this post coincides nicely.

I have a hobby project where I scrape instagram photos, and I actually only want to end up with photos with actual people in them. There are a lot of images being posted with motivational texts etc that I want to automatically filter out.

So far I've already built a binary that scans images and spits out the dominant color percentage, if 1 color is over a certain percentage (so black background white text for example), I can be pretty sure it's not something I want to keep.

I've also tried OpenCV with facial recognition but I had a lot of false positives with faces being recognized in text and random looking objects, and I've tried out 4 of the haarcascades, all with different, but not 'perfect' end results.

OCR was my next step to check out, maybe I can combine all the steps to get something nice. I was getting weird texts back from images with no text, so the pre-processing hints in this thread are gold and I can't wait to check those out.

This thread is giving me so much ideas and actual names of algorithms to check out, I love it. But I would really appreciate it if anyone else has more thoughts about how to filter out images that do not contain people :-)

jlangenauer 3 days ago 4 replies      
Tesseract is ok, but I gather that a lot of the good work in the last few years on it has remained closed source within Google.

If you want to do text extraction, look at things like Stroke Width Transform to extract regions of text before passing them to Tesseract.

j-pb 3 days ago 1 reply      
Not really. Everything out there is ancient and uses techniques from the 80s/90s.

It's pretty sad considering that OCR is basically a solved problem. We have neural nets that are capable of extracting entities in images and bigdata systems that can play jeopardy. But no one has used that tech for OCR and put it out there.

rashfael 3 days ago 1 reply      
(Disclaimer: I work for creatale GmbH)

As you mentioned ocrad.js I assume you search for something in js/nodejs. Many others already recommended tesseract and OpenCV. We have built a library around tesseract for character recognition and OpenCV (and other libraries) for preprocessing, all for node.js/io.js: https://github.com/creatale/node-dv

If you have to recognize forms or other structured images, we also created a higher-level library: https://github.com/creatale/node-fv

t0 4 days ago 1 reply      
The accuracy of GOCR is very high and it doesn't require any learning.


Omnipresent 3 days ago 2 replies      
I've used tesseract to great affect. I don't know how your images are but if only part of the image has text in it, you should only send that part to the OCR engine. If you send the entire image and only a portion of it has text in it, chances of the OCR extracting text are slim. There are pre-processing techniques [1] you can use to crop out the part of the image that has text

[1]: https://en.wikipedia.org/?title=Hough_transform

byoung2 4 days ago 2 replies      
awjr 3 days ago 0 replies      
Been looking at Number Plate Recognition and https://github.com/openalpr/openalpr has been my go to solution at the moment. It uses Tesseract and OpenCV.
stevewepay 3 days ago 5 replies      
I used Tesseract and OpenCV to process Words With Friends tiles.
awfullyjohn 3 days ago 0 replies      
I've tried using Tesseract before, the biggest of the open source libraries. It goes from "okay" to "terrible" depending on the application.

Our particular application was OCRing brick and mortar store receipts directly from emulated printer feeds (imagine printing straight to PDF). We found that Tesseract had too many built-in goodies for image scanning, like warped characters, lighting and shadow defects, and photographic artifacts. When applied directly to presumably 1 to 1 character recognition, it failed miserably.

We found that building our own software to recognize the characters on a 1 to 1 basis produced much better results. See: http://stackoverflow.com/questions/9413216/simple-digit-reco...

dr_hercules 3 days ago 0 replies      
zaphar 3 days ago 0 replies      
I used the go wrappers for tesseract[0] in my full text search indexer for disks[1] and it worked great. No issues it handled pretty much anything I threw at it.

With the caveat that none of the stuff was handwritten.

[0] http://godoc.org/gopkg.in/GeertJohan/go.tesseract.v1[1] https://bitbucket.org/zaphar/goin/

kxyvr 3 days ago 0 replies      
It depends on what you're trying to do. For myself, I wanted to OCR scanned documents and I've been moderately successful using ScanTailor to process the images and then Tesseract to OCR the result. Certainly, it's far from perfect and the documentation on Tesseract and its options is spotty, but I've been moderately happy. As a note, I've had better luck with the current trunk in the git repo of Tesseract than the point releases. Some of the older versions of Tesseract modified the images when processing to a PDF and this was unacceptable to me.
JeremyWei 3 days ago 1 reply      
you may try baidu OCR API https://github.com/JeremyWei/baidu-ocr
zandorg 3 days ago 0 replies      
An important aspect is stripping text from image, before OCR'ing: http://sourceforge.net/projects/tirg/


Examples here: http://funkybee.narod.ru/

baken 3 days ago 0 replies      
I'm working on these problems for applications in the financial industry right now. We are building some interesting technologies and have quite a bit of funding from top VCs. We are looking to hire people who know this problem cold. Let me know if you're curious. nate@qualia-app com
rajadigopula 3 days ago 1 reply      


Apologies, I am not sure if its open source.

steeve 3 days ago 0 replies      
We've had great success with CCV's SWT to indentify text zones and Tesseract to extract it.

[1] http://libccv.org/doc/doc-swt/

ihodes 3 days ago 0 replies      
A coworker had great success using Ocropus (which uses neural nets under the covers) extracting test from the backs of many photos for Old New York.
dharma1 3 days ago 1 reply      
Tesseract with ccv for SWT works but is a bit of a slow dog. Anyone used deep learning (caffe maybe?) for OCR?
mattdennewitz 3 days ago 0 replies      
apache tika + ocr is an excellent combination - https://wiki.apache.org/tika/TikaOCR
automentum 3 days ago 2 replies      
Any references on OCR to extract MICR (font E13B) for desktop as well as Android?
ivanca 3 days ago 0 replies      
Judging by the comments there is much space for improvement on open source OCR libraries, maybe someone with experience in the field should start a kickstarter for it, there must some here in HN itself; maybe something with CLI and GUI and layout recognition.
SXX 3 days ago 0 replies      
Few years ago I used Cuneiform, but looks like it's dead now.
tiatia 3 days ago 0 replies      
Tried tesseract, it worked very poorly. I don't think there is anything that compares well to Abbyy.

Unfortunately the native Linux version is a bit pricey:http://www.ocr4linux.com/en:pricing

Otherwise I would use the command line version to help me index all my data.

Ask HN: What can I do to turn things around and make my 30's good?
101 points by tonym9428  1 day ago   81 comments top 37
themgt 1 day ago 2 replies      
(re: another comment) I knew a couple people in the french foreign legion, and I wouldn't recommend joining them unless you want to become even more fucked up.

What I would recommend instead, is save up a bit of money and move to another country (South America, Southeast Asia, even Eastern/Western Europe if you can swing it). There you will not fail background checks, and in many countries you can easily get a job teaching English (with or without a small amount of training) which will be more than enough to pay your bills. Your quality of life will be far higher than living with your parents.

Start a consultancy doing the skilled work you want while you pay your rent by teaching English. Work on your social skills, and probably the deep underlying reasons those skills are lacking (by the way, this will help building the consultant work over time). Take some psychedelics, get outside your comfort zone with people and activities, enmesh yourself in a new culture, learn a new language. This will all take time, and I'd encourage you to keep moving between cities or countries a bit until you find a situation that feels right and you don't want to leave.

You don't like who you are now, so become the new person you want to be. It will be a lot easier to do that in another country. Even if the felony would prevent you from getting a permanent visa immediately, you'll be able to indefinitely do visa runs in the vast majority of developing countries with little hassle.

mattmurdog 1 day ago 1 reply      
I would look into trying to get your criminal past expunged. Talk to some lawyers, figure it out. My ex-roommate was able to get his wiped, although it wasn't a felony sex offense case.

Work hard to get a new job, even if it's a crappy one. This will be the key to help you turn your life around. I know it did for me. I struggled during my early late 20s too, and when I turned 30 it felt overwhelming... like what have I been doing with my life? But when I put my head down and started to work hard.

Career became my main focus in my 30s and while I am much older now, I can say without doubt, everything got better. I was able to not worry about money, date more, make more friends, indulge in personal interests, etc.

Use this time living at home to save, take any job related to your interest. Keep looking for better opportunities. Save more money. Get that job. Get that girl. Get your life turned around mentally and emotionally. Don't dwell on the past. Good luck!

joshmn 1 day ago 0 replies      
Dropping in here, because I can't pass a background check either (felony theft - did some stuff to a bank):

I've learned that just being like "yo I can't pass a background check in case you were wondering" only opens up arms and minds. Though, to a felony sex offense... well, it couldn't have been that bad since you did 3 years probation. I got 5.

Reach out to some bigger recruiting agencies, and make sure to prepare yourself for an explanation. From what I've experienced, they'll do the background check, and then ship you off to companies where you won't have to pass theirs.

A question I have for you is this: How has finding a place to live gone for you?

Edit: just remembered that I'm off probation in late August. Yay.

hugozap 1 day ago 2 replies      
The best thing you can do for yourself is to go to therapy. Cognitive behavioral therapy can make a big difference in your life. Find someone in your area and commit yourself to improve with the guidance of someone who can help you.

A lot of the issues you have could be the result of a distorted life perspective. Superficial advice like "lift weights" are not helpful. You need to change your thinking patterns to have results that last.

thaumaturgy 1 day ago 0 replies      
I remember turning 30. It was a sobering number for me too.

The felony: in some cases an attorney can get these reduced to a misdemeanor if you stay out of trouble several years after your probation is over. You might look into this.

The career: there probably aren't any shortcuts. Like a lot of other things, it's a numbers game. Keep sending out resumes and applications, the more the better. Try not to get discouraged (or, at least, don't let that stop you from putting out another resume and application). Do some work in the field. Do anything you can to get your foot in the door somewhere, to keep moving towards your goal. Internship maybe? Somewhere out there is someone who will give you an opportunity. You have to find them.

Keep working on and improving yourself. Get out and socialize if possible. (Meetup is good for this in a lot of areas.) Don't wallow too much in self-pity; learn to be happy with yourself and others will be happy with you too.

Your 20s is disappointing because you screwed up in a way that's going to affect you for a long time. So don't screw up; make your 30s about working towards your goals and recovering from your past decisions. Be stable and reliable and responsible -- become an adult.

themgt 1 day ago 1 reply      
There are many, many people who skip showering, haircuts, exercise and washing dishes and still easily find a girlfriend. The fact that op is 30 and has never had one suggests far deeper social problems, which I think this life-improvement stuff (while not irrelevant) can serve to paper over.
coldwaraaron 23 hours ago 0 replies      
I was in a very similar situation. I had no idea what I wanted to do with my life when I was 18, was angry about a relationship that ended (I had no skills for dealing with it at the time), so I got into drinking and drugs and made a lot of bad choices (which eventually landed me 10 years of probation).

I ended up working a string of minimum wage jobs before finally finding a factory job that was hard, but paid a little more ($13/hour). Since I really wanted to be a professional drummer and tour with a band, I figured that I needed to learn a skill that I could do on the road. I decided to start studying web development and graphic design. I worked a bunch of overtime, bought a used macbook, and started spending all my nights and weekends studying (I have a friend who calls this the Overlap Technique; google it). After a couple years, I had learned enough to get an (unpaid) internship at a small web design agency. That eventually gave me the confidence to start taking on freelance clients when the opportunities came.

The hardest part was learning to like myself again. By the time I was 20, I was overweight at 260 pounds (I'm 5'll). I started making small changes to my diet (stopped drinking soda, started eating healthier foods), and I started walking, exercising, riding my bike around town, etc. I lost 80 pounds over the course of three years, and I felt and looked really good.

I was also fortunate enough to find a group of cognitive therapists who were really smart and really kind who helped me understand the thought patterns that were making me fuck up my own life.

I had two major breakthroughs; the first was after taking shrooms (not a recommendation, mind you) I realized that I could make my life be whatever I wanted it to be. I had control over my decisions, and they would shape my life.

The second was that I had to stop giving a fuck about what the people who didn't know me had to say about the poor choices I made in the past. I understand why I made those shitty choices, and I won't be making them again. If someone wants to be a dick or refuse to work with me because of a bad choice I made in the past, they aren't someone I want in my life anyways.

I turn 30 in two months. I have a solid source of income from multiple clients who I have good relationships with (they've never asked for a background check), a nice girlfriend, and plenty of friends who know about my past and still respect me for the person I am today. They can't even comprehend the level of shithead I was back then because today I am nothing but kind, respectful, encouraging and helpful to everyone I meet.

I hope this helps.

workerdee 4 hours ago 0 replies      
You will be OK. ~hugs~

You won't find peace with a job or a girlfriend or yourself if you are not ready. Even if you are trying things and they are not working - like exercise, therapy, volunteering, religion, hobby groups, etc. - keep trying. It will take time and you will have good and bad days, but you will find something that you connect with. You will find yourself in a good place before you know it. There are some great (free!) motivating resources online that may be helpful during dark times (health scares, medical bills, rejection, finance troubles, etc.).

For example, this TED Talk by Aimee Mullins: http://www.ted.com/talks/aimee_mullins_prosthetic_aesthetics...

baobaba 1 day ago 0 replies      
"Today is the first day of the rest of your life." As cheesy as this sounds, it is deeply true. You can choose every day the kind of person you want to be from now on.

I think the psychological baggage of living with your parents, not having a girlfriend and having a degenerative neurological disorder is far greater than the criminal record. There are ways to reduce the implications of the sex offense on your life, as others suggested. But the other things are what will hold you back.

Consider adopting a meditation practice and practice being nice to yourself. Calling yourself "broken goods" isn't helping matters. The way you think of yourself is the way you carry yourself and how other people see you. Seek examples of happy, accomplished people with missing limbs or serious illnesses.

I found that with a decent salary, meaningful remote job, traveling across some of the most beautiful places in the world and eating amazing food, I came to realize I deeply miss my friends, lack having a local community, and a purpose and meaning in what I was doing.

My best advice if for you to seek ways to bring value to other people's lives through what you do. It doesn't have to be selfless, it can be as simple as writing a blog and sharing your journey. It may take a little while to figure out what brings you happiness, but whatever you do, even if you get a freelance/remote job, don't stay inside and work for days without meeting people. Coworking spaces and cafes are a much better alternative in your situation.

c22 1 day ago 1 reply      
A few years ago I was in a situation remarkably similar to yours and I found that getting a stable long term girlfriend was extremely helpful in keeping me on a good trajectory. Ironically, the only real way to achieve this is to already be on that trajectory. One strategy is to focus on getting really good at something you're interested in. Your mastery will attract both women and employment and the process is not unenjoyable. Another attractive trait (to both mates and employers) is healthiness, so eat healthy things, take vitamin D supplements if you're far away from the equator, and get at least some exercise every day (15 minutes is fine). Building these habits can have positive effects on your mental state as well.
AznHisoka 1 day ago 0 replies      
Go find a job at a very young startup. Few of them do background checks. Or start freelancing.
BorisMelnik 1 day ago 0 replies      
100% either start consulting or move to a different country. I know a few guys who made mistakes when they were young and have been paying the price their entire lives.
dcre 1 day ago 0 replies      
I wish the therapy answers were getting voted up higher. The other answers are okay as far as they go, but a therapist is like a personal coach who can help you pick a path and stick to it. They can be an actual third person to go along with you "thinking about yourself in the third person" (to quote another answer).
jalayir 1 day ago 0 replies      
Hmm, have you tried an online contracting job (https://www.elance.com/)? Maybe get a passport and move to SE Asia, or Latin America, for a fresh environment?
clockwerx 22 hours ago 0 replies      
I enjoy cycling a bucketload. I get a sense of achievement regularly, my health improves, etc. Not a magic bullet but not a high barrier to entry: find a group ride and go.
nowprovision 1 day ago 0 replies      
Many large companies in Asia will use First Advantage (previously LexusNexus I believe) to do background checks so ignore the previous commenter that Asia doesnt do background checks, the same incompetent company used heavily in US and EU. However I would be surprised if startups did background checks, and even if they did if you could put your cards on the table then I doubt it will hinder you, you seem to be upfront here (and with it only probation) so I guess it wasn't anything too evil.
skadamat 1 day ago 0 replies      
You have a wonderful skillset! I would definitely learn more programming and more 'data science' & analytics (datasciencemasters.org) and then think deeply about finding companies whose missions you identify with. The 30's are the best time to think about how to combine your skillset with your ability to make a big impact in the world; it will also help to think about things in this sense because it helps shift some of the focus away from 'what can the world offer me' to 'what can I offer the world'!
RantyDave 20 hours ago 0 replies      
Don't worry about the girlfriend thing. That will fix itself if you fix all the other shit.

Go and get another job as a statistician - by this I do not mean applying for them. Work out where you want to work (ish), find some excuse to get to know people there and just talk about coming to work for them. Is there an annual "stats in the advertising industry" conference? Go there, pay attention, talk to people about stats. Pretty quickly, if you know your shit, doors will start to open.

I got a job offer off a usenet post once.

When it does get to the point where you're physically in their building and talking about whether or not you could come to work for them, fess up. "You should know I've made some mistakes in my past and ... my legal record shows this ... I want you to know before you find out".

Voila. Do the full Trainspotting thing - washing machine, big fucking TV etc. Then meet some women and just be nice. Problem solved, I guarantee it.

jlangenauer 1 day ago 0 replies      
Not that it's an easy solution, or even the right one for you right now, but I'll just note something:

There's (generally) no background checks required for starting or running a business.

You have listed the constraints that currently apply to your life. Think about what sort of life you can create within those constraints, or how you can get around them.

jean316 1 day ago 1 reply      
I'm a programmer, at 29 as well, and I know it's going to sound clich, but this comes from my heart:

The single best suggestion I have for you is to surrender your life to Jesus. God did miraculous thing for me since I decided to let Jesus live in me. I was in search for meaning and found it in Him.

And you don't have to believe me; please ask some people around you who believe. Maybe in your family. They'll probably tell you how God changed their life for the better.

I know you said you're more interested in having a good job/salary and it's OK to seek that, but please also consider your after-death. Jesus said: "For what will it profit a man if he gains the whole world, and loses his own soul?"

God bless you. I'll pray for you my friend.

LarryMade2 1 day ago 0 replies      
Well, you wont be doing interesting things unless you do them... So what if you suck to start off, as long as it doesnt kill you, injure you or get you arrested, pay your penance and give it a shot for a while. If it doesnt work, then try something else that is interesting. At some point you will be known for doing something interesting or have interesting stories of your attempts of trying something interesting.

Part of the pursuit of an "interesting" lifestyle hopefully will get you into networking situations where you might find friends and maybe more romantic interests that share your pursuits.

Stop waiting to start somewhere, and just start.

vvpan 1 day ago 0 replies      
Perhaps visit some sort of counselor every so often? HN might help you with career advise, but a therapist will help figure any problems you have with yourself and others. You don't have to be crazy to seek assistance.
derptacious 22 hours ago 0 replies      
Work on meditation and social relationships. It sounds like that felony was your biggest stumbling block, which means you'll appreciate growing past it more than anyone else. How can you grow past it? By developing that part of yourself. Work on health and your neurological disorder at the same time you work on these relationships and becoming and feeling normal again. Once you achieve that normality, going beyond it will be such a joy for you :)
bobsgame 1 day ago 2 replies      
Go jogging and lift weights, you'll figure out the rest.
matchagaucho 19 hours ago 0 replies      
Setup a www.fiverr.com account and offer to do some niche statistical work. Ignore the whole resume/interview/background check process. Become an independent small biz owner.
rwallace 1 day ago 0 replies      
What about contract jobs or consulting work? If you're not an employee, maybe you could skip the HR BS.
phyalow 1 day ago 0 replies      
jwatte 1 day ago 0 replies      
Job/salary is only important for the things they enable. If you can move to Thailand, do remote consulting, and enjoy a Zen lifestyle, that might be worth a lot more.
1337h4xatl 12 hours ago 0 replies      
tony, can you email me at wow.its.nothing@gmail.com?

Let's talk. You're not broken goods, I don't care. you're viewing yourself as a victim. Let's flip that shit around.

alaskamiller 1 day ago 0 replies      
Flipping the switch starts with yourself.

When you stop seeing yourself as broken goods it'll shine through. Besides, no one knows you until they want to know you. When you project your brokenness that's how they will see you too.

halayli 1 day ago 0 replies      
acquire knowledge. learn learn learn.

workout, try to stay in shape as much as you can.

oxide 12 hours ago 0 replies      
Just want to say that there is no such thing as damaged goods.
sova 1 day ago 2 replies      
Greatest joy in life is being able to make others happy. Not saying it's easy, but try that venue of approach. Well worth the time you spend pondering it.
lionhearted 1 day ago 0 replies      
1. There's lots of good advice here. Don't try to do all of it simultaneously; pick one or two things and really commit to them, and then review how well you're doing in those areas once a week. You'll have weeks of no progress, everyone does, but if you keep focusing on 1-2 areas until you're happy with that result, almost anything can get improved over 3-6 months. Sometimes shorter, but ready yourself for more and pace yourself accordingly.

2. Start trying to meet more people and make more connections Friends, acquaintances, professional colleagues. Go to where people doing the type of statistics/marketing you're doing hang out, and get to know them. In-person is better than online, but if you're not near a major metropolitan area, online would be okay too.

You could, for instance, find some discussion forum devoted to marketing/statistics, and learn, post there, follow up, etc.

It doesn't have to be purely professional related, but if there's overlap between the work you want to do and the type of people you're meeting, you'll have more job offers. There's a number of studies showing that the vast majority of hires made aren't from applying blindly by sending in resumes, but based on recommendations and personal relationships.

So -- get to know more people. It'll probably also help with your self-esteem. I'd also recommend never calling yourself "broken goods" or similar again: the world's got enough antagonism in it without you getting on your own case.

But yeah, your main goal is get employed? Start meeting people, getting to know them, and showing your competence in the areas you'd like to be employed.

anti-shill 1 day ago 0 replies      
look into high end sales
fredkbloggs 1 day ago 0 replies      
If your neurological condition does not disqualify you (a big if), consider joining the French Foreign Legion. A new career and a path to a non-US passport sound like just the ticket in your situation! Unfortunately, you have no hope of ever escaping your conviction in the United States; that is by design as you find yourself the target of a pernicious complex of puritanism, fear, and pandering.

Your other options are mainly going to involve under the table jobs or freelancing, probably your only meaningful option if you want to continue in your previous line of work. Why not hang out your shingle as a contractor? Since you're not working anyway, it can't hurt! If you have contacts from previous jobs, get in touch with them and offer your services -- as a services corporation, not as an employee. You might have more success as a corporation than as a human.

Good luck!

FallDead 1 day ago 1 reply      
Okay so, the first thing I would do is join this community http://www.reddit.com/r/NoFap. Once you do you will feel alot of social anxiety go away, since it's likely you would be "letting" go of your testosterone that way.

A friend of mine had an addiction and started with this and it worked out so well for him.

Next you need to hit the gym, and start small and try 3 days a week.

Second make some goals about things you want to get done before you reach next year.

Next do deep introspection, think about your self in the third person, and ask your self what you hate about yourself.

Go write it down and spend a everyday on one of those things and chip away at it by breaking it down into smaller tasks.

Lastly Smile people love other people who smile, it makes them more approachable.

Reddit says, 30 is the best of your life if you are not married or tied down to a relationship.


Need support feel free to hit me up on twitter? @0xFA11DEAD

HN Office Hours with Kevin and Sam
188 points by sama  2 days ago   139 comments top 49
ismail 2 days ago 4 replies      
Background:Every day in South Africa low income people suffer through 2+ hour commutes into work using public transport. This has a serious impact on their lives, due to long wait times and inefficiencies. I interviewed a single mother, who only got home after 7pm and leaves at 6am in the morning.

We have built a ride share matching system:

Our goal is to make use of unused seats in cars matching drivers and passengers. We do not put any cars on the road (i.e Uber), We match to drivers on their daily commute.

Our Biggest Problems:

1. We are quite successful at converting people who are posting to online classifieds etc. We have strategies to get these users. We grew week on week by as much as 50% but then we hit a negative growth week. In order to continue growing, we need to expand into other areas.

We also have an un-balanced market. Demand for rides is much higher than rides offered.

2. We have not figured out how we will make money yet. Our initial hypothesis was a transaction fee.

The passenger and driver will be traveling together on a regular basis. Once we match them, we run the risk of being dis-intermediated.

You could make an argument that a payment directly into the bank account is more convenient than cash, though i am not sure that is a strong enough incentive.

3. Our churn/attrition is very high, There is no need for the system once they start traveling together. We have churn built in to our model.

trsohmers 2 days ago 3 replies      
Hi Kevin and Sam,

May be a bit out of your area, but I'm curious about your thoughts. Even though we are in "Silicon" Valley, there has been very little when it comes to new semiconductors investments. I'm the co founder and CEO of REX Computing (http://rexcomputing.com), a new semiconductor startup working on a super energy efficient processor architecture. We've actually raised seed funding, and I'm interested in what you think about the semiconductor space in general (and its future in the valley), plus ideas on how we can thrive as a very low level hardware company in a primarily software world.


Edit: One other thing I should note is that we are also big on software! We're utilizing a lot of open source projects to help build up our compiler and other software tools. Obviously hardware without software to run on it is pretty useless.

ljd 2 days ago 3 replies      
Company: http://PlaceAVote.com

Pitch: We're replacing congress with voting software. We are running 70 candidates in the 2016 Congressional elections on our platform, if any of them get voted into office we'll take all bills before congress and put them on our site where each voter in that district gets one authenticated vote.

Question: In your experience, what's the most effective way for B2C company to educate users that you even exist?

I know that signups and conversions are an art, but more than all of that, just telling people that you have something new that they may not be searching for but could still dramatically improve their life. We will take any demographic that will have us, so we aren't picky on that front.

We have 100% week-over-week growth during election cycles, and 10-20% when it's not, so we know the message is received, we just want to get more people in the top of the funnel.

ph0rque 2 days ago 1 reply      
Hi Sam and Kevin,

The potential market for automated micro-farming (backyard farming) is huge, but it will take a long time to to reach its potential. My question is, at what point would AutoMicroFarm (http://automicrofarm.com/) become attractive to investors (both YC and others)? Would 10% weekly growth for a year be key, or something else?

Two and a half years ago, we AutoMicroFarm founders had an interview with you, and you decided not to invest, saying it was difficult to see how AutoMicroFarm would generate the kind of growth startup investors are looking for. However, YC invests with infinite time horizon and is not afraid of risky-looking companies (http://blog.samaltman.com/new-rfs-breakthrough-technologies).

So what would YC or other investors like to see before investing?


dzine 2 days ago 1 reply      
Sam, Kevin,

We are building a platform that allows anyone with a mobile phone to earn a living by performing discrete tasks.

Our platform aims to break down complex jobs into easily actionable items, that can be performed easily by anyone, anywhere.

The first vertical we are applying this to is reservations. The Loft Club (https://useloft.com) is a service that makes reservations for you at amazing restaurants every month on your preferred day, saving you the decisions and the hassle. Through our platform, we centralize restaurant recommendations and assignments, before farming out the logistics of making and manging them to our agents.

Our question is: Should we work on building out the generic platform and expand quickly into other verticals, or focus on building out The Loft Club and owning this space first? We've customers paying us for The Loft Club with the mild publicity it has received thus far.


Zhuang and Derrick

mwilkison 2 days ago 2 replies      

ZeroDB is an end-to-end encrypted database that lets you operate on data while it's encrypted.

Demo video: https://vimeo.com/128047786

Question: We want to sell to large enterprises (financial services, healthcare, saas providers, etc.). The common advice is to start with SMBs/startups and get traction that way before going upmarket to enterprises. How can we balance that with the fact that what SMBs are asking us for is very different from what enterprises have told us they'd like in a fully-baked product?

Smirnoff 2 days ago 1 reply      
Hi Kevin and Sam,

We are about to finish building a table reservation system (think OpenTable or SeatMe but on steroids). Although it's a "Me Too" product, we will offer features that our competitors can't or won't, e.g. bigger API control for restaurants, various hooks to extend the service such as food delivery, pre-paid reservations, and ticketing for tables to name a few. Essentially, we will offer an iPhone/iPad app for restaurants to manage their reservations/orders, while their guests can use an iPhone-app/Android-app/Search-Engine/Restaurant's-Website to make those reservations.

I have a question about a launch/pricing strategy:

- Is it sane to do a freemium model for our product? For example, restaurants would be able download our Manager app in App Store for free but it would have limited offline features. If restaurants want to accept online orders, then they must get that feature via in-app purchase. If restaurant wants to incorporate discount cards, then it's a different in-app purchase. This logic applies to all different features.

- Or should we go through a regular sales process, i.e. sign up restaurants one-by-one, charge them via check/credit-card/etc and escape Apple's 30% cut?

Thanks in advance and I hope it will be helpful for other startups that are in a similar position.

marcuslongmuir 2 days ago 1 reply      
Hi Kevin and Sam,

Were MinoHubs (https://www.minohubs.com) and we build commercial and community tools for software projects. The barrier to building a successful software project is high - apart from writing the code, you need to build a community and potentially set up some commercialisation (backing, licenses, support etc.) which isnt an easy task.

We provide customizable hubs that give projects:

Commercial tools

- Paid support - ability to offer on-demand consultation to businesses and developers.

- Licensing - ability to sell one time and recurring licenses to businesses and developers (coming soon).

- Backing - monthly contributions. In return, backers get more visibility in Discussions.

Community tools

- Powerful discussions with voting.

- Announcements - emails and notifications to project followers.

From Kevins initial feedback (https://news.ycombinator.com/item?id=9746206) we understand that we need to be better at:

1. Leading the user through things to do after creating a hub.

2. Showcasing the benefit of using MinoHubs.

Were working on those right now.

Our challenge is that, as Kevin also pointed out, we have a lot of features, but were also trying to appeal to an audience that would use different combinations of features; open source software, commercial software or projects that want to just use community features.

How do we reconcile that users want a wide variety of functionality with the issue that this might present too many features for us to convey concisely?

declan 2 days ago 1 reply      
I'm a co-founder of Recent (https://recent.io), and we've created an iOS/Android app and recommendation engine that we describe as news powered by artificial intelligence. We have technical backgrounds; one of us also worked as a journalist for Wired, Time, and CNET. We're seed-funded, on the SF peninsula, and incorporated in Delaware. You were kind enough to invite us to attend YC's Startup School last October.

Coincidentally we started sending out beta invitations last night to the first group of people on our list before a planned public launch next month. Our recommendation engine is built on Google App Engine, which should (we hope) allow us to scale. My office-hour question for Sam and Kevin would be: What advice do you have for us at this stage?

Lukeas14 2 days ago 1 reply      
Hey HN,

What we do:

We're building a community of vehicle data (http://shadenut.com). Mechanics and DIYers will be able to look up any piece of information they need to work on their car directly from their phone while still under the hood (ex. torque specs, TSBs, fluid types/capacities, etc). As a developer I've seen the positive effect that StackOverflow has had on our industry as a knowledge base and am trying to do the same for the automotive industry. The data will be crowdsourced and 100% free to use.

Our Problem:

Our biggest problem is that the product is not really usable unless it contains EVERY piece of technical data about a model, after which it becomes tremendously useful. The most common feedback we get from technicians is that they'd love to use it and contribute once it's a complete database (as long as it's accurate) but wouldn't switch from the paid competitors until then. The data is all available but there's simply too much of it for a small team to manually import. Our current strategy is to start with a select few models and incentive technicians to make their own entries.

However, I'd love to hear how Kevin and Sam would solve this or from others in the HN community who have faced similar problems.

highCs 2 days ago 1 reply      
I'm making a competitive real-time strategy game like starcraft (which is declining) but without the punitive aspect of the game which is why a massive number of players stop playing it I think. Starcraft is also the only decent competitive RTS on the market right now, a successor can grow at startup-level in the long term I beleive.

I have a solid engine, nothing launched yet.

My question is: why would you not fund this project right now? What could I do to improve my odds of getting funding?

32faction 2 days ago 1 reply      
Hey Kevin and Sam,

Pitch: We're ATLAS, we plan to launch extremely small cubesat payloads (x<100kg) into low earth orbit on demand.

1) How much calculations/numbers crunched would we need to convince angels to invest? Rockets of this size aren't something we can bootstrap without a little financial support.

More Background:

Right now, the only way to get a cubesat into orbit is by ridesharing on bigger rockets as a secondary payload. The problem with this is they're not assured to reach a preferred orbit and are at the mercy of the scheduling of the primary payloads. NASA currently has a backlog of ~50 cubesats that need to get into orbit, as well as the many upcoming launches (including SpX this Sunday). We are currently working on the RFP for the Venture Class Launch Service however we may not have the resources to fully complete it by the deadline (13 July). We plan to market this service to Universities as well as hobbyists and government space agencies.

deepGem 2 days ago 0 replies      
We want to bring real time and accurate air pollution data to people on their mobile phones, using a network of low cost, solar powered sensors deployed at key road locations. Our sensor network will be more accurate and cost less than the EPA monitoring stations.

Help needed - We think that either the government or certain enterprises will pay for this data (since they already are spending money on such technology). What is the best way to validate these channels?

acallwood 2 days ago 1 reply      
Hey fellas,

ACe here from Painless1099 (www.painless1099.com). We automate tax withholding/filing for anyone earning 1099 income (think: freelancers and Uber drivers.)

We're thinking through growth specifically right now and are chewing on whether to go the B2B route or the B2C route. Different implications for both regarding scale and revenue obviously. We'd be stoked on a bit of help figuring out which to tackle first and how to make headway!

matrix 2 days ago 1 reply      
I'm in the early stages of bootstrapping a marketplace similar to those that exist for hotels (e.g. Booking.com, PriceLine, etc). The supply-side is primarily small businesses ("merchants"). The demand-side is consumers. The initial target market niche is small (~$600 million/yr in the US), but the product can serve a much larger market niche and I will do so when resources permit.

Today, this market niche is fragmented with high search costs for consumers. My marketplace will make it much easier for consumers to find and buy the products this this niche. Once off the ground, the marketplace will be a key source of customers for the merchants.

Consumers like the product, but the merchants are difficult to get on board. I find that the prevailing view is that the status quo is 'good enough'; merchants are conservative, and very few are early adopters.

Things I'm doing to address this:

1) Price for growth -- pricing based on a small flat fee that the merchant pays per transaction to align with value delivered, with first X transactions free (obviously I would prefer to charge a % of revenue, but that's a very, very hard sell with these particular merchants).

2) Provide the merchants with tools that help them run their business (i.e. give them reasons independent of the marketplace to use the app)

3) In-person visits to merchants. These are valuable for many reasons, and are only partially a sales call. These visits will always be something I do, but it doesn't scale enough to create a marketplace.

What strategies and tactics do you suggest to get merchants into the marketplace, to build up the supply-side?

ereyes01 2 days ago 0 replies      
Tasqr (http://www.tasqr.io) makes it very easy for developers to ship their software to the cloud automatically, and very frequently. Developers and operations engineers typically have an understanding of how to manually configure and deploy their software via the command line. Tasqr leverages this existing knowledge in teams by helping them record their manual steps and replay them onto their live deployments. This allows engineers to operate in a language/environment they are already comfortable with- the command line.

My strategy thus far has been to find startups that need help doing their devops and help them automate their deployment using Tasqr. Finding customers this way has been slow, but I've gotten to learn quite a bit about how the product fits within a continuous integration workflow. I am starting to feel a little financial pressure to change my approach and scale my outreach, though my existing users really like my "do things that don't scale approach" unsurprisingly :-)

What are some signs that it's the right time to scale and chase bigger chunks of the market?

goldMIT 2 days ago 3 replies      
Golden Speak (http://www.goldenspeak.com) helps you speak better by analyzing your voice for pitch, rhythm, vocab, fillers, and clarity. We'd like to talk about launching minimum features quickly vs. high user expectations that people have from apps like facebook, etc. Does it make sense to focus more on polish instead of launching within an almost embarrassing feature set?
graceofs 2 days ago 1 reply      
Hi Sam and Kevin,

We built ObjectiveFS, it's like Dropbox, but for servers. We have users running our shared file system in production, and are getting great feedback.

Our current challenges are user growth and upcoming competition from Amazon EFS.

We would like your feedback on what we can do on our website (http://objectivefs.com) or additional things we can do to get more people to start our free trial and to address the Amazon EFS competition.


mburst 2 days ago 0 replies      
Live Dota - https://play.google.com/store/apps/details?id=com.teamtol.li...

About a year ago I created an eSports app that lets fans of the game DotA follow and watch their favorite teams live and on the go. It's been super fun seeing my side project grow and have users in the community volunteer to help with designs and language translations.

The biggest tournament of the year (http://www.dota2.com/international/announcement/) is coming in a few months and I would love to talk about different ways to capitalize on this.

dnautics 2 days ago 0 replies      
Hi Kevin and Sam,

I'm thinking about starting a company that extends the open-source concepts to the biology/pharmaceutical sphere. The concept is to make a modular, drug-producing microbial strain, and release that to researchers/industry under a permissive licence (e.g. bio equivalent of GPL). Monetization comes about by offering manufacturing services which cut the pain of 1) scaling and 2) getting "good manufacturing practice" regulatory clearance for clinical testing, and ultimately full consumer product.

Do you think there's VC interest in funding these sorts of ideas that have a somewhat riskier business model that also ultimately will extract a lower margin, but has a chance of changing the "way things are done"?

phesse14 2 days ago 0 replies      
Hi there,

we are Tiedots (http://tiedots.co), a networking platform that provides you tailored information about other attendees every time you go to an event. This way we unveil you the most valuable leads and also find you the best way to approach. Saving time and increasing your business opportunities

The biggest challenge so far is building a solution that can provide relevant connections. Accuracy is the key and were working on a web semantic solution since weve been testing the solution manually with around 100 event attendees.

How would you determine the relevance? any other ideas?

PS: No matching solutions. Networking is about leads no matching.


someear 2 days ago 0 replies      
Subcurrent sends out a single question/poll to enterprise teams every day or every week via Slack. Users respond with a single click, then optionally leave a comment.

The problem: our focus is divided on two types of customers (weve even created two landing pages for each type)

1. Product/Engineering teams - they get asked a new question every day that attempts to keep tabs on the health of the project. Questions are a combo of post-mortem style questions (but asked as you build product) and around prediction markets (larger n make better predictions) (https://www.getsubcurrent.com/product)

2. HR/Employee Engagement - users get asked a well researched question every 2 weeks. Instead of long, annual surveys, you now get to keep a pulse on morale and culture. Participation is higher since it only takes a single click in your already existing tools to respond. (https://www.getsubcurrent.com)

We have a number of customers using our free beta - most are using it for option #2. A very small number have connected with #1, and while we think it has a lot of promise, we havent talked to enough people to know how it might need to change to achieve product/market fit. We are at a crossroads of needing to pick one to focus on, because the distraction is making it difficult for both to progress.

DFinancial 2 days ago 1 reply      
I wanted to know how you would structure a profit sharing plan as an alternative to equity options for a small, bootstrapped company with virtually no IPO option. What would be fair? How would it work? How did WooFoo's program work? Consider this a blog post option too!
rohanmmit 2 days ago 0 replies      
Hi,We are developing a self-checkout mobile application that allows consumers to scan items in a store and then pay with just their phone. Our app will use geolocation to identify which store the consumer is in and then automatically connect with the stores point of sale system to ensure payment.

We built a prototype last week and went to stores and a retail conference this week. We are having problems convincing stores to adopt out product as they are very concerned with shoplifting.


jbandela1 2 days ago 0 replies      
Hi Kevin and Sam,

I am the creator of https://www.spqrs.com

The goal of Spqrs is to have a platform for the debate of ideas. As Sam noted in https://twitter.com/sama/status/610494268151431168 most smart people are wary about commenting on sensitive issues.

This is unfortunate as the Internet is a great place to discuss issues with people who may have a vastly different view, and in the process really examine why you think the way you do.

Spqrs provides a service similar to Twitter but allows you to follow hashtags as well as people and has a 1000 character limit instead of 140 better allowing you to make a point. The defining feature is that all usernames are pseudonyms so you can avoid threats to yourself or your livelihood based on what you say.

Right now this is a pay service. I am planning on charging $9/year. My biggest problem right now is finding subscribers. Any feedback and suggestions would be appreciated.

yishanl 2 days ago 0 replies      
Hi Kevin and Sam,

We're from Mise. We are an online marketplace and meal delivery service for the signature/best dishes from professional chefs in the Bay Area. Theres a face and a story behind each dish. We do free weekly delivery to SF Bay Area, including San Jose & the Peninsula.

We operate on a revenue share model. Chefs source their own ingredients, pay for kitchen rental, cook dishes, and earn 70% of everything they sell. We apply our 30% towards delivery, personalized packaging, copy, and kitchen administrative fees.

We'd love to talk about obtaining that 10% week over week growth. We're launching in 2 weeks and have a lot of orders (but a good amount are on us and going out to influential members of the community). How do we grow that into paying customers? And is it too risky to keep giving out free product that when you have to also balance the returns of the suppliers/chefs themselves?


Thanks! :)

pmoorcraft 2 days ago 0 replies      
I launched Tech Talks and Books (www.ttbooks.io) about three weeks and just got my first 600 subscribers. It's similar to product hunt but for book and videos about tech and the community of submitters is more restricted than PH.

I'd like to discuss two things:

1- Signal vs Noise in online communities: Since you've been heavily involved in Reddit (Sam), I'd like to know how what your opinion in curating content vs. having an algorithm sift through the noise. We see companies like netflix and ph (allegedly?) combining big data with human curation and having a lot of success, so my question is: Should online communities invest in curation or big data? Is there a trend towards one or the other?

2- Monetisation: I'm having a hard time monetising this community. Since I'm looking to bootstrap it, its crucial that I get monetisation right so I was wondering if you had any tips on monetising communities?

hamhamed 2 days ago 1 reply      
I'm a co-founder at Stay22 (https://www.stay22.com), a Montreal-based startup that has developed a platform for users to search for places to stay (hotels & Airbnbs) around events

We provide a free solution for event organizers who are tired of doing customer service to their attendees by embedding our widget as easy as embedding a YouTube video. Other conferences have already hopped in like Traction Conf, check it out in action: http://www.tractionconf.io/accommodations

Let's just say that getting more events one by one isn't hard and our next step is to partner directly with ticket providers (SeatGeek, Ticketmaster) and do some sort of revenue share deal on accommodation sales.

3Dpuzzlepiece 2 days ago 1 reply      
Howdy!How would you suggest marketing a new service to a hard-to-reach audience?

Brief overview: I would like to market local, weekend yoga retreats to professionals in the oil and gas, energy, and finance industries. No long absences from work or family, and no long-distance travel. The startup is set up in Houston, but can operate in any city in the USA. Lots of different marketing and advertising methods are being tried (online groups, directories, online forums, linkedin, etc.), but I am pretty much throwing things to the wall and seeing what sticks. Any suggestions are appreciated. Thanks!

startup: bodyhugs: hug your body with movement and care

website: http://www.bodyhugs.org/

local health and wellness retreats in the USA

chejazi 2 days ago 1 reply      
Our product is a URL shortening service for individuals to monetize the content they share. Monetization occurs via an interstitial ad between the source of the short url (e.g. Facebook) and the destination of the short url (the content being shared).

The team right now is investing itself in areas such product, marketing, and architecture. We want to launch a product so we can begin testing our hypotheses, but we also want to go to battle sufficiently prepared. The latter requires significant effort in team building, which would detract from a product launch. What should we do?

ohashi 2 days ago 0 replies      
Background: Review Signal aggregates and analyzes what people are saying on Twitter about web hosting companies to build a transparent review site.

URL: http://reviewsignal.com

Problem: People generally buy web hosting once every few years and there are very few channels beyond Google and word-of-mouth to capture people at the moment they are considering purchasing. The competition for Google is astronomical (one of the highest PPC areas at ~$20/click). Organic rankings are filled with spam sites touting the highest paying companies with very good SEO (Hello CNET). I've been trying for years to get my SEO up to that level without success. I'm stuck on 2nd/3rd page and have been for ages. It's like purgatory, I've tried build other sources of traffic through PPC, CPM and none have really panned out that well. I've tried creating great content and it has been ok in some niches. For example, for high performance WordPress hosting information my blog has become the go to source. I'd like any ideas on what I should be trying to do next or what I can do to improve what I'm currently doing.

ksks 2 days ago 1 reply      
Hi, Kevin and Sam,

I am the founder of https://ManualTest.io. My app automates manual testing. It generate and run integration tests by recording and replaying users' actions on their websites. Manual testing is still being used everyday (by developers or not), so this could be a huge time saver for them.

My app is recently available on the Chrome Web Store, it only got a few users, despite having quite positive feedbacks. My question is, I am not sure the lack of users is because (1) I haven't done enough marketing/SEO/etc to get it in front of people, or (2) because I need to build more features before users would find it useful enough to try, or (3) it is just not something users want.

If its (1), I should stop coding and start focusing on letting people know about my product. If it is (2), I have a few very useful features that are still waiting to be done, but they could take at least weeks to complete. Without enough initial users, I am not sure which features users want most, or if the current set of features is enough for now, so I should focus on letting users know about it (so it is (1)).


cpg 2 days ago 2 replies      
I built a site to run tennis leagues. We have started in the bay area with 210+ matches taken place since February when it launched. Most other sites that try to do this look like they are built in the 90s and have little support for modern features like communicating via Whatsapp or decent mobile support. It could also be extended to other (racket) sports later. People pay a $20 fee for each league, which is about 8 matches in 8 to 10 weeks. http://www.racketlogger.com

The goal is to scale it across the US (and beyond, to any english-speaking area). Doing cost-effective marketing is key. How do we get the word out? How do we improve the site and experience so much that players tell their friends?

We put effort in SEO building a large database (the largest?) of string and racket specs with the goal of attracting some of the core fans of the sport (we started to get some clicks a day). There are a ton of other "social" and related ideas, the question is how to select which one(s) will work best.

zackabaker 2 days ago 0 replies      
Hi Sam and Kevin,

Company: http://PassWhiz.com

Question: We have an awesome product that schools love. It's time to sign up as many middle schools and high schools as possible before the new year rolls around. As a one or two man show, what advice could you give about approaching these schools and how to expose our product to this market? Thanks!

ericabiz 2 days ago 0 replies      
Hi Kevin and Sam, I'd like your advice on startups that connect real people/experts with those who need them.

Background: I'm building freedom.biz, which is currently a course for retail business owners who'd like to take their business to the next level. I sent out a survey to those on my interest list, and it became clear that I couldn't personally fulfill all their needs. However, I know people who can.

I'd love to build a company that connects vetted experts with the business owners who need them. I've seen startups in this realm, but they all feel generic and unfocused. What do you think would be a competitive advantage in this realm? What would you like to see that's not out there right now?

m_mozafarian 2 days ago 0 replies      

Hey guys,Our platform unbundles apps' and websites' most essential features and transforms them to interactive Cards. Similar to Google Now Cards. However the entire architecture is designed to be an open platform. Meaning anybody could come and build these interactive cards using our Language, REL. We believe, by unbundling Applications/WebService we can seamlessly start connecting different pieces of the web together, and create a more fluid and unified internet experience. An experience with an intelligent fabric that grows with our needs, preferences and expectations to help us make the right decision, at the right time.I'd love to hear your thoughts on Relevant. Thanks!

MangezBien 2 days ago 0 replies      

I think that the next big step in Medical Technology will the the rise in software making medical decisions. This doesn't pose a big technological problem but it does pose a large regulatory problem.

I have experience getting cloud-based software through the FDA as a "medical device" and have overcome some of the most common hurdles.

I have an idea on how (and the ability to implement) a product to reduce the regulatory and monetary barrier to entry for this type of software.

My question is, in the current market, does this have any shot of getting funding? The product could never be used without the approval of the FDA, an expensive process. Is this a non-starter for most funds?

Inkdryer 2 days ago 0 replies      
We are Blue Seat Media, a startup product studio in Cincinnati making apps for baseball fans. We're more inspired by Pixar than Fox Sports and our goal is to capture the magic of baseball in an industry that is inundated with bad design and middle-aged men arguing on the radio.

Question: how do we sell this to investors? I'm a designer and the CEO. I'm good at making a product that people love but I'm bad at fundraising. We are out to make only high quality products, another hard sell to investors because high quality takes more time (money).

We have a great product that fans will absolutely love, we just need help getting it out there.

jameswilsterman 2 days ago 0 replies      
Streak - (https://goo.gl/VvgCnv)

We made a trivia gameshow for mobile devices. Everyone plays simultaneously once-a-day at 11AM PT / 2PM ET. Players see the exact same questions, so it's like a live, multiplayer, interactive version of traditional gameshows on TV.

We have ~300 MAUs and ~50 DAUs and solid retention, but to get that up to 1,000 DAUs should we be more focused on trying to trigger organic sharing within the app or top line from press, blogs, reddit, Facebook ads, etc? Is our user base too small to even know whether our organic sharing is really working?

philip1209 2 days ago 0 replies      
Company: https://www.staffjoy.com

Pitch: Our application decreases labor costs by precisely scheduling hourly employees to fulfill business demand. By preventing over and under-scheduling, we've been able to show a 10% decrease in labor costs with early customers.

Question: What wisdom do you have about "go-to-market" strategy in the retail space? We have startups as clients that are eager early adopters, but to cross the chasm to sustainable growth it seems that we will have to focus on retail companies and going to many trade shows. What can we do now to prepare?

wuliwong 2 days ago 0 replies      
Hi Kevin and Sam,

We are working on a new version of http://www.muusical.com. The new version is a significant change. It is going to be a free Spotify that is powered by a crowdsourcing platform where users add the music and meta data.

I would love feed back about a strategy for approaching investors who are wary about music startups.

If you're interested, read more here too: https://angel.co/muusical


karle 2 days ago 0 replies      
Product: Marine vector maps (GPU accelerated)

iOS Download link: https://itunes.apple.com/us/app/i-boating-gps-nautical-marin...

Website: http://i-boating.com

Our biggest pain point: Distribution

darienbc 2 days ago 0 replies      

Memaroo is a web research dashboard, designed to make iterative web searching organized and more efficient. Memaroo records your search history into different projects, which can be accessed from anywhere -- so you can search for things on your phone and then continue your research later on your desktop. Projects can also be shared with other users, allowing collaborative searching and result sharing.

Memaroo is an improvement to an established search paradigm. But people are comfortable in that paradigm, despite its flaws.

How can I get potential users to break their existing search habits and try something new and possibly better?

gmarx 2 days ago 0 replies      
Stealth mode side project is software for creating data entry forms for clinical medicine and research. I have, uniquely, solved the discrete data with ontology problem in healthcare and healthcare analytics. The question I would like to discuss is what is my point of entry into the market; what kind of customers would be best targets as early adopters?
yaraher 2 days ago 0 replies      
Hey guys,

We are CodePicnic (codepicnic.com), a platform for sharing, running and showcasing code through a browser. We help people and business improve their demos, APIs documentation, or anything that needs for their users to run and try some code online.

We'd love to improve our "getting there" process. We've been interacting with users here in Hacker News, Reddit, Product Hunt and other sites, and getting better and increasing our usage, but still we feel is not enough right now. Our first users love us, the service and the potential, but perhaps there's something glaring we aren't doing well in order to be more well known. Is a long process, we get it, but the more we learn, the better.

I also believe this is an important matter that many other startups would love to learn about.

dang 2 days ago 0 replies      
Detached from https://news.ycombinator.com/item?id=9785941, per "please don't comment otherwise on this thread until we're done at 1 pm PDT". You're welcome to have this discussion after that, of course.
techaddict009 2 days ago 0 replies      
I am building youtube for content where users get paid for sharing their content.

One of the problem I am facing is how to pay them back? And how to checkout if the view was genuine or was done by some bot?

hackuser 2 days ago 0 replies      
Kevin/Sam: This is way off-topic, but it's an unusual and I think worthwhile situation: A couple of Nigerian teenagers have their project on the front page and one found his/her way to the discussion. Unfortunately, most of the thread is nitpicking criticism. A quick comment might do a world of good.

[1] https://news.ycombinator.com/item?id=9787010

Sorry to all if this comment is inappropriate.

undeterred 2 days ago 0 replies      

Office Our provides a portal for investors to interact with their top 5 potential investments. "Separate the wheat from the chaff."

At Office Our an investor creates a post (or "bulletin") inviting the community to pitch their startup. Users vote on the "wheat" and the top 5 earn the right to receive a response. The investors can then manage their bulletin and follow-up outside of our platform.

For this we charge a simple, flat $5 fee to each investor per potential investment per month on an annualized basis in the form of credits which are distributed by each of the user's votes in batches of baker's dozens. "Investing - simplified"

I look forward to your feedback.

Ask HN: Is there any HN-like site for indie game developer
4 points by cognitvesystem  9 hours ago   1 comment top
feybay 7 hours ago 0 replies      
r/gamedev is good sometimes
Tell HN: Entrepreneurs, make sure you are getting guaranteed wins in life
263 points by hoodoof  3 days ago   77 comments top 30
bmh_ca 3 days ago 6 replies      

A life partner, one not afraid to get their hands dirty doing what needs to be done for a vision outside the mainstream paths, grow with them through the fails and the folly, and experience two lives in one lifetime. Find someone to remind us of why to be humble through the successes that can blind one to appreciation and the efforts of others. Someone who does not see us for success gotten, but for the inevitable happiness and richer gain from a partnership with an equal of good character.

Children, to see the world through innocent and new eyes. To see value in things we take for granted, and to give us a reason to think of the future as a prospect even though much of our prospecting years may now be behind us.

It has never been a better time to be poor. What we risk with all the other wins beside family is a life without riches. With others we can know ourselves better, be more whole, understand what makes us human and what drives us to betterment of ourselves and humanity.

The ups and downs of life is the most enriching experience, to know genuine empathy and share sincere hopefulness. One can find such experience in family.

rl3 2 days ago 0 replies      
As a sort of dark opposite to this, it's possible to have virtually zero significant life wins across the board, and yet draw strength from that fact.

While your life might totally suck beyond what you could ever have ever imagined, after a point there is a sort of humor to be found in the absurdity of it all.

Failure becomes an afterthought, because it simply means ending up right where you currently are - the bottom. This is the classic "nothing to lose" dynamic working in your favor.

Counter-intuitively, the opportunity costs involved seem to matter less and less the more your career and family prospects dwindle. In a weird way, that can be liberating.

However, such thinking can be extremely destructive. It's essentially tantamount to starving yourself as a means of motivation, while at the same time applying a Martingale betting system[1] to life planning. Certainly not for everyone, and seeking out such a state is ill advised. I view it more as a way to cope with a situation one finds themself already in the midst of.

Despite this, a person still needs to have hopes and desires, just like everyone else - even if such things are in direct conflict with any hardcore apathy they may harbor.

Truly believing in what you're trying to achieve, as well as the world of possibilities that it will open to you, is essential - even if it does represent a sort of cognitive dissonance. At the same time, you have to not care about the outcome. The ability to have simultaneous belief in conflicting points of view is an incredible tool to have.

To quote an old trading maxim: "You can't win if you have to."

[1] https://en.wikipedia.org/wiki/Martingale_%28betting_system%2...

sova 3 days ago 1 reply      
Totally different approach but I really loved your post and would simply like to add: learn a musical instrument.

It is something that you can noodle around on (like a guitar, or an electric bass, or even on a midi keyboard software) .. go to a pawn shop and grab an old instrument (put on new strings if necessary) and just play a little every day.

Music helps relieve stress, lets your mind relax, brings you to a creative space, and in a few months of noodling every day or every other day you'll find that your experience of music will have changed and that you'll be making beautiful sounds. Very gratifying, very healthy, and very easy. The juggler must learn to use both hands, the artist both eyes, and the entrepreneur both brains.

technotony 3 days ago 2 replies      
Thank you for writing this - this lesson can be life saving. I learned this lesson the hard way, recently losing a friend and mentor to suicide. He was a brilliant entrepreneur but hit a road block post-series A where he couldn't raise follow on funding and the press started turning against him. The business was his life, and he wasn't able to separate himself from the business nor did he have a life outside work with the kind of wins which can sustain through these challenges.

Exercise helps, but I'd reinforce the need for a balanced supportive social network outside that. Choose sports with other participants (eg racquet sports, or join a team). Not only will the discipline of not letting others down keep you motiviated to keep going, but you'll get friends who don't give a damn about your business (in a good way - no need to pretend to be killing it all the time!) and can keep you grounded in normal reality.

mistermann 3 days ago 2 replies      
This is good advice. I'd add:

If you find success early, whether you believe it or not, put some money away (if you can). And if you find yourself in your middling years and great success eludes you despite your prior success, at least think seriously about moving the needle from the risk side to the responsibility side.

Source: I didn't heed this advice.

fineline 3 days ago 0 replies      
I understand why you'd address this to entrepeneurs given the audience around here, but really, is there anyone to whom this advice _doesn't_ apply? Sure, if you're a textbook entrepeneur you're working hard and might overlook other things. Same if you're working three jobs to make ends meet, or if you're studying all hours, or looking after your family. The advice has common validity.

Your strategy won't work for everyone, or even most people, because "just do it", whilst very compelling short term, tends to lose effectiveness over time. Instead seek out something that you really enjoy, that coincidentally provides great exercise, removing any problem about motivation and long term commitment. If hanging at the gymn really is your thing that's great, but if not, don't beat yourself up, get into something else instead, cycling, karate, trapeze, dance, roller-derby, yoga, there are lots of alternatives, main thing is to make it fun then you won't need the "I must do this" self-discipline every day, you'll go out of your way to do it.

And as others say, explore creative and cultural activities too. Your mind does not thrive on pure coding and hustling alone, it needs its own free-form exercise too.

MichaelCrawford 3 days ago 5 replies      
When I resigned in protest from amcc i wrote "When i lay on my deathbed looking back on a lufe well-lived, I am not going to wish I had shipped more product."

While not dead certain I may have just found a woman who wanted to marry me in 1985, but her grandmother did not approve of me.

I miss her so. Im going to write her soon, if its her I will go visit but now she is far too old to bear my child.

Several times I have been kissed by beautiful women who made it plain they were mine for the asking but each time I pursued the impossible dream.

My ex did not want to have children. I know why but cannot tell you. Deciding to be with her was one of the most difficult decisions of my life. Now i feel I chose wrong.

Hey Anne whatever happened to Cheryl, she was one of our vendors back in the day.

She died of some very rare cancer. I am completely convinced thats because I did not kiss her back. Not that I was not interested but that i was painfully shy then.

He who hesitates does not get To swim in the gene pool.

Ive written lots of code ive made lots of money. nsome of my products were huge hits.

Consider homer's illiad and odyssey. what code that any of us write will last that long.

nugget 3 days ago 2 replies      
One diet trick I learned, sort of related to fitness, is to cut out almost all carbs. In crunch mode I don't really have time to work out and tend to snack 24/7. Carbs pack on the pounds. Now I just eat nuts (almonds), bacon, cheese, hot dogs (no bun), whatever, and it hardly makes a difference.
prank7 2 days ago 0 replies      
This is a great and such a underrated topic. Thanks for bringing out.

There are 3 things that I practice and I feel has guaranteed wins.

1. Fitness-Damn Right. Several people have given the reason. and its as simple as putting half and hour, 5 days a week in moving your body. Keeps you physically fit and mentally robust. At times I have realized that my mental activeness is directly proportion to the exercise and my fitness level.

2. Family and Friends-Yes, they are the support mechanism. Talking to them and taking some time out to talk to one of your closest friends(friend/mom/wife) will help you shift your focus from your business into people that matter to you. Believe it or not at some point you will realize that relationships and people matter the most and investing in them is a worthwhile guaranteed win.

3. Fun-The part would be just having fun, doing something that you love. The best part is you can easily fit it into your daily schedules. Just after your office hours, give 30 minutes unwinding yourself by doing a hobby that you love (e.g. reading a book, writing the journal, playing that guitar, singing songs, playing basketball). Life is short and ultimately everyone makes money so that they could have fun or do what they love, why not do it everyday. It helps you completely detach yourself from your day at office. Fun everyday, keeps stress away.

CookWithMe 2 days ago 1 reply      
I'm 100% for doing some sports, and sticking with it while doing a startup.

I'm 100% AGAINST doing it for a "guaranteed win" :-)

First of all, there may be a direct relationship between effort and win when you're an unfit twenty-something, but if you get an injury - or just if your body gets older - you may be struggling to get back to the level you've been at before.

But, even more importantly, if you do sports with a "I have to win"-attitude, you'll start comparing yourself to others, and you'll always find someone who is better than you. Just don't start to be competitive. You're doing the sports for fun. Learn to enjoy sports for it's own sake, and you may be able to take that attitude towards other things in life.

(I've got a failed startup behind me, and one of the things that kept me sane was regularly going bouldering. Pro-Tip: Get a yearly membership as a birthday or xmas present from your parents or so. Even if you're in serious financial troubles, your membership will be paid for. Huge relief!)

philtar 3 days ago 0 replies      
I think this is a severely underrated area of entrepreneurship and would love it if some people share their stories about things like this.
testingonprod 3 days ago 0 replies      
I stand 100% behind this. Including the "getting fit" part. it is incredibly important and will build your mental resilience.

This is the magic pill we've all been looking for, and it's been in front of our eyes this whole time. Exercise and a good diet were the answer all along.

nostrademons 3 days ago 0 replies      
There was an entrepreneur of some Web 1.0 company - I think it may've been Excite or Paypal - who said that it was very important that you "celebrate your victories" as you found a startup. That's really important. Launching a product is a victory. So is fixing that really tough bug. So is implementing a feature, no matter how small. So is hiring a key engineer or closing a round of funding. So is coming up with an idea or hypothesis that seems plausible. So is getting a user and keeping him engaged and happy.

You need a lot of these little victories to have a successful business. But that doesn't stop them from being victories. And when you set your scale small enough, some of them are basically guaranteed.

empressplay 3 days ago 0 replies      
Totally agree 100%. Also, have a creative hobby (if you're in any way so inclined). Learn to play a musical instrument, or paint, write, or what-have-you. Whether you create new things or learn to preform existing works you will have something to show for your efforts.
chandika 2 days ago 0 replies      
This is such sage advice and almost never mentioned. As an entreprenuer who's obviously over optimistic about the startups probability for success and the speed that it occurs you usually skip and sacrifice a lot in life.

One thing I learnt the hard way is that the best way to ensure personal success is to plan your life's goals as if you have a 9-5 job with secure income. Major investments (housing, loans etc) and relationships should not be on hold till the next company milestone. Having a spouse kind of forces this upon you, but getting a supportive parent/mentor to help you plan your life apart from your startup will really help.

jasoncrawford 3 days ago 0 replies      
This is smart.

A friend once told me that a guaranteed win for them was cleaning their apartment.

For me, exercise is a good one. Also reading. Reading great books on a regular basis is a life goal for me, and if I just put in the time on that one I make progress.

joeyspn 2 days ago 0 replies      
I can't express how good a 1.5h 4days/week gym workout routine has been for me. I don't know if this makes thing easier because it counts as a "win", or helps because there's something deeper happening at molecular level.

Sport releases a lot of endorphins that simulate the state of happiness and reduce stress. This is a proven scientific fact. So there's something magic for your self-steem and positivity in it. Everybody starting-up should keep an exercise routine, and startup accelerators should include it in their activities...

It really helps, if you don't have kids like me, I think it's one of the best decisions you can make for keeping your sanity during difficult times. ZEN Meditation and Yoga (mixes both meditation and sport) are other great ways to keep stress at bay.

abandonliberty 2 days ago 0 replies      
Brush & floss your teeth daily. Good for your overall health, will save you money and suffering.
thowar2 2 days ago 0 replies      

Just like exercise, the positive effects of meditation compound by putting in the time!

arikrak 3 days ago 1 reply      
It might also be good to volunteer for a cause that you find meaningful.
freshfey 2 days ago 0 replies      
I like this a lot. I think though the word fitness has so many connotations, and many of them negative, that some people might be put off by the idea of it.

So as an alternative, I'd suggest: Move every day. This can be:

- putting up a basketball hoop and throwing a few hoops

- walking for 45-60min.

- go climb with your significant other

- play with your children (no consoles, actual physical moving)

- do a yoga class

All of these things might not sound like fitness but give you a great balance, when done every day.

amelius 2 days ago 0 replies      
According to Buddhist views, your wins do not matter; what matters is whether you are enjoying the journey.
q-base 2 days ago 0 replies      
tuyguntn 2 days ago 0 replies      
Follow up for this question, give advice about fitness for beginners


sanketsaurav 2 days ago 0 replies      
Wow, thanks. This is probably the best advice a first-time founder going through a pretty rough patch like me can get. Puts things in perspective.
jorgecastillo 2 days ago 0 replies      
I think learning would be one guaranteed win. If you put the time to learn X, sooner or later your going to learn X.
roghummal 3 days ago 1 reply      
DFectuoso [dead]:

>Sleep well, eat well and get fit. 100% guaranteed wins.

>Also, stop smoking/drinking. Hard battles, guaranteed wins.


wayclever 3 days ago 0 replies      
You are trying to fit a deterministic philosophy into our probabilistic world. If you exercise, any number of outcomes may transpire, including heart attack. Minimum risk with maximum reward may be a more realistic approach.
lifeisstillgood 2 days ago 0 replies      
but surely one of the important choices is what kind of business to start. a VC funded, all or nothing shot has even less chance of being a guaranteed win than a bootstrapped, early profit business. (I am thinking of the ability for the company to survive hiccups that if they occur just before series A dooms you, but if you are profitable and growing is just a hiccup.)
DFectuoso 3 days ago 0 replies      
Sleep well, eat well and get fit. 100% guaranteed wins.

Also, stop smoking/drinking. Hard battles, guaranteed wins.

Ask HN: Largest/most successful business without offices
3 points by biznerd  4 hours ago   1 comment top
shk88 2 minutes ago 0 replies      
As far as I know, Automattic (the company behind WordPress) doesn't have offices. At the very least, almost all of their workforce are remote workers.
Ask HN: Rewrite of Industry Leading Application
2 points by marktangotango  12 hours ago   discuss
Ask HN: Books for assertivness and dealing with confrontation
13 points by miffed  1 day ago   7 comments top 6
mindcrash 14 hours ago 0 replies      
I suggest to read everything from Marshall Rosenberg and friends on Non Violent Communication [1]. A great way to start is his website [2] and the first chapter of the book with the same name [3].

Do note however that this will probably not help you dealing with toxic narcissistic assholes who are mainly out there to hurt you to make them feel good about themselves in any way they can. You can almost never say or do anything right amongst those, no matter how you behave.

[1] https://en.wikipedia.org/wiki/Nonviolent_Communication

[2] http://www.nonviolentcommunication.com/index.htm

[3] http://nonviolentcommunication.com/store/images/pdf/2a_nvc_c...

navanit 1 day ago 1 reply      
"Winning through Intimidation" by Robert Ringer is an amazing work that has helped me tremendously.
antonchekhov 1 day ago 0 replies      
"The Assertiveness Workbook: How to Express Your Ideas and Stand Up for Yourself at Work and in Relationships" by Randy Paterson is the best I've read, although "Crucial Conversations" is very good as well. He discusses the three types of barriers (Stress, Social, and Belief) to assertiveness, and offers specific exercises to work through them. He's also very realistic - for example, he mentions that some relationships will become temporarily more difficult once you start asserting yourself more, but you shouldn't be deterred.
ObligatoryRef 1 day ago 0 replies      
How to Win Friends and Influence People, by Dale Carnegie. I've found that killing 'em with kindness often produces much better results.
kstenerud 1 day ago 0 replies      
Want to learn how to deal with conflict? Get into conflicts regularly.

That may sound trite, but it's the same for everything. In theory, it's the same as practice. In practice, it isn't.

mgregory22 1 day ago 0 replies      
Crucial Conversations is good.
Ask HN: How to solve the problems of greece?
8 points by anonyfox  14 hours ago   11 comments top 7
pvaldes 10 hours ago 1 reply      
> This way the society can be transformed and modernized.

Sorry by the bitterness but this sound exactly like the big plans for Irak. "The new Greece, now with 40% more of democracy kindly carried for our troops... and only cost US a few extra billions!"

Sometimes the right solution is simply to let fall the speculators. Military intervention just raise a new debt in an endless circle. Nobody can win always, not even banskters.

icu 5 hours ago 0 replies      
Hi, IMHO a really great question.

My comments:

a) By force isn't going to happen. The EU integration was about preventing wars by greater integration, especially economics.

b) That is probably where the EU is heading in many, many years to come... but not now.

c) I doubt any of the lenders want to throw anymore good money after bad.

So yeah... what the heck to do?

I really hate to say it but that leaves only two things Greece can do:

1) Greece has to leave the Eurodollar but is still a member of the EU, or

2) Greece leaves the EU completely (including the Eurodollar), and

...only one thing the creditors can do:

1) Extend better repayment terms.

So why would I suggest the above? Well for one thing the reason the UK is doing well economically is because the Bank of England has greater control over fiscal and monetary policy AKA the UK still has the pound (GBP).

My take on things is that Greece won't get out of this mess until they get a handle on fiscal and monetary policy and the main way to do that is by controlling your own national currency.

Also to my knowledge no Government has ever been allowed to go 'Bankrupt'. Essentially fiat currency is backed on the tax intake of a nation... but in the case of the EU... on the tax intake of the entire EU block.

There is some German poster who got down voted on what seems like the basis of a negative stance on Greece's predicament, however by linking all the currencies together the German politicians were tacitly agreeing to back Greece. Therefore IMHO it's not wholly Greece's fault that this mess got this far... the ECB and EU member nations should have tightened things up but then again France, Spain and Portugal are basket cases as well. And don't get me started on the fact that the EU's books aren't even audited... never the less, the point I was making is that it seems like the mood in the EU is to stop supporting Greece financially which means that Greece needs it's own currency again.

And I don't just say this matter the factly... what I'm suggesting will have huge ramifications and destroy lives, families, businesses--it's be total economic chaos until the market can sort itself out again (because by linking the different currencies together the market has been allowed to distort).

gesman 3 hours ago 0 replies      
When everyone is screaming "disaster!" watch the price of gold and bitcoin for that matter.

Both are being pretty stable right now.

Clearly big guys are not buying this BS and this game is going to get played safe for a while for now not matter what news outlets are wanting crowd to believe.

Non-event for people who know.

TheM00se 10 hours ago 2 replies      
At this point there is no easy fix and an international market calamity is unavoidable. The only thing to do is to minimize the damage and make sure that creditors won't freak out. Markets will take a dip regardless of what happens because Greece has gotten to a point that the ECB did not want Greece to get to. The actual ideal solution depends on what is to prioritized. If Greece's economic growth is to be prioritized the solution will be to actually forgive portions of the debt and screw over the investors. This will help the Greek economy, but it will piss off investors who will be much less likely to invest in Greece or the EU in the future which is why this scenario is just out. If repayment is the priority and keeping creditors happy, the ECB will have to pony up more cash for Greece, and Greece will have to find a way to get its finances under control which is a difficult task. The difficulties lie in two areas for Greece. The first is that a vast percentage of the population in Greece is employed by the government and as such the #1 employer will have to cut back which is going to cause problems for Greece who has no strong industry but a very strong currency. The second problem Greece has is that it has a culture of tax evasion. Greeks don't feel that it is their duty to pay taxes, as a matter of fact there is a strong culture of avoiding ones taxes. This means that Greece will have to find a way to insure it gets its revenue, even while its population does worse off. At the end of the day, Greece shouldn't have been given the money it was asking for, but we are well past that point.
mangoLover 3 hours ago 0 replies      
hello, In my opinion, I think a) and c) would be the beginning of a solution. but B) not really because I honestly think EU is a "joke" since Germany is the reason why it still exists (economically speaking of course). I believe Greece should get out of the EU, and inject money in its economy through some quantitative easing. I know it will cause the money to loose its value but it might be meaningful if the greeks could produce greek and consume greek maybe live in autarchy for a couple of year why not ?? But the only thing I see is that the solution will not come from the EU and for investors, let's be honest, they re nowhere near recovering their full investments. I apologize for my english as I am not an native english speaker. . .
argumentum 9 hours ago 0 replies      
I'm over this horror of the investors (creditors) not getting repaid. When you make an investment, you are taking a risk. If it doesn't work out, accept it, learn and move on.

The fact is the EU currency union was deeply flawed from the beginning, and favors exporting economies like Germany over a tourism/shipping economy like Greece. Greece was the fastest growing economy in Europe for decades prior to joining the Euro, and given its immense advantages, there's little reason to suspect this wouldn't have continued in a fair and equitable union, despite corruption & overspending.

Invading Greece to recoup the losses of large banks is not only insane and unethical, but will undoubtedly be met by the bloody resistance of a proud people. It would probably lead to a third world war, which the EU was created to prevent. Your option B is a better union, but it seems very unlikely to happen.

The best bet is what is going to happen anyway .. Greece will leave the Euro, struggle to get back on its feet, but once it does it will prosper as currency devaluation will play to its strengths as the most enticing per capita tourism mecca in the world.

anonyfox 8 hours ago 0 replies      
In this case the investments are already socialized, so the private investors have their money back while the societies of other europe states are fucked if their tax money is lost, not some VCs playing with risk billions.

So yeah, the consequences might be real and hard i'd say

Tell HN: These are some of my favorite talks for software engineers to watch
18 points by Yadi  1 day ago   4 comments top
noblethrasher 1 day ago 3 replies      
My recommendation:

1. Go to YouTube (or Vimeo).

2. Search for "Alan Kay".

3. Watch any video that is longer than 20 minutes.

Repeat for "Leslie Lamport" and then for "Rich Hickey".

Ask HN: APL family instead of R for data analysis?
61 points by wrp  3 days ago   50 comments top 16
tlack 3 days ago 3 replies      
I'm having a blast playing with the free 32bit version of Q/K/Kdb+ these days in the context of a medium sized website which requires a good deal of data analysis.

As you probably know, Q/K are in the lineage of APL languages, with strong inherent vector-oriented capabilities, but Q uses an SQL-like dialect of words to replace APL's symbols.

I've always found the idea of APL exciting, but it seemed to be a very isolated platform. "How do I use this on my site?"

Q speaks SQL natively (using s.k) so it's easy to work into my MySQL-based flow, though not exactly the same as MySQL's syntax.

It's got great built in facilities for bulk data loading and storing, which saves you a lot of time with the boring "getting my data set up" step when banging out little helper scripts.

I've begun using Q as a cache in place of memcache/redis because I much prefer being able to ask flexible questions with a dynamic query language. Example: A MySQL query on a 1m row table that was often showing up in my slow query log at 1sec+ took less than 50ms in Q.

Obviously Q and MySQL are apples to oranges, but it is still a handy adjunct when you need serious speed without full loss of flexibility.

And writing Q directly is a really interesting exercise. My PHP and Node code has gotten better as a result.

gd1 2 days ago 1 reply      
I use both. R is slow as a dog, Q/KDB+ is (almost) as quick as C. R is ugly, Q/K is beautiful and elegant. R has a wealth of open-source packages, Q not so much.

Best solution is to do most of your work in Q and call into R when you want to use a package. The R integration works well, see http://code.kx.com/wiki/Cookbook/IntegratingWithR.

The reality is that if you are using (and paying for) Q/K, you are likely doing so because you're dealing with billion+ point datasets. At least. R just melts and falls apart at that kind of size (without using native code, which isn't really R then is it?). So I often end up just translating R functions into K equivalent, and just using R for the nice-to-have features like latex/brew/ggplot/etc.

tpetricek 3 days ago 2 replies      
R is... _interesting_ language. Its main power really comes from the comprehensive libraries that are available. I think there is an interesting option if other languages can figure out how to make the R libraries easily accessible in their environments, which is not that easy, because even the libraries can use the _interesting_ R design features :-).

That said, in F# (which is a functional-first language with some solid programming language design background), one can call R functions in a fairly nice way using a type provider: http://bluemountaincapital.github.io/FSharpRProvider/.

This probably cannot replace R for typical statisticians, but it is a nice option for programmers...

chubot 2 days ago 1 reply      
Are you using Hadley Wickham's libraries in R? I think those go a long way toward fixing the problems you may have encountered -- i.e. API consistency, usability, orthogonality, naming, etc.

I also suggest reading some of his papers like "Tidy Data".

R is weird in that you NEED a large set of CRAN libraries to do work, whereas in Python you can do a fair amount with the standard library, and PyPI is relatively weak in comparison.

I'm also a programmer who learned R for data analysis. It does take quite awhile and some pain. Part of the difficulty is that R is weird and has warts, but an even bigger difficulty is that you are learning new concepts and programming abstractions (fundamental difficulty vs accidental difficulty). R passes the test of a language which changes the way you think.

R has its warts but is likely the most practical choice. It has the full set of things you need -- data preparation and cleaning, exploratory analysis, model building, and visualization.

BMarkmann 3 days ago 1 reply      
You could just blow everyone's mind of sneak APL into R:


avmich 3 days ago 1 reply      
J has pretty good - but may be small - community on Jsoftware forums. J libraries are small but ever growing - are there particular examples of R libraries which are sorely missing in J?

I should admit I was asking myself the question of this topic.

kcl 3 days ago 1 reply      
You might give Kerf a try: https://github.com/kevinlawler/kerf
brudgers 3 days ago 1 reply      
The advantage of R is it's robust community. The "Array processing languages" family [APL, J, K] is a radically smaller community.
baconner 3 days ago 1 reply      
There are some other alternatives that I suspect you'll be happier with if your main issue is the R language. Python + pandas or Julia for instance. Smaller communities around those but less aggravating languages for sure.
chrisocowan 3 days ago 1 reply      
I did a lot of work with device models and SPC, while working in VLSI Design. We had SAS and APL2 (with a companion stats package called GraphStat). The APL2/GraphStat combo was awesome, and I always found myself going to APL2 when I really needed to do some analysis. But, APL2 withered on the vine long ago.

After some recent forays into Clojure, Haskell, and R, I find myself getting re-interested in languages in the APL family.

I had read about Q, K and Kdb+ a while ago. Guess I'm going to have to kick the tires.

caseyf7 2 days ago 0 replies      
Really, you're going to call the typical R user a non-programmer? R has become so popular because there are many phenomenal programmers working in R.
msravi 3 days ago 1 reply      
I use Julia (http://julialang.org/) and have found that it brings the best of multiple worlds into one neat platform. There are the native Julia functions, but there are interfaces to C, Python, and R. Plus, programming in the language is a pleasure.
ZenoArrow 2 days ago 1 reply      
There are probably plenty of good options, but have you considered F#? It's got some good support for this type of work, including an R Type Provider (and I'm not talking about something that swallows quarters!). Here's a useful summary of some of the key features F# has access to for data science work: http://fsharp.org/guides/data-science/index.html
MageSlayer 2 days ago 1 reply      
Just in case if someone is really interested in APL expert (Dyalog APL) and/or remote job please contact me.
GFK_of_xmaspast 3 days ago 0 replies      
Given a choice between 'clean design' (which is certainly not a truth universally acknowledged) and 'getting stuff done with libraries that somebody else did the hard work on' I'll choose r any day of the week.
davelnewton 3 days ago 0 replies      
Oracle linking to it-ebooks.info
7 points by ishanr  1 day ago   2 comments top 2
mindcrash 14 hours ago 0 replies      
No. Support Kathy and buy it instead.


sixQuarks 1 day ago 0 replies      
I don't know what to think of that site. How has it not been shut down?

personally, I've used that site to browse through books before buying them online. In my case, it is beneficial for the publisher to have their books on that site, but I'd imagine most people don't use it that way.

Ask HN: What is the best way to make business plan when we are in Idea stage?
2 points by techaddict009  7 hours ago   3 comments top 2
icu 6 hours ago 1 reply      
Hi, firstly you're not alone when struggling with the financials part of a business plan... I most certainly did.

What I suggest is getting a second hand copy of Timmons' "New Venture Creation" book and look at (and copy) the Business Plan template.

You can pick up this book for $5 via Amazon (http://www.amazon.com/New-Venture-Creation-Entrepreneurship-...) and IMHO it'll be the best $5 investment you can make to assess your idea and build a 'formal' bplan (aka what an investor or incubator/accelerator will most likely want to see).

The template is quite comprehensive but just skip the bits that don't apply to your opportunity. Follow Timmons' examples as to how to work out the financials (and copy the example layouts given).

Good luck, btw read that book front to back... it's one of the only entrepreneurial books that has stood the test of time for me and I have gone to it through several different start ups.

winhacker2000 6 hours ago 0 replies      
I would start by describing a few different scenarios to help sell your investors on the business' potential, and show them how different levels of investment will affect the outcome.

Presumably you've already done some amount of this work for your partners/engineers, right?

       cached 29 June 2015 04:05:04 GMT