Ask HN: How can I prevent getting 'ousted' from the company that I co-founded? - <AUTHOR> I am the technical co-founder in a New York based company. 'Company' is just a way to say it, we are just two guys with a good idea and an already finished MVP that I built myself in a four months period. The idea guy is not technical at all, he knows his away around in all business related matters, and coming from an ivy-league school, he has a lot of connections.
Four months ago he approached me with the idea, which I liked, and I started working on it. I like to do stuff, and I started working on it as a side project. I have a very well compensated job in a local startup and I would like continue to do that in the short/medium term.
As I said, we have a really good idea and a working product. Is not crazy to say that my co-founder could raise a couple hundred thousand dollars from investors in our current state. My concern is that so far everything, my equity, and possible future role in the company has only been agreed verbally.
I've mentioned my co-founder several times that we need to incorporate and he says it's one of the things on his list, but never happens. He says is not the right time and that we must incorporate once the investors jump in. I feel like I'm the one who has worked the most during this four months and I don't want to end up without a single share of ownership in the company that's going to be behind our product.
HN: How can I guarantee that I keep my value as a co-founder and get something in return in case we succeed? How can I prevent this other person from taking the code (which I shared with him) and give it to someone else to continue working on it, taking me out of the picture? I've heard of several similar stories, I just don't want to be part of one. Thank you. <comment><USER4> You are asking a specific legal question. You must (must!) pose it to a lawyer. Most lawyers offer a free consultation. Go right now and set one up. This is not something you want to be wrong about because you trusted some Internet forum comment.

<comment><USER5> People always say "go talk to a lawer!" but someone in this situation likely has no idea how to even find the proper lawyer.

<comment><USER6> Agreed.

OP: the code and intellectual property belongs to you unless you transfer copyright over or mark as open source. That said, code is hardly the most valuable asset in an early-stage startup. The best real way to "protect" yourself (besides getting legal docs papered) is to stay involved in every important discussion and develop your own relationships with investors. Your cofounder should welcome this, and should help you develop your non-technical skills.

If you notice any unease, red flags, shadiness, lack of transparency, BAIL OUT. Incorporate yourself and transfer the IP into a company owned 100% by you. Find a new business partner.

<comment><USER7> _" the code and intellectual property belongs to you unless you transfer copyright over or mark as open source"_

The OP said he's working for another company while he's doing this ("I have a very well compensated job in a local startup"). Depending on the employment agreement he signed with that company, they may have rights to the code he wrote (especially if he wrote any part of it using the company's equipment or on the company's premises, or if the code is related to the company's line of business). Remember, this is in NY, not in California, so the protections against unreasonable employment contracts could be weaker. So he really needs to talk to a lawyer before taking any kind of action.

</comment></comment></comment></comment><comment><USER8> There are a couple ways to approach it, depending on your level of trust in the Ivy League co-founder: BRUTE FORCE APPROACH 1) stop working on the project -- at this point you have leverage because you have the code and the knowledge of the code, he does not. 2) make the code base unavailable 3) refuse to participate in fund raising, where he needs you (normally) as the tech cofounder to answer tech concerns raised by the investors

I'll stop there because there's a 'softer gentler' approach you can figure out by yourself.

I'm stopping there because he has already insinuated the following:

"I'm not convinced yet that I need you, software guy. It seemed easy enough to find a guy like you to code this up for me and I could probably do that again, especially once I raise funds and can actually pay someone to write code."

"If I was __really __willing to share the pie, I would have addressed your concern about "let's put the equity share in writing" but I sort of 'stone- walled' you on that because the risk of you bailing out now is minimal, you already provided me an MVP which I can show to investors to raise money."

I've been down this road before. Unless you have very unique technical know- how, you can be replaced by almost any other coder. And if you provide the work with no 'sharing agreement' you risk discovering that your non-technical co-founder shows he is not motivated -- by anything -- to later cut you in for a piece of the pie.

Let me say that another way. Put together an equity share paper. Put it in your own words and/or using equity share statements from the web. If he refuses to sign even that, you know where you stand, he's probably put you on his "expendable" list.

After the tech world saw Zuckerberg become a billionaire by absconding with 'not his idea', ethics and respectable business behavior is much less common, unfortunately.

<comment><USER6> > After the tech world saw Zuckerberg become a billionaire by absconding with > 'not his idea', ethics and respectable business behavior is much less > common, unfortunately.

If anything, the Zuckerberg situation is a counter-example: similar to OP, Zuckerberg was the technical guy, and similar to OP, he was not placed under sufficient contractual obligations before beginning the work, thereby allowing him to "abscond" with the "idea" (if such a thing is even possible).

</comment></comment><comment><USER9> Hello Newbie co-founder. You MUST consult with a lawyer asap since getting advice on a forum online is not legal advice.

Close your browser and call one NOW! However if you read below that line - you're on your own :)

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>---

Since you developed the code and you never signed on any paper that hand over the rights to that code to another person or a company (I hope you didn't) then you probably have some leverage since your co-founder (or his corporation) won't be able to use it.

One of the few things that you do when you incorporate is create a TAA (Technology Assignment Agreement) that will sell your IP to the corporation. The technology assignment agreements deal with IP that was created by the IP owner before the he became a shareholder - in your case IP created by founders pre-incorporation.

The technology assignment agreement is usually referred in the stock purchase agreement (SPA) since the transfer can be seen as the consideration for any stock purchased by you (when incorporating).

Without that any founders will have a hard time to get investors to invest since the company itself does not hold any right over the code or any inventions.

Additionally - I must say that your co-founder might be right in the fact that you do not want to incorporate the company until you can know for sure there is some sort of positive outcome. It seems that you just built an MVP and there's no __need __to incorporate (payroll? selling something?).

Incorporating means that you will need to start declaring taxes and report to the IRS and that add a lot of overhead that you DO NOT WANT. The best thing to do is probably wait until you have some investors showing interest and then incorporate in order to receive that investment.

I would probably consult with a lawyer and prepare a sit-down with your co- founder to form a legal document that will establish the relationship between the co-founders.

AS always - <USER2>

p.s: Edited and added some clarification about TAA

</comment><comment><USER10> A lot of people are saying 'get a lawyer', but I have different advice:

 __If you don 't trust the guy, don't start a company with him. __

Really. You will need to deeply and totally trust each other in every thing you do for years if you go down this route, and if he 's dodgy about this, he's going to be dodgy about everything, to you, your customers, your future employees, etc. Investors will see it too, and they won't want to invest if they can't trust him and if you two don't have a professional, trusting relationship and absolute dedication to the success of the company over your personal gain.

Don't do it.

<comment><USER11> Right on. Right now, there is no company. The OP owns the software and the implementation not the concept is the only thing that has concrete value.

The business person's obligation is to execute on the business side, and that obligation hasn't been fulfilled. Moreover, the business person has stated that they are not going to execute their role until they feel like it.

Let the other fellow lawyer up.

</comment></comment><comment><USER12> I'm not a lawyer, but I think you own the code you created by default. Though you should obviously try to get a legal contract and all.

<comment><USER13> This is probably not true.

<comment><USER14> Note to OP: what follows is speculation for entertainment. Get advice from a lawyer before even considering basing any actions on this.

Note to everyone: OP said his agreements have been made "verbally". I'm going to assume he meant "orally", because 99% of the time that is what people actually mean when they talk about verbal legal agreements.

It almost certainly is true. The only ways it would not be his code are if it were a "work made for hire" or if he has transferred the copyright to someone else.

There are two ways for something to be a work made for hire.

1\. It is produced by an employee within the scope of his employment, or

2\. It is specially ordered or commissioned and falls into one of several categories AND the parties expressly agree in a written instrument signed by them that the work is to be considered a work made for hire.

If all they have are oral agreements, then #2 is out. For #1, "employee" does not necessarily mean an actual employee under whatever definition your state uses for that term. It can include relationships where the person creating the work acts like an employee. A big factor in that is how the work is supervised, and who provides the equipment and facilities used in creating the work.

From the OP's description, he did the work on his own. It's hard to see how he could be seen to be an employee for purposes of copyright law, and so #1 is also out.

The other way he could no longer own the copyright would be if he transferred it to someone else. Copyright transfer requires a signed, written instrument. If all they have are oral agreements, then there could not have been a transfer.

There's one more possibility to consider. Even thought the OP almost certainly owns the copyright on the code he has written so far, it is possible that he has licensed it to his partner. For instance, if they intended to make their code open source, and the OP included a notice stating that the code was under GPL, and gave a copy of the code and license to the partner, the partner might argue that he can continue to use that code and continue to develop it without the OP's further permission, as long as he follows the GPL.

</comment></comment></comment><comment><USER15> Do the paperwork up front. I can't count the number of times I've been approached with good ideas, and some vague promise of equity at some vague time in the future. I always say no, thanks. Not to say I've never been a startup member/founder; I've done nothing else my entire career. I just never, ever do it that way.

</comment><comment><USER16> Put copyrights in all of your code, I mean everything. Copyright assignment is the act of assigning your work to someone else, usually in the form of a contract job.

Until a contract is signed, and you have "assigned your copyright" to another entity, all of your produced code remains under your own control.

</comment><comment><USER17> I was in a situation similar to yours for several years early on in my career. My co-founder had built somewhat of a prototype in his spare time, and he and I wanted to take it to the next level.

And we did. We launched a private beta, signed a couple small-time clients, and started making money. The product kept evolving, and my co-founder got less and less involved.

I kept pressing him to do the paperwork. We'd made a verbal agreement, which he affirmed many times (I still have the chat logs in Gmail). I trusted him to keep his word for a long time.

After about five years, I found myself suffering through depression, stress, and burnout. I couldn't take it anymore, so I left the company.

As soon as I left, he started to actually work on the business, finding clients and looking for funding and investors, free of the shackles of his promise to me.

The only way you can guarantee your value is to have a formal agreement -- one drafted by a lawyer. I don't know your co-founder, and I certainly hope he's not like mine, but you need to look out for yourself. Even if your co-founder is a stand-up guy, it's not his job to look out for your interests.

<comment><USER18> Your chat logs are a written agreement.

</comment></comment><comment><USER19> Even without incorporating, a written document with some semblance of ownership can be helpful. Before I split my company out from my sole proprietorship my co-founder and I agreed by email to an ownership split.

Having something out there that says you've both agreed to some split, even in your own words, is super helpful to protect your interests when investors show up. Their lawyers will want that gone, and replaced with something more formal. To do that they'll need you to agree to a new formal relationship, and for you to agree you'll need to be happy with what they're offering.

I'm not a lawyer, this isn't legal advice. Just observations from my own experience.

</comment><comment><USER20> I'm not a huge fun of going thru the time and expense of legal formation every time you want to explore a potentially lucrative side project... I once rapidly formed an LLC because someone wanted to buy a side project of mine.

But you _can_ protect yourself. First, only dabble with people who you trust. It's not perfect (every couple believes "till death do us part" when they say it), but it helps. Beyond that, it's trivial to write out a shared understanding that will get you much of the way to "protected". Note that the most important thing is that they are ethical and there is a shared understanding. Legal docs aren't a substitute for that, they're just a weapon if you need to go to war.

Discuss the following: 1) Compensation. Equity? Deferred $? If equity, % of ownership (fully vested) and rate of vesting. (read: [http://thenextweb.com/entrepreneur/2013/07/21/startup- founde...](http://thenextweb.com/entrepreneur/2013/07/21/startup-founders- heres-why-vesting-is-your-best-friend/))

2) What happens in various dissolution scenarios? What if either or both of you want to quit? What if either or both of you wants to fire the other? Who owns the code?

Once you share a verbal understanding, write it down via email to him and have him respond to the email confirming that he agrees. If you're worried, print and sign 2 copies. It doesn't have to be legalese to give you teeth if a fight happens... But your goal should obviously be to avoid a fight.

You have a lot of power right now, but you should use it lightly. Say, "Hey, X-- I'm feeling increasingly uncomfortable and would love to take some time out to discuss our partnership. I know incorporation is expensive and time consuming, but I'd like to make sure we share an understanding on X, Y, and Z. Once we do, I'd like to write that down, email it, sign it, etc. Does that make sense? When would be a good time for that? I suspect we'll need a few hours of quiet time." Until that happens, stop writing code and (if you think he might be a bastard) make sure you have the passwords.

<comment><USER6> FWIW incorporation is not time consuming NOR expensive.

But yes, you're right that a simple written agreement is much better than nothing (though doesn't provide full protections on both sides - <USER3> vesting, dispute resolution, etc.).

If your cofounder is a half-decent business guy he knows both of the above, which makes this situation somewhat suspect.

<comment><USER20> If you're incorporating with the purpose of eventually raising money/selling stock (which means a C corp), it's non-trivial... I assumed that's what they would do given that the OP was talking about raising $. But yeah, it's quick and dirty to S-corp it or LLC, depending on what state you're in.

I've seen a lot of side projects (my own and others') peter out for various reasons, which is why I think front-loading it with incorporation is a bad way to spend money/time. With a good shared (WRITTEN!) understanding on vesting/disputes/etc, you can mostly de-risk it... But not in the buttoned-up way a lawyer could.

</comment></comment></comment><comment><USER21> I am not a lawyer, and you should talk to one. But, before that - there are a couple of thoughts that might help:

You should have a broad agreement before you go to the lawyer. Are you thinking about a 50% share in the company or a 1% share in the company. You need to talk about it and be on the same page. After you talk about it, I would just get a confirmation via e-mail. Some documentation is better than no documentation. (Yes, you ideally want a lawyer looking at it, but it also would be a legal liability for him if there is a rough e-mail agreement that he hasn't given you shares for).

The idea guy will likely want you to be working full time on the company. I think your answer should be something of the order of 'Yes, as soon as you are also full time meeting goals XYZ and that we have enough runway to pay me 50% salary for 18 months'.

Until the company exists any work that you have done you own it (unless he has paid you and you have explicitly assigned the IP to him).

If he waits for investors before incorporating, there is going to be a tax situation (because then the company will be worth something). You ideally want to incorporate and value the entire company in the beginning at $1 or something similar.

Most investors will likely want the technical talent that they are investing in. If he gets good investors then they will likely want you to have an comparable share in the company as him. However, in my opinion, your worst case scenario is that he could say to the investors you are not too important, and that he can toss your code and get it built offshore for cheap (which might be easy given that there is an already working prototype).

</comment><comment><USER22> Your friend came up with an idea, 1% inspiration. You have done the 99% perspiration. You have more of the cards than he does. Work the 'nothing signed' to your advantage.

What does money bring to the table and how will it convert your MVP into a viable business entity?

Personally I believe you need customers before you get yourself beholden to some outside investors.

Get the customers, go live with your MVP in a soft roll-out way, do what you have to do to get to ~100 customers/clients/users. If they like your product then they will do some 'organic' growth for you. If that happens then you will have traction. You will be able to get money for growing into a proper company from many other sources than your friend's network.

So, head for success. When your friend who would not give you a formal 50/50 wants to know why he is not needed just tell him that his idea was just an idea and that 99% is perspiration. From how you tell the story he has brought nothing else to the table other than an idea, ideas on their own are worthless.

Much like winning the lottery there is this dream of having the right idea, getting an MVP and then being bought by FB/Google/Yahoo to then not have to work ever again. However why not go for the customers, get revenue from them and grow the business fairly and squarely?

If you are charging customers, selling ads or getting revenue sent by any way that needs code, make sure your bank details go in the back end. Simple as. Setup the hosting in your name, make sure you have the DNS situation under control too. Keep your partner along for the ride just in case he does bring something useful to the table but don't tell him that he isn't really needed until you are absolutely certain of that.

</comment><comment><USER23> A lot of people here suggested you speak with a lawyer and they made it sound like you should do it on your own.

1st, make absolutely certain that who ever you choose as your lawyer is a startup lawyer. Do not contact a family friend who does litigation or someone else that does real estate law. You must hire a startup lawyer who does work for venture firms, angel investors etc.

2nd, From the read, you are worried, but you still think your co-founder is a good guy. If that is the case, you should just send him a link to this post and say: "I asked this question on HN, and it is clear that we may not need to incorporate yet, but I am concerned about protecting the work I have done and will do in the future. Let's start talking to lawyers about everything to get the ball rolling."

By staying positive and just showing him that this is the right thing to do, you are making forward progress. If he balks at hiring a lawyer, you may want to consult one on your own.

<comment><AUTHOR> First, thanks to everyone for their advice. I'm reading carefully.

Replying to your comment: yes, I think he is a good guy. But in all honesty, I would like to finish the product and stop working on it while holding to some (even small) equity in case the company succeeds.

We've already outlined a plan to bring paid developers onboard. Once it materializes, I would like to do less and less until completely detached.

It all started as a good idea and I had a lot of fun building it. Looking back, I see the quality of our current product and the time I've spent on it, and I think I should own part of it even if I don't continue to be involved in its potential success.

<comment><USER24> Does your cofounder know that you don't want to be a part of the company in the future?

<comment><AUTHOR> I don't know it myself either. It's an idea I'm contemplating, but the most probable scenario at this point.

<comment><USER24> You need to decide this.

Your cofounder will raise money based on the future needs of the company. If you're not a part of the company going forward, your cofounder will need to make it clear to investors how he plans to move the company forward without you. If your role is critical to the company's continued existence, he may need to find a new technical cofounder, which can take quite some time. If not, he may need to raise more money so that he can hire employees or pay for contractors.

If you do decide to leave it's going to be very much like breaking up...

If you've been communicating well with your cofounder he probably won't be surprised, and is more likely to be mature and understanding, and start discussing all of the things that will need to be done so that you can leave without hurting the company.

If you've not been communicating well, your cofounder may be completely surprised and upset, and may disagree that you leaving is the best thing for both of you. He may want nothing to do with you moving forward. It's important that you're prepared for this, and that you are able to show him exactly how you can leave the company without harming it. In other words, you'll need to make a very clear exit plan, so that it's clear that you're leaving the company, not trying to destroy it. If you're lucky he'll let you help execute the transition plan.

</comment></comment></comment></comment></comment><comment><USER25> Some of the previous threads:

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

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

</comment><comment><USER26> Apply the veil of ignorance and put yourself in the shoes of a potential investor.

Would you invest in a solo ideas guy with an MVP but no skill? Or would you rather invest in a dynamic duo?

Trust is a hard thing to grow, but it does become rather easier when you work to understand the motives of others from their perspectives, and if there's a shred of doubt in an investors' mind as to whether the cofounders trust one another, they will not bite.

That all said, what's stopping _you_ from opening an llc/s-corp and assigning the ip?

</comment><comment><USER27> You should definitely sign a founder agreement right now, even if incorporation is still a few weeks/months away. For my own startup we used a custom version of this template: [http://www.docracy.com/103/founder- collaboration-agreement](http://www.docracy.com/103/founder-collaboration- agreement) Did you guys already agree on equity split?

<comment><USER28> How can you agree on an equity split when there is not a company?

<comment><USER27> See the document, it is phrased as "Upon formation of the Start-Up Company, the entire issued share ownership of the Start-Up Company will be split as follows..."

<comment><USER28> Yes, can't see any problems there.

</comment></comment></comment></comment><comment><USER29> Well first thing you should do is contact a lawyer but second thing you should do is to actually:

talk to your cofounder.

Express your fears, and negotiate a solution (solutions which you have already in mind having talked to the lawyer). Maybe he really hasnt had time or maybe he really thinks that the investment stage is the most appropriate for incorporating.

</comment><comment><USER30> I'm pretty sure that in some states, like California, verbal agreements are protected by law. If he admits to the verbal agreement in court he's bound by it. I don't know if this is true in New York. If they disagree and say they never made any such arrangement then they may be lying but then it's murkier.

</comment><comment><USER31> In the business world, as in the natural world, either you eat, or get eaten.

And you are clearly at the bottom of the food chain. You are best suited to a lifetime of regular employment, not launching a startup.

Every man's got to know his limitations. Make sure you know yours.

</comment><comment><USER32> Write up a simple partnership agreement that assigns interest in the partnership.

Or don't, you already have a partnership with him. But with no agreement you'd have to follow default partnership rule. 50/50% split of profit, assets, and debt.

</comment><comment><USER33> Tell your cofounder right now that he either incorporates this week in which those documents will clearly state what your role and you're ownership stake is, or you're done working on this.

</comment><comment><USER34> Do the incorporation stuff yourself and give it to him to sign.

If there are shenanigans, try to cause as much pain as possible without doing actual damage; a kick in the balls is OK, scratching should be avoided.

</comment><comment><USER35> Paging grellas.</comment>


DigitalOcean grew faster on a month-to-month basis than AWS - <AUTHOR> http://recode.net/2014/03/06/digitalocean-a-fast-growing-coud-host-lands-37-million/

<comment><USER2> Not to belittle DigitalOcean's growth, but AWS is a mammoth compared to all other services. The percentage growth may not be the best metric to compare AWS and DigitalOcean. Let's see how DigitalOcean makes use of that $37M.</comment>


Safari 5 to be launched at WWDC with Safari Reader? - <AUTHOR> http://9to5mac.com/Safari-5-34603946

<comment><USER2> When I read there was support for "HTML5 Ruby" I thought, can it be? There's an HTML5 spec that calls for implementing Ruby in the browser?

Sadly, no: <http://www.quackit.com/html_5/tags/html_ruby_tag.cfm>

<comment><USER3> Though not HTML5, it _is_ possible to script Ruby browser-side in IE, Firefox and Safari: [http://www.rubyinside.com/ironruby-silverlight-ruby-in- brows...](http://www.rubyinside.com/ironruby-silverlight-ruby-in- browser-3192.html)

Well.. sort of ;-)

</comment></comment><comment><USER4> "...will apparently include a Reader functionality that will make web page reading easier by extracting and organizing the text."

Hrm. Sounds a lot like Instapaper.

<comment><USER5> Or Readability; <http://lab.arc90.com/experiments/readability/>

<comment><USER6> Or my project which was based off of readability:

[http://toadjaw.com/article?url=http%3A%2F%2F9to5mac.com%2FSa...](http://toadjaw.com/article?url=http%3A%2F%2F9to5mac.com%2FSafari-5-34603946&mld=80&rhld=true&rl=true)

Great!

<comment><USER3> What technique are you using to deduce what the content of the page is? A straight port of Arc90's open source code or some magic of your own? (I'm asking because I'm keen to improve their technique for a library I'm working on.)

<comment><USER7> I'd be interested in alternative methods as well. I wrote the algorithms within readability, which are far from perfect.

</comment></comment></comment></comment></comment><comment><USER8> I'd be real interested in their method for finding only the content of a page for "reading". Is it a custom template for most major sites or something smarter?

</comment><comment><USER9> Been a year since the last major Safari release, so the timing seems right.

</comment><comment><USER10> How much of this list is currently present in the nightly build of Webkit?

<comment><USER11> None of the UI stuff but the JS improvements are there. About the same speed as Chrome (so about 30-40% faster than Safari 4 according to the SunSpider benchmark)

</comment></comment><comment><USER12> I hope the reader mode uses TeX for formatting or equivalent, getting tired of nasty print as more and more stuff goes digital.

</comment><comment><USER13> I hope they bring back the blue progress bar.

</comment><comment><USER14> Thrilled about the innovation the new browser wars are bringing. Only great things for end users!

</comment><comment><USER15> _Bing_ is added to search engines list. Better alternative then _Yahoo_.

<comment><USER16> I'm hoping there will be some additional customisability of the search box, I want to use google.com.au, not google.com, and I'd really prefer not to install more Safari addons (had some issues with memory leaks in the past).

</comment></comment><comment><USER17> How does the XSS Auditor work?

<comment><USER18> I can't think of a reliable way to filter out "malicious" code without also having many false positives.

Without having seen their solution, I feel that the browser is the wrong place to fix this kind of problem anyway. Much like PHP tried to prevent SQL Injection Attacks with "Magic Quotes" - we all know how that went.

<comment> X-Istence This is not about the browser "fixing" the issue, but rather helping developers find the issues in the first place.</comment></comment></comment>


What VCs look for in startup pitches - <AUTHOR> http://e27.sg/2012/07/25/a-must-read-before-making-an-venture-capitalist-pitch/

<comment><USER2> I get two different stories from different crowds on this issue.

From many VCs and angels themselves - at least the ones that get their articles upvoted on this site - I get the impression that they dislike being bullshitted at. They hate people who are disingenuous. They don't care too much about projections or future plans. They just want to see how good your team is.

From everyone else in the industry (those looking for investment, those who have found investment, executives in large companies, etc.) I hear a completely different story. Tell them the world. Make projections bigger than you think is realistic. Talk yourself up. Show interest in things that the VCs are interested in - even if you aren't. Create a story of the future that will please the investors. This is not always exactly the same story you _really_ want to go with.

Now I really prefer doing the former to the latter. I just don't know how effective it really is and I hear different stories about how to behave when searching for investment. VCs and angels aren't mind-readers, they aren't super-human, and they have the same failings as everyone else. If you can get away with the latter without _appearing_ dishonest, you might have a better chance at bagging the investment deal.

<comment><USER3> Recently on a date with a non-tech person I described my company as "not likely to be a billion dollar company, but a good one nonetheless." She was shocked that I would even mention the b-word. I need to get out more. :-)

<comment><USER4> Not to burst your bubble, but from the standpoint of pure probability it's not likely to be a million dollar idea either. However, I don't know anything about you or your company so maybe you've beaten the odds and your company is on track to having an arms-length valuation greater than a million dollars already.

<comment><USER3> I agree completely. My point is that when I'm talking to entrepreneur types this sort of talk is shorthand for how I describe the company's potential.

</comment></comment></comment></comment><comment><USER5> Help me out here please.

One would think that any VC's absolute core, essential, vital skill would be "read between the lines", "see through", "smell the stuff"? So they can pick the best investments regardless of the pitch. Like having a sixth sense. If you can't do that, what good are you investing?

But no. Sometimes I feel that even YC is become pitching contest, not startup contest. Countless on stories here on how to act, say things, what to wear, what to do etc. Is it really come to that, that even PG picks best pitches, not best idea/teams. If yes, why do you bother to apply? If no, why do you bother to polish the pitches?

I have hired lot of people to work for my small businesses througt the years. I have always read between the CV lines, thrashed the "best" ones and picked "worst" ones, they all turned out great workers. So?

<comment><USER6> This bugs me too. I really don't want to subject myself, the team or my company to such arbitrary judgements. I wouldn't want the money, suggestions or control of an investor who liked the company because of what I wear or the buzz words I threw. I'd rather work on the idea/company to get it to the point that it automatically attracts the right investors.

</comment></comment><comment><USER7> Is it just me or does Vincent Lauria stand out as the one guy in the bunch that I wouldn't want to pitch (or have a beer with).

I've noticed this trend with VC's I've met. The bigger the VC name, the more respectful they are of entrepreneurs and what they go through.

I know there are lots of people who pitch bad ideas, but that is what having good deal flow is about. Getting your schedule so packed with good people/businesses that their is no room for the ones that wouldn't make it.

<comment><USER8> What didn't you like about him? He seemed keen on a solid business principles and that's great. Only thing I didn't like is the desire for a 2+ person team, because ownership is everything, but that's hardly an unfair request - there's far greater risk investing in one person.

<comment><USER7> I actually just went back to the post, and they've edited the original article. He initially had a long list of things which included (something like) #2 don't pitch me another group buying site, #4 seriously, don't pitch me another group buying site.

It wasn't the his content was wrong, he should say how he feels. But it had a very negative and condescending tone to it.

The edited article is much... smoother.

Also if you compare the other VCs in the article, much of it is about what they want, rather than what they don't.

I have nothing personally against Vinnie, I've never met him, never heard of him before. But in the first version of the article he really stood out against the others in what I thought was a negative light.

</comment></comment></comment><comment><USER9> I mean that's great and everything. I love it. But. If the past and the present was so great, I wouldn't need money. I think Mark Hsu's paragraph on "Avoid overusing buzzwords" was pretty good; I think the avoid "Netflix for Pandas" thing is commonsense now but the notion that should actually use specific numbers when making your pitches can't be shouted enough.

<comment><USER10> _If the past and the present was so great, I wouldn't need money._

Not to put words in anybody's mouth, but given that one can reasonably deliver a production-quality software product for hard costs lower than a college student has in their checking account these days _and also_ pound the pavement selling it and/or have customer acquisition channels proved viable in microscale, you don't necessarily have to be rolling in it to a) have numbers which demonstrate traction while b) not having nearly enough to make the next big steps like bringing on multiple people at market salaries.

I'm only a mentor at 500Startups and don't have decisionmaking authority, but I'd predict that if you had a story like "We built a $WIDGET for doctors offices, cold called 100 people, got 10 meetings, and sold two systems for $1k a month each. To take this to $1 million a year we need a) a customer acquisition specialist, b) two engineers to firm up the feature set, and c) money to play with more scalable channels. That costs holy-OMG more than $2k a month." the answer would be "That is intriguing and we want to hear more."

</comment></comment><comment><USER11> same as ? [http://web2asia.blognhanh.com/2012/07/a-must-read-before- mak...](http://web2asia.blognhanh.com/2012/07/a-must-read-before-making-any- venture_24.html)

<comment><AUTHOR> yes if you scroll down the article you mentioned it links back to the original post at e27</comment></comment>


The reason Angular JS will succeed - <AUTHOR> http://jnardiello.eu/the-reason-angular-will-succeed.html

<comment><USER2> Angular isn't so much hard, but it's different. It's a totally different way of thinking. It imposes a certain way of working on you. A _good_ way of working, but still, I can see why it rubs some people the wrong way.

I also think that for a long time, javascript has been the domain of web designers, rather than programmers. Originally (back in the '90s), js was used for all sorts of cute but useless stuff. It matured, but even with jQuery, it's still primarily aimed at a simpler "scripting" style of programming. It lacks structure and organization. It's all ad-hoc stuff. Angular gives structure and organization. It moves javascript from scripting to more organized programming.

If you're used to the old ad-hoc scripting way of working, having to become a structured programmer is a big step. But to people coming from back-end server programming, Angular is a God-send.

<comment><AUTHOR> And i agree with you. That's i mentioned that the JS community is reaching maturity. In my opinion, especially thanks to node, js is _finally_ becoming domain of programmers and Angular is definitely the most complete and clear expression of this. It's also a great opportunity for javascript designers to become more structured programmers.

</comment></comment><comment><USER3> I wouldn't say, "Angular is hard". I'd say that some pieces of is are "non- standard". And because of that, some of that "non-standardness" has been allowed to fester to the point of flat out mental hiccups.

I maintain that Angular kisses on the first date. Your first experience is going to make you feel those wonderful butterflies that you felt the very first time you ever wrote some HTML and hit refresh on a page.

Where it quickly falls apart is in many tried and true practices in web dev. It's just not straight up html/css/js. It's a NEW thing. The good thing is, the Angular devs have an eye on what's coming up, and I believe (and/or hope) that we're going to see a huge "merge bubble" close and those of us that use Angular will be up to speed.

<comment><AUTHOR> Actually, it's not exactly a new thing. DI is around since decades. BUT for the first time Javascript implemented a design pattern in a structured way and made it public.

> _The good thing is, the Angular devs have an eye on what 's coming up_

Yes, you got the point. I totally agree with you on this.

</comment></comment><comment><USER4> AngularJS may be complicated to learn, but I found it _so_ much easier than the alternatives (Ember and Backbone).

To be fair, though, Backbone isn't trying to do as much as Angular. And Ember is just crazy. I Know people swear by it, but I am not smart enough to use it.</comment>


Myths about Hash Tables - <AUTHOR> http://hughewilliams.com/2012/10/01/five-myths-about-hash-tables/ <comment><USER2> While the article is a bit polemic, I really wish more people knew how hash tables work under the hood.

When I was looking for a job, I flunked out of one interview where I got into an argument with an interviewer about the runtime properties of hash tables - more specifically: the interviewer was adamant their access time was always O(1), wanted me to admit my "mistake" and move on, but I just couldn't ;) It was one of those rare cases where they give you feedback on why you're not being hired, too. The lady on the phone said my "technical knowledge" was not up to par with what they needed for the position. Yeah, I'm still salty about that.

<comment><USER3> Sounds to me more like the interviewer/company flunked you're test rather than you flunking - you might have dodged a bullet there.

<comment><USER2> I wouldn't have worked for the interviewer, it's often just a gatekeeper you need to overcome. Also, when you don't know how to make rent next month and the company seems pretty cool (apart from that person), it's hard to see at the time how you dodged any bullets...

<comment><USER3> If someone reacts badly when you know more than they do then that's not a great bit of behaviour, if a company chooses such a person as an _interviewer_ then that's a bit of a red flag to me - an interview should be as much about trying to present a positive image of the company as much as testing the interviewer.

Sorry to hear about the rent situation - I take that worked out OK eventually?

<comment><USER2> _> if a company chooses such a person as an interviewer then that's a bit of a red flag to me_

I think the basic corporate rules of signalling competence apply here. Assuming that person was both technologically and socially incompetent (which might be too harsh of a judgement), some people still have a way of getting promoted into valuable positions by _appearing_ to do a great job.

 _> Sorry to hear about the rent situation - I take that worked out OK eventually?_

Thankfully that was some years back, I'm doing okay today :)

<comment><USER3> "which might be too harsh of a judgement"

Not sure it is - the usual advice is "if in doubt then don't hire" so why not apply that to employers as well as employees?

Of course, if there is an element of desperation involved then I can understand it. But I have walked away from interview processes (or turned down offers) when _I_ had some worries and never really regretted it.

Harshness both ways would seem to be fair.

</comment></comment></comment></comment></comment></comment><comment><USER4> > Engineers irrationally avoid hash tables because of the worst-case O(n) > search time.

Not sure about other people here but I haven't heard any developers I work with avoid hash tables for reasons like this. I find most coders treat hash tables as black boxes that offer instant lookups.

Also, I found from giving interviews most developers can't explain at a basic level how a hash table works as well as other fundamental data structures like linked lists.

<comment><USER5> Engineers avoiding hash tables, yes, that's one myth. Still waiting for the other four promised in the headline. In the age of javascript everywhere I'd say that hash tables have pretty much won.

I was curious about which corner of software technology the author was coming from where hash tables are routinely questioned (embedded C maybe?), but even the followup post does not quite explain it. ( [https://hughewilliams.com/2013/06/03/reflecting-on-my- hash-t...](https://hughewilliams.com/2013/06/03/reflecting-on-my-hash-table- post/) , also references a previous hn discussion)

<comment><USER6> > In the age of javascript everywhere I'd say that hash tables have pretty > much won.

All of Lua, PHP, Ruby and Python are hash tables flying around, and pretty much everything web is going to involve tons of hashtables whatever your language as HTTP headers, QS parameters and form-encoded data have arbitrary named fields.

<comment><USER5> Makes me wonder if today's Lisps are actually "Hasps" in disguise.

(unwritten rule of hn: don't post terrible puns like this before the majority of voting is over)

</comment></comment></comment></comment><comment><USER7> A whole post about hash tables and he doesn't mention the real reason trees are better than hash tables: lower variance!

> Hash tables become full, and bad things happen

The bad thing is not a crazy long probe or even rehashing to enlarge the table—it's that some random individual insert is stuck eating the entire cost of rebuilding the table. For many applications, I'm happy with a slightly higher cost per operation in return for predictable performance.

> Hash functions are slow

Great, another unmentioned footgun - hash functions are hard. For example, the hash function he provides doesn't use a prime number of buckets. Oops, non- uniform input data in combination with unlucky bucket counts can generate high numbers of collisions.

Writing a comparison function to put your data in a tree is pretty stupidproof!

<comment><USER8> There are resizing algorithms out there which specifically avoid the single- insertion-spike that you're worried about.

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

If you're working with small data sizes, the difference between O(1) and O(lgN) isn't that big a deal, so you can use whatever you want. But once you start working with larger datasets containing millions of elements, and the only thing you care about is insertions and exact-match-lookups, it's hard to justify using a tree over a hash map.

</comment></comment><comment><USER9> I'm all for learning for hash tables work, but is avoiding them really widespread? Especially in dynamic languages I feel like dynamic arrays and hash tables are like 90% of the data structures used.

<comment><USER10> No, dynamic languages use Maps and Dictionaries and Objects and Containers and...

Sure, they're all hash tables under the hood, but if you go up to an average JavaScript programmer and ask them the difference between a Hash Table and an Object, I'm sure you'd get a surprising (to you) answer.

<comment><USER9> I mean, not even under the hood. Those are just different names for the same thing.

<comment><USER6> Due to the way JS objects are used, modern runtime will generally try to use structures for them (e.g. "hidden classes" in V8/Chrome) rather than "general- purpose" hashmaps. Likewise JS arrays incidentally. They will often need to deoptimise back to general-purpose hashmaps, but they'll try pretty hard not to.

<comment><USER9> Oh. That's neat.

<comment><USER6> Yep. V8's JIT will also try to specialise functions based on that so if you always pass the same type (where type = hidden class), a limited number of types or "anything goes". Or at least it did a few years back.

</comment></comment></comment></comment></comment></comment><comment> saw-lau Interesting that the author offers the chained hash table as an alternative implementation - that was always how I was taught they worked back in school. (1986?)

<comment><USER11> Same here, graduated in the 2000s. The way hash tables are described in the opening section sounds really naive, and I would hope that real implementations aren't using that method.

<comment><USER9> AFAIK most real-world dictionary classes use linear probing.

<comment><USER12> std::unordered_map and friends use chaining (and they suffer from it).

</comment></comment></comment></comment><comment><USER13> The worst case was once used to attack Java based servers, using colliding post parameters I think. Since then the Java HashMap sorts colliding entries if the entries implement Comparable.

<comment><USER14> Also _String.hashCode_ is broken, it generates too many collisions. It can not be fixed for historic reasons.

<comment><USER3> Wasn't an early version _really_ broken - where it only looked at the first N characters of a string when hashing it? Where N was actually pretty low.

<comment><USER14> Perhaps, but it made sense with 16MB RAM and 486 CPU. Current implementation uses 31 multiplier which is useless over 1M entries. This problem is also in Arrays.hash*() and many other places.

</comment></comment></comment></comment><comment><USER15> Hash arrays are great; I use them all the time in AWK. All searches using hash indexed arrays in AWK are O(1).

I believe that the biggest problem around using hashes as indices entails people wrapping their head around the concept that the array index is a string (for all intents and purposes), rather than a number of a field in an array (or an address of a region in memory, which it eventually is anyway, once it runs). For example, I used entire lines of text as the hash for an array. My colleague who I was showing this technique to was completely dumbfounded as to how that worked. Why was I only storing the value "1" into Array["ORA-1234: blablabla"]?

      if(Array[$0] != 1)
      {
        #
        # This record is different, so print the entire record.
        #
        print;
      }

"How is that used to _filter out_ lines which are identical the ones we have in the canonical file?" He seemed completely flabbergasted. He just couldn't wrap his head around this concept, and ended up re-implementing the entire thing using several lines of grep -v, sed, and if [ ...] then. I think there were even several temporary files in the game, whereas the hash array technique in AWK loaded both the canonical file and the input from stdin _into memory_ , rather than using intermediate files.

</comment><comment><USER16> One interesting alternative to hash tables that appears to get too little love is the Judy tree: [https://en.wikipedia.org/wiki/Judy_array](https://en.wikipedia.org/wiki/Judy_array)

They are not _quite_ as versatile, I think, but for simple cases where your keys are strings or ints, they work just as well and are quite fast, too. The API is very simple, too.

I don't do much programming in C these days (pretty much none at all), but I used Judy in one toy project and have fond memories of it.

<comment><USER17> Gotta love HN. I'm always learning new stuff. Thanks for posting this. The "Judy Shop Manual" ([http://judy.sourceforge.net/application/shop_interm.pdf](http://judy.sourceforge.net/application/shop_interm.pdf)) looks very complicated so I don't know if I should take the time to fully understand how they work, especially if they are not as versatile as hash tables.

<comment><USER16> Judy's author appears to have poured bathtubs full of cleverness into his brainchild to make it _fast_ at the cost of implementation complexity.

As long as you don't look behind the curtain, it's genius - an API so simple a child could use it, and it's so fast... But try to understand how it works, and your brain melts. Well, mine, at least.

Then again, I suspect the same can be said of what used to be called the STL, or Boost. In a library that is meant to be used by lots of other projects, the trade-off is legitimate.

</comment></comment></comment><comment><USER18> If you are interested in hash tables, check out my improved version of Google's already excellent sparsehash at [https://github.com/greg7mdp/sparsepp](https://github.com/greg7mdp/sparsepp). Excellent performance, very low memory usage, grows as needed of course.

</comment><comment><USER19> This seems like Data Structures 101

</comment><comment><USER20> potential offtopic question here: i always wondered about multi-layered hashtables, i.e. instead of a linked list for resolving collisions use a second hashtable with a different hash function (and then maybe a linked list on the 3rd level).

i guess this might bring some potential improvements in case of a hashtable with too many collisions but a prohibitively expensive overhead in all other cases. i.e. it might alleviate a hashtable that was already broken.

<comment><USER21> This is a bad idea, since double hashing with open addressing has the same benefits but is much faster. The indices are already in the cache and there's need for an additional hash table setup overhead. Usually you go for a variant of robin-hood, cuckoo or even quadratic hashing, with the same benefits but vastly better performance. (all open addressing schemes). And if the collision rate ("load factor"/"fill rate") is too high for your use case, you go for lower load factors, down from 90% to 50%. It's still much faster than using a complete separate 2nd data structure.

And if you need something better than a hash table, (pointers, fixed size keys, ordered, ...) you usually go for patricia/crit-bit trees.

One popular database tried a RB-tree as second data structure once (forgot the name and link. starts with R but not redis). Also see [http://programmers.stackexchange.com/a/281785/27031](http://programmers.stackexchange.com/a/281785/27031), DMDScript used that also.

</comment></comment><comment><USER22> He mentioned his own home grown hash with the bit shifts. How does it compare to common ones that use an AES instruction if the crypto chip is available?

<comment><USER21> Poor. See [https://github.com/rurban/smhasher](https://github.com/rurban/smhasher)

</comment></comment><comment><USER20> i think the article omits one interesting point - cache coherence. afaik this is the one reason otherwise inefficient data structures might result in better real world performance for small data sets.

<comment><USER23> Well, _asymptotic_ analysis is not very useful for small data sets.</comment></comment>


Debian Announces Position on Software Patents - <AUTHOR> http://www.debian.org/News/2012/20120219

<comment><USER2> Considering the proliferation of software patents, with very general claims like the XOR patent, all non-trivial software "infringes" anyway, no matter how many fees are paid.

Politically it matters in that it means software patent laws are broken and punish the creators of software.

But I don't think Debian should regard some software patents more highly than others and refuse to distribute some software because of those. That gives third parties leverage to make the distribution much less useful (for example by selectively crippling multimedia on desktops), without breaking the illusion that the law is really applied.

If these parties tried to mount actual legal challenges, they would have to spend money, raise awareness of the law, publicly behave in an anti- competitive manner, and risk losing some of their patents for, at most, an interdiction of some packages in some jurisdiction. I don't see why Debian should give this away.

<comment><USER3> This comment - and several others - seem to only be seeing half the picture in this new policy. Yes, it says they won't distribute software the know to infringe.

But the other aspects of the policy set up working practices and operating procedures to minimize visible, organizational knowledge of patents. It seems to me that they're actively trying to avoid knowing about patents so that they don't have to invoke the no-distribute clause and, if they do get sued, can hopefully keep away willful infringement claims. I think that's in general been their goal, but the new policy provides a clear and consistent mechanism for handling the issue.

<comment><USER4> Wouldn't a publicly stated policy of willful ignorance negate any defense of willful infringement?

If I make a point of not looking at speed limits signs, and pt a bumper sticker on my car saying "I don't read speed limits", would it be reasonable to expect the nice police officer to not write me a ticket?

<comment><USER5> I have worked for and with a lot of major technology corporations, and the official policy for employees has always been "willful ignorance": do not read patents, do not discuss patents, except with an attorney. So a lot of highly- paid patent attorneys must feel this is a valid approach.

That is one reason it's obvious the patent system is off the rails -- since part of the idea of patents is to encourage people to publish their inventions, presumably to be read by others.

</comment></comment></comment></comment><comment><USER6> Would it be possible to design an open source license that disallows the use of the software by corporations holding software patents..?

Or something that would make holding software patents crippling?

<comment><USER7> The current GPL (GPLv3) does implement this goal, but in a different way. It has a very clever paragraph that basically says: If you distribute the software you give basically every user a free licence of your patent.

More information: [http://www.gnu.org/licenses/quick-guide- gplv3.html#stronger-...](http://www.gnu.org/licenses/quick-guide- gplv3.html#stronger-protection-against-patent-threats)

<comment><USER8> It's a shame that the GPLv3 isn't more commonly used. The GPLv2 has some language & sections that would mean you cannot sue people with patent claims, however, due to how patents and copyright differ, all these things kick in only if you write the code and have the patent, i.e. if Microsoft were to release, under GPLv3, code that they patented, it would be OK. If I write code that implements the H264/mp4 codec, then we can all still be sued for patent infringment.

<comment><USER9> This is exactly the reason why many people don't use the GPLv3. If Apple distributed a slightly modified GCC, they would be also given away every patent they have that might be used anywhere in GCC. That is unacceptable, as doing a full search over the whole source code for patent usage isn't reasonable.

<comment><USER8> I upvoted you, but I disagree with your conclusion. Some people (e.g. myself) think that it would be great if Apple had to go open source.

<comment><USER9> Oh, I would love it if Apple went open source.

However, if I was running Apple, I would consider applying applying a fairly substantial amount of money into avoiding GPL3. This appears to be exactly what Apple are doing (I don't think their support of clang after gcc went GPL3 is a coincidence, maybe I'm wrong).

<comment><USER10> See here: <http://news.ycombinator.com/item?id=3559990> "Apple's great GPL purge"

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> This is the first article of the policy:

> Debian will not knowingly distribute software encumbered by patents; Debian > contributors should not package or distribute software they know to infringe > a patent.

That seems a bit too vague for me. Would free software like Mono, VLC or ffmpeg fall under this category? Many people would say that they are patent encumbered, (and of course, many would say the opposite).

<comment><USER12> Have you ever used Debian? It already doesn't distribute many codecs for precisely this reason.

<comment><USER11> Currently, Debian does distribute Mono, VLC and ffmpeg, I'm not aware of the codecs you speak of.

(Oh, and I do use Debian, five days a week, but I don't see how that's relevant to my question.)

<comment><USER3> They didn't - last I knew - distribute LAME or other MP3 encoders. I think the patent enforcement situation has changed since that call was originally made, but earlier (late 90's, early 2000's), the patent owners were enforcing patents for encoders but not decoders.

</comment></comment></comment></comment><comment><USER13> There's only one correct position: Software patents shouldn't exist.

</comment><comment><USER14> This is a good step. One thing people don't remember is the mid-2000s Linux Foundation Patent Commons initiative. At one time Oracle was a member (<http://lwn.net/Articles/227902/>).

</comment><comment><USER15> Time to move Mono to the non-free repo where it belongs.

<comment><USER16> Mono is Free Software [1]. You might be confusing licensing with potential patent encumbrance, perhaps on purpose since one of your activities here seems to involve spreading disinformation about that project [2]. Which perhaps is not surprising considering you also seem to be one of the regulars at techrights. [3]

[1] <http://www.mono-project.com/FAQ:_Licensing>

[2] <http://news.ycombinator.com/item?id=3347529>

[3] <http://goo.gl/8Xb4R>

<comment><USER15> I interpret Debian's statement as "we will reject all forms of Patent Aggression", and Microsoft, through the Mono project, has been aggressive about patents.

<comment><USER16> > Microsoft, through the Mono project, has been aggressive about patents.

Can you please point out something that backs this statement? Not to dismiss the fact that Microsoft uses patents offensively, because they do, but specifically related to, or in the context of, the Mono project.

</comment></comment></comment></comment><comment><USER17> This is about as surprising as discovering that Ursidae defecate in the forest.

<comment><USER18> True, but the linked FAQ is very informative for anyone involved in open source software development, or software development in general:

<http://www.debian.org/reports/patent-faq></comment></comment>


How Microsoft emerged from the darkness to embrace the cloud - <AUTHOR> http://www.seattletimes.com/business/technology/how-microsoft-emerged-from-darkness-to-embrace-the-cloud/ <comment><USER2> Azure is actually a pretty good product.

Recently I was working on a side project and decided to use Azure for a change and I loved it's offerings.

That said, a few criticisms:

it's pretty buggy and it shows.

Furthermore, it's documentation at times is contradictory. (and it's sdks are all over the place - especially for nodeJS)

And all in all, it does not look like a mature product (many a times, I was working on fixing / catching issues with Azure rather than my project itself - something I'd not expect to have to do)

All that said, it's still a great product and in time, I hope they fix their stuff and work towards stability.

<comment><USER3> > it's pretty buggy and it shows.

and the dashboard is sloooooow.

<comment><USER2> There's a funny story about the dashboard when I worked at MS.

My team complained about the dashboard having issues and we were told that a new one was in works and to hold on tight. A year later, we see the new dashboard - everything go 2x complicated, 3x buggy and 2x slower.

¯\\_(ツ)_/¯

</comment></comment></comment><comment><USER4> I find it pretty amazing how a huge, publicly traded company that was in the beginnings of a cultural death spiral (circa 2010) managed to pull itself together. I can't think of many examples of leadership abandoning the philosophy that led them to dominate the market (embrace, extend, and extinguish) in favor of something else (innovation, community engagement, participating in open-source movements).

The anthropology behind it could be valuable to many other companies, I think.

<comment><USER5> Indeed, they somehow managed to resolve the Innovator's Dilemma. As such, they really are worth studying. No doubt there are MBA programs with Microsoft case studies.

<comment><USER6> ...and I get the feeling that they have just turned the corner and are now pickup up speed in the innovate-release-feedback loop.

</comment></comment></comment><comment><USER7> I think Microsoft is marketing Azure hard and companies are buying.

I landed a gig related to Azure training and it's keeping me almost full-time busy right now. Considering this is the holidays there is a good chance we will be even busier next year.

</comment><comment><USER8> Could somebody give some insight about switching from AWS to Azure? I have been contemplating it over the past couple of months but have not yet pulled the trigger

<comment><USER9> Why would you want to switch? Just curious.

</comment></comment><comment><USER10> I used Azure for one of my side projects. It was coded using golang and run on Ubuntu. It was pretty stable.</comment>


Sensible "Cyber War" Preparation, Or Just More Government Snooping? - <AUTHOR> http://reason.com/blog/2010/03/05/sensible-cyber-war-preparation

<comment><USER2> Reason Magazine does this a lot. The author of this article clearly doesn't believe the government has any business monitoring private Internet traffic. That's admirable, and I agree. But here he crosses the line from reporting based in a perspective to _breathless evangelism_.

The government's current plan to beef up cybersecurity does drastically increase monitoring. _On government computers_. Government networks are currently a shambles; they can't even fend off prepackaged malware, let alone a concerted attack.

I think the current plans to improve this situation are misguided. For instance, they call for signature-based deep packet inspection monitoring, but say virtually nothing about application security or standardization. It's security designed first and foremost as a carvout for contractors like Lockheed.

But that doesn't mean that it's an Obama administration plot to read all our email. It's unlikely Obama had any input into this at all, beyond "I want to see something tangible and significant done to address cybersecurity".

Of course, Reason isn't going to give you any of this context, because they're acting as an advocacy operation, and not journalists. They could call around and get details, but they aren't doing that.

</comment><comment><USER3> I just want everyone to realize two things about computer security:

1) Without very much difficulty, anybody can encrypt a message to be sent to another person. No government can break this encryption, and no amount of surveillance will help. Either the sending or receiving party must be compromised to do effective spying, all the stuff in the middle does not count.

2) Security holes are agnostic to attackers. If your system is vulnerable to attack, then it is vulnerable to attack. SQL injection vulnerabilities do not care if your native tongue is Chinese. "Cyber war" is no different to prepare for whether you're battling a terrorist, a foreign government, or a 12 year old with a botnet.

<comment><USER2> I think it's significantly more difficult to safely encrypt a message that the NSA can't read than people think. There are bugs in widely-used crypto implementations that won't come to light for 10-20 years.

<comment><USER4> I'm willing to wager it's not just the NSA either. The uk has GCHQ and those guys are stupidly smart - I'm sire other countries have similar.</comment></comment></comment>


Sachin Tendulkar leaves India in tears - <AUTHOR> http://timesofindia.indiatimes.com/sports/cricket/series-tournament/sachin-tendulkar-hangs-his-boots/sachins-200th-test/Sachin-Tendulkar-leaves-India-in-tears/articleshow/25905780.cms <comment><USER2> Totally irrelevant article on HN (I might get downvoted for this). But there are multiple lessons from the way Mr. Tendulkar has lived his life.

Even at such extremely young age of 40 he has already achieve extreme level of excellence in a game that is extremely taxing on physical as well as mental ability. (Typical test match is 5 days long 6-8 hours a day and a person like Sachin generally spends at least 4 days on the ground. Sachin has played 200 test matches => 800 days in the hot sun. )

<comment><USER3> I upvoted. More uplifting to read about him than many of the people so frequently touted as heroes here (Jobs included).

</comment></comment><comment><USER4> I particularly liked the way Harsha Bhogle compared how a nation clings to heroic figures during dark times. Don Bradman served as a hope to the cricketing fraternity of the time after the second World War and similarly Sachin was the fulcrum for the Indian people to look up to and induce a fighting spirit, especially after the Indian economic debacle of 1991-92.

Quoting it again, "When Sachin made a 100, India slept well."

</comment><comment><USER5> A very inspirational guy. I know he was a cricketer and I don't really like cricket all too much, but we all could learn a thing or two from Sachin Tendulkar. A great sportsman and inspiration.

</comment><comment><USER6> In that speech were some great lessons on how to live. Brilliant guy.

</comment><comment><USER7> Sachin Tendulkar, you have to come back for your fans... But, not like a player come as a coach... Because Kohli, Jadeja and other team members need to learn some respect and sportsmanship.</comment>


The 50-Year Legacy of Sixto Rodriguez's "Cold Fact" Is Rooted in Detroit - <AUTHOR> https://wdet.org/posts/2020/03/26/89375-the-50-year-legacy-of-sixto-rodriguezs-cold-fact-is-rooted-in-detroit/ <comment><AUTHOR> For anyone who hasn't seen the documentary about Rodriguez called "Searching for Sugar Man" - it is one of the best documentaries I have ever seen and tells a story unlike any I've heard.

I'm sad I didn't discover him until today.</comment>


Dutch teen develops pedal-powered plane - <AUTHOR> http://www.ecofriend.org/entry/eco-tech-dutch-teen-develops-pedal-powered-plane-to-hit-the-skies/

<comment><USER2> the last picture on this link really tells the story of all those years of hard work. really captures what accomplishing your goals feels like. good for him.

</comment><comment><USER3> His name is mispelled as 'Jesse Van Kuijk', it's actually 'Jesse van Kuijk'.

</comment><comment><USER4> Long long history here: <http://en.wikipedia.org/wiki/Kremer_prizes>

<http://en.wikipedia.org/wiki/Pedaliante>

<http://en.wikipedia.org/wiki/Gossamer_Condor>

<http://en.wikipedia.org/wiki/MIT_Daedalus></comment>


Aren't you tired of using "cd ../" - <AUTHOR>

As a sysadmin how many times have you typed this sequence? I bet that in my past 20 years... billions. This might be a silly simple thing but never read it before.
Why not:
alias .='cd ../'
and voila from 5 to 1. That is what I call a quick win :-) <comment><USER2> Why the slash? And a lot of Linux distributions already have '..' as the same alias -- as . is already a shortcut for 'source'.

If you really want to optimize this, there's always your .inputrc.

"\e[24~": "cd ..\n"

For lots of terminals, this maps your F12 key to go up a level in the directory hierarchy, no subsequent press of the enter key required.

</comment><comment><USER3> Why not? Because it changes the meaning of '.':

      ~$ echo date > d.sh
      ~$ d.sh
      -bash: d.sh: command not found
      ~$ . d.sh
      06:37:21 EDT 2013
      ~$ alias .='cd ../'
      ~$ . d.sh
      /home$ Is not works!

But another alias with no previous meaning would do well - i use 'up' :)

<comment><USER4> I use ".." to go up one, and ".. 3" to go up 3. Source: [http://alias.sh/cd- number-dirs](http://alias.sh/cd-number-dirs)

<comment><USER5> For "longer" jump through the filesystem, 'autojump' does a great job [https://github.com/joelthelion/autojump](https://github.com/joelthelion/autojump)

<comment><AUTHOR> Great, thank for the advices. I'll take a look at them all!

Cheers

Juan</comment></comment></comment></comment>


(Not so) Scary terms in offer letters. - <AUTHOR> http://venturehacks.com/articles/not-so-scary-terms-in-offer-letters

<comment><USER2> Fine when I checked.

</comment><comment><USER3> 404? flagged for broken!

<comment><USER4> Fixed. =)</comment></comment>


Inspiring Papers - <AUTHOR> http://lambda-the-ultimate.org/node/3038

<comment><USER2> The Conservative Logic paper is intriguing [http://calculemus.org/logsoc03/materialy/ConservativeLogic.p...](http://calculemus.org/logsoc03/materialy/ConservativeLogic.pdf)

It's about introducing conservation prinples from physics into the logic that goes into building electronic circuits. The idea sounds bad to me, but it's such a long read... Does anyone have a comment on it?

<comment><USER3> The language 'Clean' uses some related principle, called linear logic. You can use this as an alternative to Monads to simulate state and in-place updates.

<http://clean.cs.ru.nl/></comment></comment>


Harvard scientists say these 5 things can prolong your life by a decade - <AUTHOR> https://www.barrons.com/articles/harvard-scientists-say-these-5-things-can-prolong-your-life-by-a-decade-1542556827 <comment><USER2> This reminds me of the "blue zones" [https://en.wikipedia.org/wiki/Blue_Zone](https://en.wikipedia.org/wiki/Blue_Zone)</comment>


What Would I Meme? - <AUTHOR> http://whatwouldimeme.com/

<comment><AUTHOR> Uses a markov chain to generate statuses. Pulls popular facebook photos and generates interesting memes. Let me know what you (dis)like about it!</comment>


To cut down on bugs, Apple is changing how it develops its software - <AUTHOR> https://arstechnica.com/gadgets/2019/11/to-cut-down-on-bugs-apple-is-changing-how-it-develops-its-software/ <comment><USER2> > The report also says that Apple "privately considered" iOS 13.1 to be "the > actual public release" and that the company expected only die-hard fans > would update to iOS 13 within the short week between its initial release and > the iOS 13.1 update.

 _That didn 't happen. And if it did, it wasn't that bad. And if it was, that's not a big deal. And if it is, that's not my fault. And if it was, I didn't mean it. And if I did... you deserved it._</comment>


Ask HN: Which Tech Companies Are Hiring in Europe? - <AUTHOR>

I am Java Backend Engineer with 4+ years of extensive, hand on development experience. I've Designed and Developed at-least 4 systems from scratch including consumer REST APIs. I am currently located in India and looking for relocation. I have prior startup experience. Preferred locations : Amsterdam, Berlin,Ireland. <comment><USER2> Infosys is looking for Technology Lead (JEE, Finance) in Munich.

[https://de.linkedin.com/jobs2/view/72196760](https://de.linkedin.com/jobs2/view/72196760)

Munich is a good place to live and work.

<comment><AUTHOR> Thanks for your reply, I am looking for a Product based tech company.</comment></comment>


Ask HN: Best books about doing business in India or Indian market? - <AUTHOR> <comment><USER2> In my opinion, There aren't a lot of good books which appeal to the Indian market. That being said the Indian IT business environment is heavily influenced by the Vally Companies operate, therefore, you can use them as a starting point and read them.

IIM bangalores' Edx courses are a good guide as well. It would help understand out IP related stuff as it is different from that of the US and also accounting which is a bit different from what is practised in the US.

Since you asked for books, here are a few I think would be good ones that would get you going:

1\. Fortune at the bottom of the pyramid 2\. Made in India by Kishor Biyani 3\. High-Performance Entrepreneur by Subroto Bagchi

I have no idea what goes on in Pakistan as far as software business is concerned.

</comment><comment><USER3> Also books about business in Pakistan please</comment>


Ask HN: I want to build a robot that cleans my bathroom.  - <AUTHOR> I recently bought a robot vacuum and I've never had cleaner floors. Now all I can think about is building a robot that cleans my bathrooms. So I'm going to build one.
I'm a programmer but I don't have a background in robotics. My question is on a scale of 1-10 how impossible is this? Please know I don't really care if it's impossible. The worst case scenario I end up with a pile of AI and robotics knowledge, and who doesn't want that?
Here is the scale:
1 -- I just need to buy a kit and throw it together with some Python
10 -- I need a PhD in robotics so I can secure a research grant to develop robotic vision hardware and software.
I figure I will place it in a bathroom and it will:
-- Identify loose objects and move them out of the bathroom
-- Identify all of the surfaces that can be cleaned, e.g. clean the bathtub, not the walls.
-- Manipulate the toilet lids to clean under the lids, etc.
-- Be tall enough or have a long enough arm to clean the entire shower.
-- It needs to be mobile enough to move around the bathroom, into the tub, etc.
-- Put everything back in the room where it was when it's done. <comment><USER2> [edit] I just noticed "seven" said basically the same thing I did.

Like the other poster below, I've written code for electromechanical automation long enough to have some idea of what you're in for.

First consider cost effectiveness: you can hire someone for $30/hour to clean your house. That covers the bathroom and probably another room or two. Nothing you're likely to build will beat that for a few years.

Second: you're looking at it from the "wrong" perspective. Instead of building a robot to clean the bathroom in the way you specified, it's probably easier to build a bathroom that's designed to be cleaned automatically. Imagine towel racks that rotate into the walls to keep them safe, vacuum-augmented drains in the floor, water proof floors and walls and a rotating wash head that can descend from the ceiling dispensing high pressure hot water and detergent. Combine that with high volume air vents, and you can clean the room in less than a minute.

Now, if we venture back into the realm of feasibility, why not a version of the Roomba that only does the floor, but has a scrubber, wet vacuum and washes with hot water and soap. Floor's usually the dirtiest area anyway and you can build that kind of cleaner for a few $100.

A maid would still do the job better and cheaper, though.

<comment><AUTHOR> I considered a maid but decided it wasn't for me. I was having a hard time finding someone I trusted to enter my house when I'm not there. Then if I did find someone, I figure the turnover for maids is pretty high so I'd be searching again a year later. A maid service is out. They are underpaid and being taken advantage of in too many cases for me to even consider it.

There is a Roomba that sanitizes floors exactly as you described it. It's called a Scooba. I'm getting one.

The bathroom you describe is pretty sweet. It's like the bat cave of bathrooms. I don't think my wife would go for it, plus we rent so that would likely tick off the landlord...but I have no idea why public bathrooms don't do this.

<comment><USER3> >but I have no idea why public bathrooms don't do this.

IIRC the toilet cubicles in London that descend into the ground have this sort of cleaning system, basically the toilet and wash hand basin are mounted in a "McWash" and the whole things gets jetted down and dried after use (I don't think it would be after every use, just perhaps once a day).

Wet rooms would be perfect for this sort of concept.

<comment><USER4> Public toilets in San Francisco go through a self-cleaning cycle but they don't always work as well in practice as in theory: <http://www.youtube.com/watch?v=kBF-62UXn8Y>

</comment></comment></comment></comment><comment><USER5> I don't have a real robotics background, but I do work in automation, so I have a pretty decent grasp on machines that do things. I'd put this at a 9 on the impossibility scale. I base this mostly on the fact that robotics and automated machinery is usually very specific to a certain task. However, if you change your thinking from "a robot that cleans for me" to "machines that clean different surfaces" then the problem becomes much easier, probably around a 5 on your scale. Think a Roomba for the floor, an automatic shower cleaner for the shower, etc. It's a lot easier to make machines that do one very specific, repeatable task rather than a general purpose robot (which is probably why they aren't very common). Microcontrollers are dirt cheap and easily programmable, so I see your best route to getting a cleaner bathroom to break up the specific tasks to dedicated machines. That also has the benefit of breaking the development into smaller and more easily managed chunks.

<comment><AUTHOR> Interesting. So I would have:

Toilet cleaner, tub cleaner, shower cleaner, floor cleaner, counter cleaner, mirror cleaner, etc...

The big drawback to this is that's a lot of robot maintenance. The vacuum is pretty easy, I just dump the dirt into a garbage can when I get home. Add five more robots for each bathroom... I will have to think about this.

<comment><USER6> I always pictured my solution to this problem like this:

* Everything that is not allowed to get wet or is loose, is stored in a safe place.

* Some 'high-pressure cleaner things' at strategic locations.

* A big fan and a hole in the ground.

<comment><USER5> This would probably be my solution as well. Although not nearly as sexy (or fun to create) of a solution as a robot, it would sanitize quite well.

</comment></comment></comment></comment><comment><USER7> Need a visualization system to interpret the current status of the 3D space, id tasks, prioritize and execute.

The configuration and the space consumed by the Robot will be the most significant challenge. Need a customized trussing system to enable the robot to move in the 3D space of a bathroom. Most efficient would be a track-based, ceiling housed system--depending on the size of the bathroom--think claw games you see in arcades. This would be a semi-perm install however.

Need a tooling system on a central locomotion/power actuating system. If using one central robot system, the tooling system will allow you to change "heads" between the specialized tasks of lifting lids vs spraying disinfectant vs wiping around corners.

<comment><AUTHOR> What if it's not mounted in the ceiling? What about legs/tracks that move the arm to where it needs to go. I was thinking a subsystem that identifies object, e.g. "there's the toilet" or "there's the bathtub", then moves the cleaning system closer to the object to be cleaned.

I have a feeling this puts me closer to a 9 on my scale, but then again I feel like there are robots that do this subtask already? Identify target -> move to target. Plus I could cheat and put some sort of clue (RFID/infrared/big shiny sticker), on each object. Then it's just a matter of moving to the right spot.

</comment></comment><comment><USER8> Maybe think about building separate robots for each task (tub, etc...) that can be permanently attached to wall or the ceiling near its work spot. Tasks could be accomplished using special arms for each sub-task. A lifting arm, a chemical spraying arm, etc...

It would take the "where am I" "where is the target" out of the robots equation. You could simply hardcode the desired movements into the robot. Then if you wanted to sell them you could build a learning routine into the code so the public could easily use it after bolting it to the walls in their houses.

<comment><AUTHOR> I gather this is how industrial robots work? I get a robot with a clean slate and then I guide it through the first few attempts at a task, then it does the same thing over and over again by itself.

</comment></comment><comment><USER9> The manipulation is going to be near impossible at your price point. Remember for each articulation you'll need a motor unless you build a flywheel assembly. That adds to the price really quick.

The programming, if you're just doing it for a single defined bathroom isn't that hard. It's when you get into 'all' bathrooms that the complexity increases exponentially.

<comment><AUTHOR> I would pay $5,000, perhaps more, to never clean my bathroom again and always have a clean bathroom. My budget is a little bigger for a hobby project. I figure $10,000 - $20,000 for me to prototype something, that's including failures, etc. over 2-3 years. I have no idea how much motors cost, but I'm getting the idea that they are pricey.

Edit: if it's more than this it's not a deal breaker, I just have to rope someone else in, spread things out over more years or something more creative.

<comment><USER9> You might be able to do it at that price for everything but the toilet. Instead of going big, the design I would use (after only thinking about it for 2-3 minutes) would be to mimic an insect. Go really small and have it be able to adhere to the surface and clean as it went (tub, glass, floor, etc). Use a laser/camera to analyze the surface. The key would be to keep the center of gravity as close to the wall as possible.

On the large side, I would go with a pivoting telescopic arm with variable cleaning instruments. Use a counter weight to balance the robot.

<comment><USER10> How about a combination of the two? A telescopic arm positions its payload over the given cleaning target, and releases a small cleaning robot tethered on a string. The "spider" has the tech to minutely go over the surface of the target and clean it, while the arm has only the "macro" capabilities.

</comment></comment></comment></comment><comment><USER11> You can use self cleaning coatings , and then using low pressure flow of water you can clean stuff.

Then you can use a robot walking on the ceiling(mounted/using vacuum) on the ceiling , that can control the angle ,direction and force of water , so you know water flows only down ( assuming your floor is water resistant).

Then you use some scooba like robot to clean the water from floor.

you might even spare the robot , and just use some water pipe the pushes water down , and stick it to places you want the water to flow down to , before you want to clean.

moving stuff from the bathroom: i think that in general "moving stuff" is quite complex. but if the stuff you want to move is is placed on removable plastic surfaces , that have some sorts of easy visual structures to ID by robots(maybe even a small barcode) , this becomes much easier for the robot.

</comment><comment><USER12> i googled and found this cool robot that cleans your bathroom... sorta like a pool cleaner robot.

<http://www.inewidea.com/2009/08/12/8900.html>

<comment><AUTHOR> This looks like it's just a mockup/idea, but intriguing nonetheless. I thought about this approach. I wondered how well a suction system would work and it seems like a failure equals a broken robot.

<comment><USER3> >I wondered how well a suction system would work and it seems like a failure equals a broken robot.

Have the bot mounted on a tether like a pendulum lamp, it pays out an umbilical, Mission Impossible stylee, and when it reaches the floor it moves on suction cups. It basically belays (sp?) itself like an inertia reel climbing harness. Or optionally it could reel in the line if it "feels" itself begninning to fall. Not infallible but should help.

Or give it airbags?

<comment><USER13> Mount the Bot on a dual axis cable system similar to a Skycam.

<http://en.wikipedia.org/wiki/Skycam>

Feed high pressure water and cleaners from overhead.

Allow the bot to move vertically.

Hot air blower for drying.

</comment></comment></comment></comment><comment><USER14> Scrubbing Bubbles has an automatic shower cleaner. <http://www.automaticshowercleaner.com/index.asp>

</comment><comment><USER15> I just have to say, since I don't know if you want the robot for the utility, or to just say you built one, but it'll probably be cheaper to hire a maid :P</comment>


Heron Language 3D Geometry Demo - <AUTHOR> https://cdiggins.github.io/heron-language/ <comment><USER2> This came up just yesterday, but I wonder if Ohm ([https://github.com/harc/ohm](https://github.com/harc/ohm)) would help with the implementation...

<comment><AUTHOR> In case you are interested I actually used my own general purpose parsing library in TypeScript: [https://github.com/cdiggins/myna- parser](https://github.com/cdiggins/myna-parser)

</comment></comment><comment><USER3> I wish the syntax was more discoverable from this page. I see a sphere approximation, but no idea if it's easy to produce from first principles or if it's a primitive

<comment><AUTHOR> Sorry it wasn't discoverable. The mesh, vector, and array library are built up from first principles. Take a look at: [https://github.com/cdiggins/heron- language/tree/master/input](https://github.com/cdiggins/heron- language/tree/master/input)

<comment><USER4> Probably the simplest thing is to link to the github repository "home page" with something like "Source on Github"...or even "source".</comment></comment></comment>


The Porn Business Isn't Anything Like You Think It Is - <AUTHOR> https://www.wired.com/2015/10/the-porn-business-isnt-anything-like-you-think-it-is/ <comment><USER2> They can't be doing that well... the guy is smoking Dominicans and clearly needs a tailor.</comment>