Is organic growth a good way to validate an idea? - <AUTHOR> I've been working on Actuame.com for the last 4 months, and without any kind of promotion, and just by sending out.. 25 e-mails tops I have recieved a really good feedback and as of right now, there's 1011 users registered.
My question is, is this good enough to use as an idea validation reference? If not, what would be a good alternative.
I'm still learning a lot about startups
Thanks a lot! <comment><USER2> Think about it from a different perspective. You are validating your business, not idea. What leap of faith assumptions have you made that you need to validate to determine if you have a viable business?

For most startups these days, and what I can tell from yours, the hardest part is customer acquisition. So, validate things around acquiring customers. E.g. how much does it cost to acquire a single customer, can you demonstrate that you can repeat that process (even at the small scale).

It's hard to summarize these points in a couple paragraphs, I'd suggest reading Eric Ries, and Steve Blank to get an understanding of the principles.

<comment><AUTHOR> As the business model I'm aiming to hasn't been completely revealed just yet, I'm focusing on user adquisition right now, people who will actually apply to job openings.

I'll check out those authors, thanks for your comment!

</comment></comment><comment><USER3> First, it depends on what you are going for, do you want to raise money? That is a different gauge then if you are just trying to make sure you are heading the right direction.

Do you have paying customers and are they engaged using your system? From my brief look at the site it looks like the services are free.

Generally getting some traction even with free customers is a good sign, but getting people to fork over money is what separates many hobbies from businesses. Although there are other revenue models, but either way, getting someone to pay you (e.g. revenue) is a better sign then just signups.

<comment><AUTHOR> First of all, thanks for taking the time to check out the site.

Right now, as I said on another comment I'm focusing on adquiring users who will apply to the job openings.

I want the service to be completely free for those who want to get freelance gigs, and I'm aiming to provide B2B services to agencies and media producers.

I'm currently planning out the following iteration of the project which will start displaying some of this "B2B direction" for the product.

Thing is, I'm currently the only person working on this heh It's quite a challenge though, I love it.

<comment><USER3> Totally understand trying to do it all.

You are doing good, and that is a good user base to start with in 4 months. Expanding the B2B to pay for things while keeping it free for candidates is probably the right approach. I'd say keep doing what you are doing and try to get some of the B2B side moving because without that your growth of candidates will fall and you will start loosing traction. Gotta have the businesses for the candidates to get exposed to.

No matter what remember that whether you fail or succeed, enjoy yourself and don't beat yourself up over mistakes they will happen.

<comment><AUTHOR> I completely share the idea about reaching businesses early to generate traction, and I'm currently going that way with the B2B launch.

I'm looking to generate a few contracts before launching and run closed tests with these people in order to polish the product before making a public release of it.

I genuinely appreciate your comments, thanks!

</comment></comment></comment></comment><comment><USER4> Doing a startup wether a bootstrapped or vc funded is one long series of validation excersises mixed with the eventual app crashes and data loss that spice up your life.

Getting any users validates that they find it interesting enough to sign up, then you must validate more by looking at their interactions, if they are using the app you have done one more validation.

My recommendation is that you get one or more mentors who have done one or more startup and also get into a mastermind group, check out [https://mastermindjam.com](https://mastermindjam.com) for help on that.

<comment><AUTHOR> Since I launched the first iteration user growth has been stable, and I've seen people actually using the site.

I also think it's cool to know at least 20ish people (I know of personally) have found jobs through Actuame!</comment></comment>


How I ended up writing a new real-time kernel (2015) - <AUTHOR> https://dmitryfrank.com/articles/how_i_ended_up_writing_my_own_kernel <comment><USER2> I had a great time following this a couple years ago. It inspired me to write a tiny micro-kernel with pre-emtive multitasking. It was probably a bug-ridden mess, but it was incredibly satisfying having a handful of threads printing 'Hello from thread #1', 'Hello from thread #2' etc.

<comment><USER3> I had to code a small OS in C in third year of college and the main piece of it was the scheduler. I remember my semaphore routines quite fondly actually.

<comment><USER2> What I wrote was nothing as advanced as that. Simple round-robin got it off the ground and I don't think I ever looked at it again

</comment></comment></comment><comment><USER4> Very readable article with the fun of first-person problem solving.

</comment><comment><USER5> I have done this before. I'm actually in the process right now of writing a new version of an existing product on a new platform we have developed, and after evaluating various off the shelf OS's, including RIOT and FreeRTOS, and also considering a custom RTK, I have instead gone with a cooperative lightweight actor based system with some special handling around interrupts. It works quite nicely, and can easily be moved into a preemptive kernel if needed at a later stage.

<comment><USER6> I'm currently looking at FreeRTOS and mbed for a project on an STM32F07 mcu. Anything you can share about either of those that made you decide against?

Also considering a super simple no-os fw loop with some light abstractions because our real time constraints aren't very tight..

<comment><AUTHOR> I tried to use FreeRTOS on two projects. The first was an Atmel Xmega. The second was an Atmel SamD21. FreeRTOS has its quirks, but it's pretty straightforward and easy to understand. Unlike Zephyr and many of the current slew of "IoT platforms", it doesn't try to be anything but a microkernel. Just drop the C files in your sources, tweak the master defines file, and you're good to go. Use whatever build system fits you best.

The one area (and this may be dated; my last attempt was nearly 2 years ago) where FreeRTOS let us down was in tickless mode. I _think_ FreeRTOS's place of primary use was originally FreeScale and automotive, where running tickfull and powered all of the time makes sense. But we needed to be tickless and sleep lots. There was a hook for doing that, but it was definitely "on your own" and figure it what else you needed to tweak outside of the hook (like I say, this may have improved of late).

I got distracted by RIOT because they spoke at ELC and I got it in my head that it was more FOSS/open-sourcy than FreeRTOS. When I grew with frustrated with RIOT, I stumbled on [https://www.osrtos.com](https://www.osrtos.com) and gave TNEO a spin and was really happy with it.

I've only played briefly with mbed, but had the same frustration as many of the others. It want's to be a full-stack end-to-end development solution. That demos well, until you find you want to tweak the build process for some reason. Or integrate it in your source control system some other way.

<comment><USER7> Prior to Amazon buying out FreeRTOS (along with its creator and maintainer) and relicensing it to MIT, it was "GPL with exceptions". Clause 1 would be OK if it left it at "through the FreeRTOS API interface", that's a thing that projects have done to define a more practical boundary than "userspace | kernel _or_ core system library" which the GPL uses on traditional operating systems. (There was a GPL java replacement project that used a "classpath exception" for the java standard library.) But the rest is odd and makes one doubt that the GPL can really be modified this way and still be coherent.

Clause 1:

...

As a special exception, the copyright holder of FreeRTOS gives you permission to link FreeRTOS with independent modules that communicate with FreeRTOS solely through the FreeRTOS API interface, regardless of the license terms of these independent modules, and to copy and distribute the resulting combined work under terms of your choice, provided that

...

\+ The combined work is not itself an RTOS, scheduler, kernel or related product.

\+ The independent modules add significant and primary functionality that is unrelated to multitasking, intertask communication or intertask signalling - and therefore do not merely extend the functionality already present in FreeRTOS.

Clause 2:

FreeRTOS may not be used for any competitive or comparative purpose, including the publication of any form of run time or compile time metric, without the express permission of Real Time Engineers Ltd. (this is the norm within the industry and is intended to ensure information accuracy).

<comment><USER8> Those industry norms from clause 2 are pretty perverse. Sure banning the publication of metrics will prevent the spread of inaccurate information. As a side effect it will prevent the spread of accurate information, particularly accurate information that reflects poorly on the project.

</comment></comment></comment></comment></comment><comment><USER9> Pardon the digression but I like the text-only "captcha". Don't see that too often.

<comment><USER10> Doesn't seem very accessible or effective when targeted, though.

<comment><USER9> True.

More commonly, I see banner/figlet/etc. type fonts put into html apparently for no purpose other than artistic reasons.

</comment></comment></comment><comment><USER11> Why not use RTEMS ?

<comment><USER12> See the comments section of the article where author addresses this.</comment></comment>


Build a billion dollar business with a single instance of IIS and SQL Server - <AUTHOR> The company I work for built a billion dollar business using nothing more than a single instance of IIS, SQL Server, and a monolithic architecture.<p>I wanted to post this because there is a lot of tech going around that solves big problems with clustering, horizontal scaling, micro services, tdd, nosql, etc.  You can build a billion dollar business without any of that. <comment><USER2> Since I've made similar experiences, I would guess it's some kind of enterprise software, that is used by other companies internaly? So the amount of users stays roughly the same all the time and if it's hosted inside a intranet, you don't have to care about availability too much, since there are bigger problems if the intranet is down.

Also it might be easier to make big money with enterprise software since your customers are willing to pay much more money

At least in the company I'm currently working in, it's kinda like this (but not as big as you described).

Since we are trying to get more into the endusers market, we are now at a point where there needs to be some restructuring and we are transisting to a serviceoriented architecture.</comment>


The Protocol Shirt - <AUTHOR> http://teespring.com/HTTP

<comment><USER2> What library are you using for customizing t-shirt? I am looking for something like that (non flash) for iphone case.

<comment><AUTHOR> This is all done on <http://teespring.com/>

The font is Helvetica</comment></comment>


Writing a Compiler in 24 Small Steps [pdf] - <AUTHOR> http://scheme2006.cs.uchicago.edu/#anincrementalapproachtocompilerconstruction

<comment><USER2> Here's a link to the actual pdf:

<http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf>

</comment><comment><USER3> _"Compilers are perceived to be magical artifacts, carefully crafted by the wizards, and unfathomable by the mere mortals."_

Then everyone with a cs-degree must be immortal.

<comment><USER4> i think you're over-estimating the abilities of the average cs grad if you believe they all understand compilers.

<comment><USER5> Unfortunately, Compilers is no longer a required class to get a CS degree. My (possibly flawed) understanding is that in the heyday, it was.

It's really a shame, because learning about compilers applies all that stuff you're supposed to learn about languages and automata theory, gives you an excellent example of how to design a large software system, gives you insights into programming language design, and above all demystifies the process of what happens when you compile your own code.

<comment><USER6> _Unfortunately, Compilers is no longer a required class to get a CS degree._

As with all degrees, that depends entirely on the school.

<comment><USER5> I meant in the average case.

<comment><USER7> What about in the worst case?

<comment><USER5> In the worst case, you can go to a school that doesn't offer compilers. My school offers but doesn't require it.

It would be interesting to discover the earliest CS program at a reputable university without a compilers requirement.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> the paper's been discussed at least once before on hn: <http://news.ycombinator.com/item?id=1408241>

<comment><USER8> That paper is pretty interesting, but is just an overview of the actual tutorial on writing the compiler, which is here:

[http://www.cs.indiana.edu/~aghuloum/compilers- tutorial-2006-...](http://www.cs.indiana.edu/~aghuloum/compilers- tutorial-2006-09-16.pdf)

Unfortunately, the tutorial seems to be in a draft state, with a good amount content still needing to be written ("FIXME"s throughout).</comment></comment>


Ask HN: What are your motivational quotes? - <AUTHOR> <comment><USER2> Admiral Rickover had some really good ones. A sampling:

"Sit down before fact with an open mind. Be prepared to give up every preconceived notion. Follow humbly wherever and to whatever abyss Nature leads or you learn nothing. Don't push out figures when facts are going in the opposite direction."

"More than ambition, more than ability, it is rules that limit contribution; rules are the lowest common denominator of human behavior. They are a substitute for rational thought."

"Responsibility is a unique concept... You may share it with others, but your portion is not diminished. You may delegate it, but it is still with you... If responsibility is rightfully yours, no evasion, or ignorance or passing the blame can shift the burden to someone else. Unless you can point your finger at the man who is responsible when something goes wrong, then you have never had anyone really responsible."

</comment><comment><USER3> You are crazy, but that's not important. The only thing that matters is whether or not you do anything. Do anything, and you matter.

Olin Shivers in comp.lang.scheme, April 2000

</comment><comment><USER4> "I hate your negative sh*t". I tend to be pretty negative, but this phrase makes me laugh every time, so I irresistibly become a little bit more positive and motivated.

</comment><comment><USER5> "No such thing as spare time, No such thing as free time, No such thing as down time, All you got is life time … Go!" —Henry Rollins, "Shine"

</comment><comment><USER6> Let us think the unthinkable, let us do the undoable. Let us prepare to grapple with the ineffable itself, and see if we may not eff it after all.

\-- Douglas Adams

</comment><comment><USER7> Regarding physical fitness I've always liked:

"No man has the right to be an amateur in the matter of physical training. It is a shame for a man to grow old without seeing the beauty and strength of which his body is capable." \-- Socrates

</comment><comment><USER8> Not a quote but a poem - If by Rudyard Kippling [https://en.wikipedia.org/wiki/If%E2%80%94](https://en.wikipedia.org/wiki/If%E2%80%94)

</comment><comment><USER9> The 3 most harmful addictions are heroin, carbohydrates, and a monthly salary. -- NNT

</comment><comment><USER10> "Wishing without work, is like fishing without bait."

\-- Frank Tyge (published a very long time ago).

</comment><comment><USER11> To see a miracle, be the miracle

\- God (Morgan Freeman) to Bruce (Jim Carrey) in 'Bruce Almighty'

</comment><comment><USER12> "The greatest pleasure in life is doing what people say you cannot do."

</comment><comment><USER13> Ego will take you far. And leave you there alone.

Avoid doing nothing and everything. Good luck.

</comment><comment><USER14> "Yeah, I too used to be a perfectionist. Now I ship."

</comment><comment><USER15> Harder the battle, sweeter the victory.

</comment><comment><USER16> What One Man Can Do Another Man Can Do.

</comment><comment><USER17> "Courage, Merry."

</comment><comment><USER18> The entire Atlas Shrugged by Ayn Rand. Three excerpts:

1\. _The government passes a bill which limits the number of companies a person can own, Hank Rearden contemplates the purpose of doing anything when your achievements are being taken away:_

"He stood at the window, trying not to think. But he kept hearing words in his mind: Rearden Ore... Rearden Coal... Rearden Steel... Rearden Metal... What was the use? Why had he done it? Why should he ever want to do anything again?...

His first day on the ledges of the ore mines... The day when he stood in the wind, looking down at the ruins of a steel plant... The day when he stood here, in this office, at this window, and thought that a bridge could be made to carry incredible loads on just a few bars of metal, if one combined a truss with an arch, if one built diagonal bracing with the top members curved to—

He stopped and stood still. He had not thought of combining a truss with an arch, that day.

In the next moment, he was at his desk, bending over it, with one knee on the seat of the chair, with no time to think of sitting down, he was drawing lines, curves, triangles, columns of calculations, indiscriminately on the blueprints, on the desk blotter, on somebody's letters."

2\. _Hank Rearden crushes the opponents in court, but remains calm after victory understanding that his opponents want chaos:_

"Rearden stood motionless, not turning to the crowd, barely hearing the applause. He stood looking at the judges. There was no triumph in his face, no elation, only the still intensity of contemplating the enormity of the smallness of the enemy who was destroying the world. He felt as if, after a journey of years through a landscape of devastation, past the ruins of great factories, the wrecks of powerful engines, the bodies of invincible men, he had come upon the despoiler, expecting to find a giant – and had found a rat eager to scurry for cover at the first sound of a human step. If this is what has beaten us, he thought, the guilt is ours."

3\. _The mills are attacked and defended, and Rearden understands the how the the philosophy determines people 's actions, including his own:_

"He lay still, alone in the silence of his office. He knew that the meaning of his mills had ceased to exist, and the fullness of the knowledge left no room for the pain of regretting an illusion. He had seen, in a final image, the soul and essence of his enemies: the mindless face of the thug with the club. It was not the face itself that made him draw back in horror, but the professors, the philosophers, the moralists, the mystics who had released that face upon the world.

He felt a peculiar cleanliness. It was made of pride and of love for this earth, this earth which was his, not theirs. It was the feeling which had moved him through his life, the feeling which some among men know in their youth, then betray, but which he had never betrayed and had carried within him as a battered, attacked, unidentified, but living motor—the feeling which he could now experience in its full, uncontested purity: the sense of his own superlative value and the superlative value of his life. It was the final certainty that his life was his, to be lived with no bondage to evil, and that that bondage had never been necessary. It was the radiant serenity of knowing that he was free of fear, of pain, of guilt."</comment>


The Apple Voice - <AUTHOR> http://zachholman.com/posts/the-apple-voice/

<comment><USER2> I like Apple products _in spite of_ that smug voice, not because of it.

Yes, the voice is clear and simple -- just like the products -- but I curdle when I read Apple's copy, and have empathy for the brand haters.

<comment><USER3> "If you don't have an iPhone, well: you don't have an iPhone.*

I found those ads particularly offensive.

<comment><USER4> Smug and self congratulatory perhaps, but offensive? I don't think that's an accurate description.

<comment><USER5> It plays into the caricature of Apple customers being holier-than-thou cultists. I can tell you it bothered me as an iPhone user since v1.

</comment></comment></comment></comment><comment><USER6> Check out Apple's identity statement that they put on press releases [edit: this one's at least a year old]:

> Apple designs Macs, the best personal computers in the world, along with OS > X, iLife, iWork, and professional software. Apple leads the digital music > revolution with its iPods and iTunes online store. Apple is reinventing the > mobile phone with its revolutionary iPhone and App Store, and has recently > introduced its magical iPad which is defining the future of mobile media and > computing devices.

Compared to, say, Microsoft's:

> Founded in 1975, Microsoft (Nasdaq "MSFT") is the worldwide leader in > software, services and solutions that help people and businesses realize > their full potential.

<comment><USER7> Apple's is a bit long and overly specific (Seriously, iWork? The software you last gave a serious update more than three years ago?) but that's more a sign of an identity statement that has grown organically over the years instead of being rewritten from scratch from time to time.

The general idea is good but I would simplify it quite a bit.

<comment><USER8> I hadn't noticed, until sp332 pointed it out, that they were no longer leading with "Apple ignited the personal computer revolution in the 1970s..."

</comment></comment></comment><comment><USER9> Voice matters and it hard to build, especially for engineers. <http://voiceandtone.com/> from MailChilp offers a good framework of designing a voice by cataloguing touch-points between the software and the user. You may or may not find MailChimp's voice fitting, but the framework itself is quite useful.

</comment><comment><USER10> This is a Github internal memo doubling up as marketing. Smart.

</comment><comment><USER11> "Here's everything we offer, soup to nuts." isn't really The Apple Voice. That's more the "overly informal and conversational" voice you see so often these days.

<comment><USER12> I'll take informal and conversational, as long as it's also direct and informative. The worst possible output is marketing-doublespeak or the meaningless-checkbox-comparison page.

</comment></comment><comment><USER13> I'm just wondering what Github's voice is towards Githire?

</comment><comment><USER14> Interestingly, this post comes at a time when the Apple voice is changing. I think they're taking it to the next level.

This was discussed in the blog of Ken Segall, who previously worked with Apple (and with Jobs) on Apple's copy, including the "Think Different" campaign.

Here's the post: <http://news.ycombinator.com/item?id=3548981>

Increasingly, Apple is relying solely on imagery. The example billboard has no text on it other than the product name.

Apple is showing, rather than telling, and it is transcendent in its ability to do so-- it has established enough credibility with consumers that "easy to use", is no longer a message it has to communicate.

Further, this also globalizes the brand as images do not have to be translated to the local language, allowing a single voice to be present worldwide.

<comment><USER15> When a company achieves this level of domination, as shown by how we can speak of it in almost ethereal ways, and as it builds a new mega-building, and as it loses its founder/decider/symbol you've got to think it's approaching its high water mark.

Consider just as skyscrapers correlate with recessions ([http://www.businessinsider.com/skyscraper-index- skyscrapers-...](http://www.businessinsider.com/skyscraper-index-skyscrapers- signal-financial-recession-2012-1?op=1)), Apple is almost certainly going to begin to unravel.

<comment><USER16> Well the people who actually have money in the game disagree. They are very well positioned for future growth. Shorting Apple is suicide.

<comment><USER5> The same people were convinced in 2008 that housing prices would still go up. Not that they're necessarily wrong this time, but I would maintain skepticism.

</comment></comment></comment></comment><comment><USER17> Apple fans try and write in the Apple Voice. Example: HN comment threads about Apple.

<comment><USER18> I would go so far as to say most HN comments mimic that style

</comment></comment><comment><USER19> It's called tone.</comment>


Show HN: Autohook – a single-file Git hook "framework" - <AUTHOR> https://github.com/nkantar/Autohook <comment><USER2> This is awesome, can't wait to use this (^-_-^)</comment>


Flow vs. Typescript - <AUTHOR> http://djcordhose.github.io/flow-vs-typescript/2016_hhjs.html#/ <comment><USER2> I like very much the last slide and the author's recommendation. Helpful and better than the admonitory 'yes you should use typed JS':

\- if your project does not live for long: no

\- if your project is really simple: no

\- if there is a chance you will need to refactor the thing: yes

\- if your system is very important or even crucial for the success of your company: yes

\- if people enter or leave your team frequently: yes

<comment><USER3> > \- if people enter or leave your team frequently: yes

Interesting, I would put that one as a no, since introducing TS to you project means longer time train new employees. On the other hand it will make sure their commits break something less often, so not so sure about this one

<comment><USER4> The learning curve on something like TS for people already conversant in JS is pretty shallow. I think the time invested learning it will pay for itself very quickly on any non-trival project.

I wish I had something similar for all the Ruby code I write.

<comment><USER5> You might want to check out rubocop[1]. It does static checking, and we're pretty happy with it.

1: [https://github.com/bbatsov/rubocop](https://github.com/bbatsov/rubocop)

<comment><USER6> Does it actually do static type checking? Because I don't see anything about types in the documentation. It looks like just a more sophisticated linter, which is very different from what TypeScript and Flow bring to the table.

<comment><USER5> Ah, you're right. It's "just" a linter... but a pretty good one.

</comment></comment></comment></comment></comment></comment><comment><USER7> The main problem for me, is that Flow doesn't support Windows (yet?). I've been working solo on a frontend a couple of months now, and the team has just been extended with a new developer (yay). However, he uses Windows, and so all my type annotations are worthless. We're making the switch to TypeScript once 2.0 is released (easier to port with strictNullChecks).

<comment><USER2> Really wondering: who is developing Node/JS on Windows nowadays? Not that I don't like Windows (I like W10 + the new Ubuntu within efforts a lot), but the ecosystem around Node is so much tailored around Linux. Even with OSX where we have an excellent support, there's still some slight friction when deploying to Ubuntu.

Or is Windows 10 a viable alternative for Node devs?

<comment><USER8> > _but the ecosystem around Node is so much tailored around Linux_

I really don't understand why people keep saying this, it's simply not true. Node works _fantastically_ on Windows. I've yet to come across a library that won't work on my Windows box (barring obviously platform specific stuff). Node-gyp works fine too, and many libraries with native code offer Windows versions.

Especially when comparing to e.g. Ruby or Python, it's a world of difference. With Ruby you can't even use bundler on Windows and then deploy on Linux.

It seems all the basic fundamental design choices of Node and NPM were made with portability in mind. I'm frankly quite impressed.

Source: been running teams doing frontend and node for almost 3 years now, every team had at least one Win dev and at least one OSX dev, every team deployed to Linux. 0 problems, ever.

<comment><USER9> > Node works _fantastically_ on Windows.

I beg to differ

1\. npm install gulp

2\. try to delete the node_modules folder

3\. waste time fighting windows' legacy stuff (260 max path length in almost everything: explorer, cmd, git bash, etc.)

4\. come across rimraf eventually

I wouldn't describe that flow as "fantastically" unless you mean "fantastically broken".

<comment><USER10> Not that it helps today, but the upcoming w10 anniversary update is going to get rid of the 260 char path length limit.

Microsoft is waking up to the fact that developers mostly aren't using microsoft dev tools anymore. Hence, docker on windows, ubuntu on windows, redesigned env vars dialog, no more path length limit, nicer command prompt, etc...

<comment><USER11> Finally. But I wish microsoft would've done it sooner. Now a UNIX convert. Forever a convert. I'm no longer fighting my system to get shit done.

</comment></comment></comment></comment></comment></comment><comment><USER12> Both differences in this presentation are addressed in TypeScript 2.0

[https://github.com/Microsoft/TypeScript/wiki/Roadmap#20](https://github.com/Microsoft/TypeScript/wiki/Roadmap#20)

<comment><USER13> I talked with Lee Byron about the differences and if there's hope for convergence at React Europe. He said:

\- the biggest difference is nullability (you have to explicitly set TypeScript to treat all types as non-nullable by default to get behavior similar to Flow's default).

\- Flow uses nominal typing (similar to functional languages); whereas, TypeScript uses structural typing (similar to Java). To be honest, I don't remember the ramifications of this, but I think one was it makes Flow easier to work with/require less boilerplate. If you set types on your exports, Flow can infer the stuff in the middle. Flow is also compatible with prototype chains; whereas, TypeScript only knows about ES2015 classes (unless you declare types separately in t.ds files).

\- Because TypeScript is a compiler, they can define their own syntax. Flow, on the other hand, tries to be compatible with pure JavaScript. (You can define Flow annotations in comments to avoid needing a tool like Babel.) This means the syntax for certain operations is a bit more verbose in Flow: I think the nullable operator was one case, where the operator Microsoft chose could be ambiguous with JavaScript code in Flow, so Facebook chose a different one.

In short, there are inherent architectural differences that make the two incompatible - there can be edge cases that make a file that works in one not work in the other. The two teams share notes and try to avoid divergence when possible, but as the slideshow shows, the projects have different aims, which can yield conflicting decisions. If Microsoft adds support for the Flow nullability operator, there ought to be a large subset of shared syntax between the two, where files that work in one should work in the other, if you set TypeScript to use Flow's defaults and don't rely on nominal typing.

These are all notes off the top of my head from last week. I haven't used either tool yet. Please feel free to correct any mischaracterizations.

<comment><USER14> I know I sound a little ignorant, but could you elaborate a little on nullability. I mean is it the same as checking whether an assignment is null or not?

P.S. I haven't used either typescript or flow.

<comment><USER15> The basic notion is that part of the meaning of a type is whether it's allowed to be null. As developers we have notions of whether some variable is supposed to ever be null; this is just asking the computer to make sure.

For example, suppose you're building a simple app to remind you to call your friends on their birthdays. Your fields are name (a string), birthday (a date), and phone number (a string). Since it doesn't make sense to put somebody in without a name and birthday, you say those aren't nullable. But say you want to be able to leave a phone number out, because it's easy enough to look up their phone number when you want to call. So phone would nullable.

Java, as an example, required everything variable to be typed, but all references could be null. This meant that far and away the most common error in Java logs was NullPointerException. It's great to see language features aimed at reducing that.

</comment></comment></comment></comment><comment><USER16> No matter which one you go with if you're project is going to live for any decent length of time please use one of these. Typed Javascript plugs many holes in the language and there is a qualitative positive difference in productivity.

Just go with one of them. Seriously.

</comment><comment><USER17> The biggest win that flow has - and for me puts it over typescript - is that it has comment decorator syntax.

This means I can _just write JavaScript_ and add comments for types. No transplier step, no messing around in a different but similar language, no additional complexity, just easy.

It's inferred types are a much stronger system imo too - gets out of a developers way more.

Typescript is great, but I really do prefer Flow in every metric.

<comment><USER18> > _no messing around in a different but similar language_

TypeScript would be a disaster if it subtly changed the semantics of JavaScript. It doesn't, though. It's a superset, so it's really not a "different but similar" language. It's the same language with more features, and the compiler is a great guide to using those features.

<comment><USER19> what if further JS will intersect with TS syntax ? IMO Typescript is "no go". We need clean break with transpile step (eg. Dart) or annotations.

<comment><USER18> > _what if further JS will intersect with TS syntax_

A core value of TypeScript is to support the latest ES20xx standard. The TypeScript team pays attention to JavaScript proposals. In the unlikely event that JavaScript got a type system, it would almost definitely be either TypeScript or Flow. If it wasn't, or if ES standards overlapped with TS syntax, then TS would remove that syntax.

Also, if you don't like the next version of TS, you can just use the old version to transpile your code and then stop using it. Switching to TS is an easily reversible decision, whether it's 1 day or 1 year later.

> _We need clean break with transpile step (eg. Dart) or annotations._

You can already have this with Scala.js or any of the other languages that compile to JS. TypeScript is one option among many.

The appeal of TypeScript is that it fixes some things about JavaScript rather than throwing the language away. That's useful because it allows teams to transition from one to the other gradually. Facebook had to do the same thing with PHP, so they created Hack.

<comment><USER19> "then TS would remove that syntax."

So there is no hard promise of TS backward compatibility ?

Sorry but whole TS looks like another EEE - MS will/can argue on some further JS changes for/against based on existing TS codebase. I hope I'm wrong here though.

<comment><USER20> You want to have your cake and eat it, too. You've just argued for both viewpoints (TS is bad because it does X and because it doesn't do X).

Just be honest and recognize that you dislike Typescript and/or Microsoft. Nothing to be ashamed of, many decisions in tech are based on feelings as much as on cold, calculated decisions.

<comment><USER19> What? I want TS to be different lang transpiled to JS or be annotation to JS but it is: Embrace and extend existing Standard (superset) and when everyone will write TS it will come to Extinguish step. (I like C# and don't like Windows my like not like to MS tech is 50%)

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> TypeScript 2.0 added control-flow based analysis, therefore cases like the one in slide 12 will be cached with the `strictNullChecks` flag.

</comment><comment><USER22> I am the only one who is happy to code without static typing? Enjoying fast compilation, small, fast editors, flexibility.

I don't really make stuff like marry(a, b) and then call it with a banana and an apple by accident. Sure I make plenty of mistakes when I am coding but only very few could have been caught by a static type check.

Take one of the examples in the slides:

       let obj: string;
       obj = 'yo';
       // Error: Type 'number' is not assignable to type 'string'.
       obj = 10;

I simply don't write code like that. The crucial difference is that I would pick a variable name that made it obvious what goes in it:

       let text = 'yo';
       // This line here - I would not in practice write as 10 obviously does not belong in text:
       text = 10;

(similarly I would never use the variable name 'what')

<comment><USER23> How big are the projects you are working on though? For instance I work an a 2 year old Angular project and static typing is something we are trying to introduce because the codebase is large and challenging to work with, mostly because Javascript. There's only so much you can do with best practices and code organisation.

<comment><USER22> I work on / have worked on fairly big projects. Plenty of them have been "a challenge to work with". Always because of the code that had been written (+ other things). Never because of the language.

For me the trick to big projects is strong modularisation and well-defined interfaces which you can do regardless if you have static type checks or not.

<comment><USER22> Plus. I think that there is a bit of developer-psychology-101 here.

Most developers would rather go: This project sucks. This shitty language has not got a proper type system. Let's build a compiler/type-checker/use-this- cool-alpha-from-bingo-banana-I-found-last-night.

Rather than: This project sucks. I cannot believe how much bad, disorganised code we have written. Let's sit down and look at our mess to see if we can improve the way we write code, work together and in general develop way we make software.

<comment><USER24> I don't see these as mutually exclusive. Introducing a compiler/type-checker can be (depending on your situation) a very concrete way of improving the way code is written.

<comment><USER22> They are not. But the pscyhology is that people will much rather talk about introducing a new tool rather than what they have done wrong.

</comment></comment></comment></comment></comment></comment><comment><USER25> From my experience - Flow is still very "unstable" and in heavy development. I haven't tried TypeScript at all, so I cannot compare that.

It's absolutely true that Flow team is merging all pull good requests, fixing issues (the backlog is big - 500 issues - but TypeScript has 1000, so it's not incomparable) and the system is made dramatically better every release.

But there are still rough edges, especially when working with ES6 modules and import/requires/etc.

Again, I don't know how TypeScript compares, I learned Flow and am just using that.

<comment><USER26> The good thing TypeScript has going for it is tooling. It's really solid. IMO, VSC is a pleasure, and the tools (tsc, tslint, etc) are extremely stable. Things don't break.

The GitHub community is going really fast, and I love reading some of the PRs, but it's hard for me to compare in that sense.

</comment></comment><comment><USER27> So today is typed JS day? [https://i.imgur.com/XAEeEFm.png](https://i.imgur.com/XAEeEFm.png)

Guess it's time for the question then... I haven't dived into this whole types thing yet so could someone provide a TLDR about either Flow or TS being opinionated and their impact on an established toolchain?

I have no intention of changing half of my tooling just to be compatible with what fb thought would be a good idea, and even less so for ms. A build step is required, I take it, but that's not a problem. Would I be able to use old libs and build tools? Are there properly working code formatters for both? What about editor support (Sublime)?

I also understood that TS is a superset of ES6, what is Flow's relationship with ES6+?

<comment><USER18> > _Flow or TS being opinionated_

Neither is opinionated. They have some pretty uncontroversial (similar to other popular languages) typing on top of JS, and it's all opt-in. If there's something you don't like, you don't have to use it.

> _and their impact on an established toolchain?_

I don't know about Flow, but TypeScript is very easy to integrate into an existing chain. If you're using something like Gulp, there is a pure JS library that you can call to transpile your TS into JS. If you use Babel, you can simply insert the TS->JS transpilation before you call Babel.

TypeScript has an executable called tsc that you can use to transpile your TS whenever the file is changed. You can use that, and then your tool chain doesn't even have to change at all. (Automatic TypeScript transpilation is built into WebStorm and easy to add to VS Code.)

> _I have no intention of changing half of my tooling just to be compatible > with what fb thought would be a good idea, and even less so for ms._

In my limited experience, TS is much more polished than Flow is. The tooling is mature, debugging works well, and the language is rapidly improved. It's not just MS using it -- Google also uses it, and some other larger companies.

> _A build step is required, I take it, but that 's not a problem. Would I be > able to use old libs and build tools?_

Anything (and I mean _anything_ ) you do with JS, you can also do with TS. It's a superset of JS and compiles to readable, idiomatic JS.

> _Are there properly working code formatters for both?_

WebStorm has mature formatting for TS, but there's also tslint if you want some additional error-checking. WebStorm has first-class support for TS, including integration with tslint.

> _What about editor support (Sublime)?_

No idea about Sublime, but WebStorm support is absolutely fantastic. Excellent debugging, hints, linting, and completion. VS Code is great, but it lacks some of the more niche-y features of the IntelliJ platform. Some people might not care, and VS Code will do everything they want.

</comment></comment><comment><USER28> This would be a good deal less irritating if it was written as an essay and not a slideshow.

<comment><USER29> You could always rewrite it yourself.

Not every submission to HN was created as or intended for a Hacker News audience. The author wasn't under any obligation to publish their slides, personally I'm glad they did.

<comment><USER28> > Not every submission to HN was created as or intended for a Hacker News > audience

That's a good point.

</comment></comment></comment><comment><USER30> Both systems are really great, however, when adding typechecking into an existing codebase, flow does offer more flexibility thanks to weak checking and annotation comments. You can really progressively add typechecking by just dropping the tool in the codebase. Also, if you subscribe to Facebook's tooling (Nuclide especially), you will end up with great tools (jump to def, integrated checking, ...). However if you just start the project and you use VSCode, TS seems to be a strongest choice. Depends on what you do, but both tools are great, whatever you choose, typechecking is worth in javascript if you need more reliability and maintainability.

<comment><USER31> I actually found the opposite was true in our project - TypeScript was easier to add into the code than Flow. The biggest reason for this was that Flow demands null/undefined checking and null was used extensively throughout this code base. With TypeScript, on the other hand, the changes to make it work initially amounted to sprinkling a few "any" notations and making some explicit object interfaces at various points.

<comment><USER32> Flow supports nullable types just fine, and flow in weak mode doesn't mandate any annotation whatsoever.

</comment></comment></comment><comment><USER33> The best things about flow which typescript doesn't have is sound typesystem. I hope typescript will adopt it at some point in time.

<comment><USER31> One area in which Flow may be "technically" sound but it feels illogical is how in how it infers certain types. TypeScript requires that a variable has one type that doesn't change, but Flow will infer multiple types for a variable at different points in the code depending on how it is used. Also because Flow infers types based on how they are used, there are some interesting situations where you would expect the type checker to complain but it doesn't. E.g. if you have an object with a field that is never used, Flow won't complain about the field even if it is not defined in the type of the object. Overall I feel like TypeScript enforces logical, opinionated defaults, while Flow is happier to go with the illogical structure of your own usage (while enforcing opinionated defaults in other areas like null-checking).

<comment><USER34> Jeff here (I work on Flow).

I talked a bit about why we infer unions in this way in my ReactEU talk earlier this week ([https://www.youtube.com/watch?v=VEaDsKyDxkY](https://www.youtube.com/watch?v=VEaDsKyDxkY)).

Ultimately it boils down to the notion that inference is about understanding the type, and annotations are about expressing it.

If you write a type annotation for a variable, then Flow will of course not infer anything more or less than your annotation. If, however, you use the variable as multiple types (but do so in a way that is clearly safe), Flow infers the union so that it doesn't give you errors for code that is clearly ok.

I think the example from the talk was something like:

      var name = "Jeff";
      name = name.toUpperCase(); // safe
      if (loggedOut) {
        name = null; // safe
      }
      var firstInitial = name ? name[0] : null; // safe

The above code has no errors in it, and because flow infers `name` as a type `null | string`, Flow is able to verify its safety and thus doesn't error.

OTOH, if we use an annotation to _express_ the type of `name` as intended as only `string`, then we would get an error on the null assignment:

thing like:

      var name: string = "Jeff";
      name = name.toUpperCase();
      if (loggedOut) {
        name = null; // Error!
      }
      var firstInitial = name ? name[0] : null;

So in summary: Inference is the means by which Flow understands, annotations are the means by which you express to Flow your intentions.

</comment></comment></comment><comment><USER35> Regarding the first class definition with TS (sayer):

You can shorten the it by declaring the public variable within the constructor: constructor(public this.what: string) {}. Thereby you can eliminate the property declaration as well as the assignment inside the constructor.

And regarding the non-nullable example for Typescript: I think there is an non-implicit-returns option or something similar for the compiler which would have warned you that the function is incomplete. Of course it wouldn't help if you manually return null/undefined (which is valid).

</comment><comment><USER26> Good presentation. But two caveats:

First, the slides about lack of non-nullable types in TypeScript are incorrect, if you count the beta ("next") versions. It's already part of 2.0 [1] which should be out soon [2]. He says "there is hope" but it's more than hope, it's a certainty. (the date of the presentation is not clear, but seems outdated to me)

Second, there's a lot of other features that are left out. Union types, flexible interfaces, etc. They're not on par between the two languages, but many of those are almost as helpful as types, just more specific, so they're important if one is trying to draw a comparison.

[1] [https://github.com/Microsoft/TypeScript/wiki/Roadmap#20](https://github.com/Microsoft/TypeScript/wiki/Roadmap#20)

[2] [https://github.com/Microsoft/TypeScript/milestones](https://github.com/Microsoft/TypeScript/milestones)

</comment><comment><USER36> Slide 12 is incorrect. TypeScript does catch this with a "not all control paths return a value"

</comment><comment><USER37> I think the biggest loser in this comparison is Closure Compiler, which is around for years with all those features. It's also still active with development on understanding and transpiling ES6 and even TypeScript from what I've heard [1]. There also made a good move recently, enabling ES6 modules packages instead of its own goog.provide/goog.require.

Yet, the available toolchain for it is years behind others. If you wonder how you should have any live reload development with it, you can either rely on community plugins like grunt-closure-compiler [2] or hope plovr[3] is finally resurrected back to a state where it's usable. This all sounds fine until you think about any unit testing. The only karma runner[4] for closure is simply broken and unmaintained. Even worse, most of npm packages you might want to compile with your code will output thousands of errors because there is no clear way to whitelist code as "not my code leave it alone". I can just hope one day Google will publish a yeoman generator with all those things solved and get it back in the game.

[1] [https://groups.google.com/forum/#!msg/closure-compiler- discu...](https://groups.google.com/forum/#!msg/closure-compiler- discuss/5EVAw6oO2BI/LI9ptKLnCYoJ)

[2] [https://github.com/gmarty/grunt-closure- compiler](https://github.com/gmarty/grunt-closure-compiler)

[3] [https://github.com/bolinfest/plovr](https://github.com/bolinfest/plovr)

[4] [https://github.com/karma-runner/karma-closure](https://github.com/karma- runner/karma-closure)

</comment><comment><USER38> One aspect to consider before jumping into TS or Flow. As is the nature of any type system they rule out some programs that are perfectly fine.

A workaround for this is to infer, or explicitly annotate, things to be dynamically typed. And/or helping the typer by casting to known types it failed to recognize. And it will work fine, after all this is precisely what you do with untyped ES (in your head).

This workaround was to strong of a code smell to just let things be like that though. So I've found myself spending time inventing ways to refactor code, or alter type definitions, to get proper typing instead. This can eat up time better spent implementing features.

Not everyone will have this problem, but if you're anything like me, do consider it before adopting these.

As a less intrusive option, consider using eslint with Babel and reference checking for modules. Not in any way a complete type-system, but might be just enough if you're allready comfortable with ES as it is.

<comment><USER39> Do you have a specific (and simple, if possible) example at hand?

<comment><USER38> Redux perhaps. Spent some time inventing a way to pass event types to reducers.

Turns out I reinvented redux-act in the end ;)

</comment></comment></comment><comment><USER40> Where I saw the same nullable / non-nullable values: Kotlin.

Bidning animals = cats is problematic only if the collection is mutable. Forbidding that is too limiting when you work with immutable collections (even it that's an Array - if you are not going to mutate it).

</comment><comment><USER3> I heard somewhere, that TS class syntax diverged somewhat from the spec. Can anybody who has insight into the TS tell me what the situation is?

</comment><comment><USER41> What currently is in TypeScript: [https://github.com/Microsoft/TypeScript/wiki/What's-new- in-T...](https://github.com/Microsoft/TypeScript/wiki/What's-new-in- TypeScript)

</comment><comment><USER42> Flow is more strict than TypeScript as demonstrated by the slides. As such why not use it as a static checker for TypeScript? I don't see it so much as a vs. situation. Unless you mean to use the unsafe area in what is valid TypeScript and invalid Flow.

</comment><comment><USER41> What TypeScript 2.0 promises: [https://www.infoq.com/news/2016/04/typescript-2-preview](https://www.infoq.com/news/2016/04/typescript-2-preview)

</comment><comment><USER43> If you really want good types with your JS, there's always Purescript. (I'm half serious.)

</comment><comment><USER44> Love the use of Zenburn in the syntax highlighting :)</comment>


Ancient Roman Swiss Army Knife on Display - <AUTHOR> http://www.dailymail.co.uk/news/article-1247230/The-Roman-Army-Knife-Or-ingenuity-Swiss-beaten-1-800-years.html

<comment><USER3> The Fitzwilliam Museum's page about this artefact: [http://www.fitzmuseum.cam.ac.uk/opac/search/cataloguedetail....](http://www.fitzmuseum.cam.ac.uk/opac/search/cataloguedetail.html?&priref=70534)

<comment><USER4> Tangent: I like the catalog display that you link to (aka, from the 'old version of their collections database') better than their new revised version [http://webapps.fitzmuseum.cam.ac.uk/explorer/index.php?oid=7...](http://webapps.fitzmuseum.cam.ac.uk/explorer/index.php?oid=70534)

The new version has more information available at a glance, but I like the larger text of the previous entry, and I like having the full images at the bottom of the previous entry. Not to mention the previous version has six images while the new entry only has four.

I didn't check to see how hard it was to actually find something in their old collections database, but I ended up having to snag the Accession Number from the old entry to actual get to a detailed view in the new collections database. For some reason, I could find the thumbnail view easily through several searches, but when I clicked any the thumbnail, it always took me to a different search results page with nothing but coins on it.

<comment><USER5> The 2 pictures which are not a part of the new collection look to be from a reproduction piece as the steel blade appears to be way to pretty for 2000 years old

<comment><USER6> FYI The blade is not made of steel, the _iron_ age started 1200 BC and the rest of the body of the tool is made from silver. And for an encore, it _could_ have been made of steel since steel has been produced for a very long time but the better bet would be for this to be iron from a meteorite which is high in nickel content and so already quite hard and oxidation proof.

<comment><USER4> I believe ZoZoBee was referring to the blade in the reproduction piece [1, 2]. I didn't see any information on the reproduction piece itself.

[1] [http://www.fitzmuseum.cam.ac.uk/opac/search/cataloguedetail....](http://www.fitzmuseum.cam.ac.uk/opac/search/cataloguedetail.html?&priref=70534#3) [2] [http://www.fitzmuseum.cam.ac.uk/opac/search/cataloguedetail....](http://www.fitzmuseum.cam.ac.uk/opac/search/cataloguedetail.html?&priref=70534#4)

</comment></comment></comment></comment></comment><comment><USER7> To bad it doesn't say where the knife was found and how it did go to the museum.

I imagine the person who owned this silver tool was pretty upset when they lost it (if they didn't perish along side it).

<comment><USER8> Turns out pocketknives are the most lost thing in the world. Almost everybody loses them almost instantly. The kind with a lanyard last better - if you remember religiously to reattach them after using them.

But their handy, pocket-sized dense nature makes them ideal for slipping out of hand or pocket, or being left on a tree stump or post, or plunk! gone in any body of water.

<comment><USER5> Turns out you're making that up without any statistical proof what so ever, and if you're attaching a knife to a lanyard it is you yourself who becomes the tool

<comment><USER8> Cute. No statistics at all? I didn't know the Amazing Kreskin posted on HN! I yield to superior argument.

<comment><USER5> Well you kind of pulled that stat straight out of your back pocket

<comment><USER8> Again with the mentalist act. Clearly others know more about me than I do. Again, I submit to a superior intellect.

</comment></comment></comment></comment></comment></comment><comment><USER9> I thought Daily Mail was banned? If not it should be.

<comment><USER10> Care to comment on the actual article?

</comment></comment><comment><USER11> shouldn't it be ancient "roman army knife" instead of "swiss army knife"?

</comment><comment><USER12> Wonder if this will count as prior art and invalidate a bunch of multitool patents?

<comment><USER13> Modern multitools like this one are more than 20 years old, so I don't see how there could be active multitool patents this would invalidate. Unless they did something especially clever in their design that would be specially patented?

<comment><USER14> I've been trying to find a reference, but the story goes that Tim Leatherman and a friend created the first multi-tool that had a full-sized set of pliers on it. They patented it, then shopped the design around to the various knife companies (Gerber, etc), none of whom showed interest. So they started their own company, selling the original pocket survival tool through Cabella's mail- order catalog.

</comment></comment></comment><comment><USER15> > _" Experts believe the spike may have been used by the Romans to extract > meat from snails."_

Now I'm no expert, but I wager it was used for anything that needed picked or poked, particularly dirt under fingernails. Just going by modern usage patterns, if it can be used for something, it will be used for that, even if it isn't the intended use of the tool.

</comment><comment><USER16> 'We know almost nothing about the person who owned this ingenious knife, but perhaps he was one of those who profited from the vast expansion of Rome - <USER2> would have been wealthy to have such a real luxury item.

'Perhaps he was a traveller, who required a practical compound utensil like this on his journeys.'

Or perhaps he was a desperate knife seller, traveling from city to city trying to offload this ungodly expensive silver behemoth, where at every city he tried to explain the benefits the crowd would shout 'but I can buy a wooden toothpick for a 1/100 of a copper!', 'I already have a spatula made with olive wood!', 'I already have a bone pick to pull snails out of their shell!'.

The knife seller eventually took his own life by iron blade to the eye.

<comment><USER8> Ha! I like that idea. But ordinary things have a history of being outlandishly ornamented, usually to show off wealth. People have been buying this crap for millennia. The Amish actually banned buttons(!), not because they want to look funny with hooks and zippers, but because in the 1800's it became a fad to have enormous brass buttons with inlay and ivory and embossed scenes. They rebelled against the pride and wastefulness.

</comment></comment><comment><USER17> Url changed from [http://www.thehistoryblog.com/archives/4587](http://www.thehistoryblog.com/archives/4587), which points to this.

<comment><AUTHOR> Whoops.

Thanks.</comment></comment>


Hackers & Hookers | Costume Party - <AUTHOR> http://www.eventbrite.com/event/8938393977/efblike

<comment><USER2> I am getting sick of hot women, or even average women dressed like hot women, taking advantage of us nerdy men. It is simply degrading and dangerous to prey upon our one weakness.

</comment><comment><USER3> Previous (killed) discussion: [https://news.ycombinator.com/item?id=6600829](https://news.ycombinator.com/item?id=6600829)</comment>


Tell HN: I will build you a working MVP for $2,345 - <AUTHOR> http://prototypefor2345.com <comment><USER2> As a simple rule, you can usually break MVP clients into two groups:

1\. Cash poor wantrapreneurs who expect the world but can't pay for it.

2\. Entrepreneurs with realistic expectations who are able and willing to pay a fair rate for labor. The founder of Groove is a good example[1].

The person interested in a 3 week engagement that costs $2,345 is more likely to fall into the first group.

You want to do everything you can to avoid the first group, even if you're starting out and trying to build a portfolio. These clients are far less likely to collaborate with you effectively and far more likely to be unprofitable to serve. Additionally, because they don't have the capital reasonably required to execute on their ideas, you'll probably never build long-term relationships, which are very desirable for solos.

In terms of targeting the latter group, which would enable you to charge a lot more, you're far more likely to be successful if you can demonstrate that you have some product development chops. A lot of entrepreneurs need help translating their knowledge and ideas into functional requirements; many of them are not going to come to you with ready-to-implement wireframes, user stories, specifications, etc. These entrepreneurs need a partner who is capable of being involved in the tasks that come before implementation.

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

</comment><comment><USER3> My biggest concern with doing something like this would be that you'd burn all your time negotiating - because clients are going to show up with a "3 months to implement" idea, and you're may spend more (unpaid!) time stripping the thing down to a reasonable MVP than actually coding.

"We'll agree beforehand on a list of features" has a lot of complexity hidden inside; if a client shows up with an idea "be the next Google" and hands you a list "1\. SEARCH TEH INTERNETZ", what will you do?

<comment><USER4> I know you were joking, but I once had a guy complain about just that. I contributed a (very basic) search feature to some FOSS software and a user complained because it "wasn't as good as Google".

My response was something like "If I could write a search engine as good as Google in my spare time, I'd be living a lifestyle somewhat more luxurious than the one I actually have."

<comment> bra-ket you could have used Google API to index that site, [https://developers.google.com/custom- search/docs/api](https://developers.google.com/custom-search/docs/api)

<comment><USER4> Unfortunately a lot of the users had and have proprietary/sensitive content, so opening it up to Google wasn't an option.

</comment></comment></comment></comment><comment><USER5> I see a lot of people advising you to increase it. Don't. Its a perfect number with a simple idea "MVP for $2345". It has in-built chance of virality/wordofmouth for its USP - so you are getting free marketing dollars inside that number.

If you charge 10K+ like others are suggesting, then you are competing with 10000 devs ready to do that work. If you charge 1K, you will lose money and target the extreme low ballers, and no amount of free marketing can make it sustainable. Your number of ~2.5K is a perfect balance.

      But set a few hard-rules before you agree on a project:

      - wireframes, mockups with annotations to avoid scope-creep
      - design will be bootstrap quality (otherwise design is never-ending)
      - is designed for demo purposes, it will break if 10,000 ppl access it.

Remember your clients are "idea mongers" who want to validate an idea, but dont have the chops to do it themselves. So your clients will not be businesses or startups - but plain old business folks with ideas. Stick with it. If the demand is great, then outsource it or franchise it, but control quality by keeping it within your strengths (py + web.py) since you missed "1" here is a way to include it:

1 for $2345 :)

Great idea! Good Luck!

</comment><comment><USER6> This is a fantastic opportunity for someone to build a marketplace that connects folks who need a quick MVP built with freelance developers. You could go a step further and break it down by back-end, front-end, design only, or all of the above (because maybe you already fill one of those roles yourself).

You can bake in the idea of a cash/equity split if the freelancer was interested as well.

The idea would be to limit projects based on time, scope, or budget from the get-go and stick to the MVP market niche.

Edit: Thinking about this idea more and reading more comments on this thread gave me another idea. Many people have commented that it might be a good idea to have your app fully wire-framed and thought out first. Need help with this specific stage before getting into the development of the MVP? Just another channel on the marketplace.

Idea Consulting -> Wire-frames -> MVP Development -> Design

All of course are optional and you could obviously swap Development and Design.

<comment><USER7> You should pay Brandon $2,345 to build a working MVP for that idea ;)

<comment><USER6> Hah, I'd just do it myself, but I was going to suggest he build his own MVP to scale his own service!

</comment></comment></comment><comment><USER8> Chris Granger does (did?) offer a similar service[1]. I think his price (5000$) is more sustainable for a developer, but I'm not sure how the market is for this kind of work.

Chris, if you are reading this, please share your experience with us.

[1] [http://iwbyp.chris-granger.com/](http://iwbyp.chris-granger.com/)

<comment><USER9> I got/get lots of offers, but in general the projects were pretty uninteresting (so many clones), people didn't really know what they want, and I found that what people really needed was someone to think through their ideas with them, not a prototype.

At that point in time 5k was reasonable. The price would go up quite a bit if I were doing it now though. But I doubt I'd do it again - the work didn't end up being as exciting as I thought it would be.

What I would consider doing in the future is the "idea consulting" I discovered most people ended up needing. I have a knack for pulling things apart and putting them back together in interesting ways :)

</comment></comment><comment><USER10> Perhaps consider taking a page out of the pinboard.in playbook:

customer #1: $2000

customer #2: $2100

customer #3: $2200

And so on until customers stop signing up. Then you start over.

</comment><comment><USER11> > I'll get half the site working, demo it to you, give you all the code thus > far, and you'll pay me $1,172.50.

You should ask for 1/4 up-front, before you write any code.

<comment><AUTHOR> As someone who isn't used to taking upfront payments, my question is, are people actually willing to do that?

<comment><USER11> Yes, definitely. I just did that for two projects in the past week; but it was 1/2 up-front. Albeit, they were close referrals. YMMV if it's potential customers who don't know you.

<comment><USER12> Was just going to post the same thing.

I've never had anyone walk away from a project after asking for 50% upfront at projects this scale.

</comment></comment></comment></comment><comment><USER13> You should post this reddit.com/r/startups or /entrepreneur

This is like the one venue for most people CAN build out their ideas.

</comment><comment><USER14> Back when I was running a web development company, I toyed with this idea a few times, but couldn't find a way to do it and not lose money. Hope your experience is different. Good luck!

<comment><AUTHOR> Interesting, what happened that made you lose money? Were you pouring more time into the projects than you were getting paid for?

<comment><USER14> I didn't actually go ahead and implement it - I just couldn't make the math work. In my opinion, there are too many unknowns with this model - you're quoting the price of a project without knowing all features, talking about design iterations, supported browsers, and a million other things. And if you substantially increase the price after getting the requirements, clients won't like that, because the most important number for them is the first number you tell them - in this case, $2,345.

I could go on, but I don't want to discourage you. You should try it, just be careful not to lose money. Also, if you're in the western world, make it $10,000 or $20,000, that's a more realistic number :)

<comment><USER15> think about it like fiverr

There are a lot of unknowns, the only known is that it costs 5$, that's all some people need to know.

</comment></comment></comment></comment><comment><USER16> This is a ridiculously low number. I'd say you really need to double it or so. Good luck! Looks like you've got some pretty cool past projects under your belt.

</comment><comment><USER17> I love the idea - but I wonder why the price? it does seem really low. At 19 bucks and hour pro rata, you are not storing up cash to get through the hours when you are not earning, like marketing, talking to clients, understanding what they want.

It did get me thinking though - really good luck.

<comment><AUTHOR> 3 weeks is just to buy me some runway. I was hoping to work on multiple projects in parallel.

<comment><USER17> Unless the projects are carbon copies (in which case automate) this will never work. The context switching will kill any productivity. You can work in parallel by threes - one in sales funnel, one in development and one in maintenance mode. And that will be tough.

</comment></comment></comment><comment><USER18> I like the idea, but:

$2,345 / (40 * 3) = $19.5416666667/hr

I guess if you're just starting, that's decent money, but I don't think I could run with the same idea myself. I'd probably need to add a 1 to the front of your number.

<comment><AUTHOR> To be honest, I said 3 weeks just to be safe (the old rule of doubling what you think you need). The plan was also to work on multiple projects in parallel.

You're right though, I am just starting off, and already feel a bit guilty asking for anything north of $5k.

<comment><USER11> Don't feel guilty. If you're price is too high you simply won't get leads. Better 3 high-paying customers than 10 low-paying customers: less support time.

<comment><USER19> That is a fact.

</comment></comment></comment></comment><comment><USER20> This is super inspiring and really makes me want to try a similar experiment. I've been wondering how I can make income while doing month long stays in different countries throughout the world, and this seems like it would be about perfect. New country, new project, enough income just to get by. Keeping the price low is not necessarily a mistake. It will allow you to pick from a much large range of products and if you can live for two months on $2000, why not just keep it low. The world doesn't necessarily always have to be profit- maximizing.

P.S. I checked out your essay about the first person view. I think you should watch this video from the BBC. It describes how this first person view that you describe is not actually making the decisions for your body, an MRI machine can predict what decision you will 6-7 seconds before you become conscious of making a particular decision. This doesn't necessarily answer your question, but the video shifts the question from why am I making decisions to why does brain make me think I'm making decisions.

[http://www.youtube.com/watch?v=N6S9OidmNZM#t=303](http://www.youtube.com/watch?v=N6S9OidmNZM#t=303)

</comment><comment><USER11> The original idea: [http://iwbyp.chris-granger.com/](http://iwbyp.chris- granger.com/)

<comment><AUTHOR> Hehe, you got me. That actually is where I first got the idea.

<comment><USER11> Yeah, I wasn't being critical. It's a fun/great idea. Seems like a fast way to broaden your portfolio; both intellectually and on paper.

</comment></comment></comment><comment><USER21> How can you commit to a fixed amount to execute on an idea that requires an unknown number of iterations, re-evaluation of initial assumptions, and customer feedback? Maybe this is possible IF your customer is a sensible designer who can iterate in parallel with you and has a realistic sense of what an MVP is and isn't. If your customer is just some schmuck with 2.5 grand to throw around and no product experience, you'll likely find yourself fighting time consuming battles of scope and deliverables. And how can you juggle multiple projects like that simultaneously, when there's unavoidable friction that comes with the context switching? And, how fulfilled will you feel when your day-to-day is filled building things that are bug-laden and just minimally good enough? What kind of portfolio will that generate for you?

<comment><AUTHOR> I sit down with each person and agree on a specific list of features they want before I get started. I say explicitly on the site that the $2,345 is only for one iteration.

<comment><USER21> I think the definition of what constitutes a single iteration is subject to personal values and tendencies. E.g. I myself have a hard time calling a task "done" when it simply meets a rough guideline that was specified in text ahead of time. For me, it has to be better than just satisfactory. And that's before adding the customer's expectations into the mix. Hence, I would be a horrible candidate to try this. But I have met devs who are the other way around, and you may well be like that. I do think it's bold of you to give this a shot.

</comment></comment></comment><comment><USER22> I'm very intruiged by this idea, because I'm in a somewhat similar situation. I'm a fullstack developer all the way and love building products, but I haven't quite figured out a way yet how to make an income from that. Good luck and I would love to hear hot it's going.

</comment><comment><AUTHOR> Thanks for all the helpful advice! Totally didn't expect so much feedback.

Question for the more experienced people here: if I changed it to "$2,345 per week, and it'll take 1-3 weeks" instead of "$2,345 for up to 3 weeks," would I lose anyone I shouldn't be losing?

<comment><USER23> I would suggest $7890 for 3 weeks. Thats still low-balling somebody with your skills, thats about $65 per hour, man.

A better idea is to go with $12345 for 4 weeks.

</comment></comment><comment><USER24> How would you market this (aside from posting on HN)? I want to do the exact same thing but charge more. Trying to freelance and I'm just unable to find clients.

</comment><comment><USER25> Question for you or Python users in general:

Why web.py over flask or django?

<comment><AUTHOR> I considered both when I first got started. Django was just too hard for me. When I read code using a framework I've never seen before, usually I can still kind of tell what it does. It might be my own stupidity, but when I read Django code I have no clue what it does.

I did consider Flask, which is much more similar to web.py, but eventually chose web.py because I was a fan of Aaron Swartz' work at the time.

<comment><USER16> I know one of the main developers on Flask. He's an exceptional fellow and extremely talented. I havent used the framework before but I hear it's highly recommendable in general.

</comment></comment></comment><comment><USER26> This is ballsy but cool. Being a full stack business guy, full stack developer, and someone who had done years of freelance in the past, I'd be afraid of the scope creep and complexity issues that are going to rear their head. But more power to you for choosing to try to tackle them, I hope you end up on top.

</comment><comment><USER27> I dunno... It seems to me that there's a lot more to creating a minimum _viable_ product than simply building a python web app for X amount of money -- especially without knowing the specs in advance.

Good means to advertize your site on HN, though. ;-)

</comment><comment><USER28> I have a feeling you'll be inundated, but I'll be reaching out to you shortly.

</comment><comment><USER12> Maybe you can roll the numbers up a digit for each successive job…

Having done "MVP" work before, I wouldn't undervalue your work like this for to long or you'll be facing burnout quickly.

<comment><AUTHOR> Hm, I'm hearing that a lot. Is $2,345 really that little? I've been living near the poverty line by choice, and $2,345 lasts me about two months.

In either case, I guess it would turn off half the visitors if I just changed the price right now.

<comment><USER29> Yes, it's too little. Remember patio11's advice: you are not charging what the work or time is worth it TO YOU, you are charging what your output is worth it TO YOUR CUSTOMER :)

Also, having a starting price in the 10k+ range will help weed out bad apple customers. Trust us when we say that you want fewer high quality customers than a lot of pain-in-the-neck customers. Finally, charge 1/4th upfront like another poster said so you don't get screwed.

<comment><USER30> Having a starting price in the $10k range also weeds him out. In my market (Austin), if I have $10k for a prototype (even half that) I can throw a cat and hit a Ruby guy, a Python guy, a PHP guy, etc. The price as he has it is low enough that people with "an idea" might take the plunge to get a prototype going.

If I were to have one suggestion it would be for his site to spell out some parameters about what a prototype is so there are no later arguments.

</comment></comment></comment></comment><comment><USER31> I'd be interested in this type of arrangement for a node.js dev who could do some Bitcoin work.

</comment><comment><USER15> Hey, I remember you from robot game.

Wish you the best with this new venture.

<comment><AUTHOR> Thanks :) Is anyone still playing that?

<comment><USER15> 136 weekly active robots

[http://robotgame.net/stats](http://robotgame.net/stats)

</comment></comment></comment><comment><USER32> The link 404'd for me

EDIT: Working now

</comment><comment><USER23> Your fee is too low. It turns out to around 35 000usd per year. Before taxes.

Thats probably lower than a cleaning man is selling his time for.

Oh well, I guess you get what you pay for. No offense, but seriously.

<comment><AUTHOR> Hm, I _was_ considering going from "$2,345 for 3 weeks" to "$2,345 per week, up to 3 weeks." But the fee right now isn't as low as it seems; I was planning on taking projects in parallel.

</comment></comment><comment><USER33> Good Idea. But your own website looks little lame. Hope you update it soon.

<comment><USER34> "Cobbler's children have no shoes."[0]

Busy consultants and developers rarely have the time to work on their own site.

[0] [http://en.wikipedia.org/wiki/Shoemaking#In_popular_culture](http://en.wikipedia.org/wiki/Shoemaking#In_popular_culture)

<comment><USER35> But if your business is developing web sites, your own web site is a strong signal to your potential customers about the quality of work that you do.</comment></comment></comment>


Show HN: I built my first CocoaPod (iOS) – would love feedback - <AUTHOR> https://github.com/mbrenman/MBSimpleLoadingIndicator

<comment><AUTHOR> I made an animated, customizable loading indicator as my first cocoapod. It allows you to give an actual percentage instead of just a spinning wheel, which I wanted for a project I'm working on as well as control over colors, sizes, styles, and more. I also wanted the experience of making a pod. Please let me know what you think, and contributions are definitely welcome!

Thanks for taking a look!

</comment><comment><USER2> Cool, nice documentation. I had to make something like this for my last app because I didn't like what was out there.</comment>


Ask HN: Finding {web,interaction} designers? - <AUTHOR>

I'm trying to finish up a side project while employed at BigCo & want to make sure the site is gorgeous upon launch.  What resources are out there for hackers like me to find designers that do amazing work?  Is there a directory of portfolios out there for me to look through?<p>Thanks! <comment><USER2> There are plenty of portfolio sites online, Forrst and the two mentioned below. This is a good article from my friend Wells:

[http://www.wellsriley.com/blog/2012/startup-looking-for-a- de...](http://www.wellsriley.com/blog/2012/startup-looking-for-a-designer- here-are-some-resources-you-didnt-know-existed/)

The important thing is to know exactly what you're looking for, make the deliverables perfectly clear and keep your budget in mind.

Cheers, Hong

</comment><comment><USER3> you can always try <http://behance.com> and <http://dribbble.com>

and some shameless self promotion > <http://www.behance.net/aleximejias> (still being updated)</comment>


Show HN: Kitten – Tiny multi-server automation tool - <AUTHOR> https://github.com/hoffa/kitten <comment><USER2> Great project!

Maybe the project description/post title could be more specific about it being an AWS tool.

</comment><comment><USER3> An infrastructure tool that starts with a k, but doesn't use kubernetes is a rare sight.

</comment><comment><USER4> This is a neat project!

I also saw this posted a couple of weeks ago and it has become a go to tool for a lot of AWS work: [http://awless.io/](http://awless.io/)

</comment><comment><USER5> I'm confused. How does `kitten` know what ssh key to use to run a remote command?

Can you use `kitten` to get a list of known ec2 hosts?

Why would I want to use `kitten` instead of the standard aws cli tools?

<comment><AUTHOR> Key discovery is similar to tools such as ssh (i.e. SSH agent, ~/.ssh/id_rsa, etc.), and can be specified with -i if necessary.

Haven't added any way to get all hosts. If it's a reasonably common use case will do.

You can use awscli to retrieve IPs if you prefer. Kitten just makes it all short and straightforward without having to worry about things such as pagination and the inconsistent AWS result format. It also allows you to easily work on a set of IPs with minimum friction. Not trying to replace Ansible, it's more of a simple tool for quick multi-host touches.

</comment></comment><comment><USER6> Awesome!

I once built something similar using shell scripts and tmux, but it was pretty janky. This looks like a much better version of that.

</comment><comment><USER7> This is very handy, already started using, thanks!

</comment><comment><USER8> this looks very useful ..and very forkable</comment>


Ask HN: Do you know any mainstream web site/service hosted solely on IPv6? - <AUTHOR> <comment><USER2> Even among the top websites, there are a _lot_ of them that don't even do dual stack. Let alone IPv6 only. (e.g. Twitter)

Also, only using IPv6 is cutting out 75% of the world population, according to Google. [https://www.google.com/intl/en/ipv6/statistics.html](https://www.google.com/intl/en/ipv6/statistics.html)

However, public-facing dual stack but internal IPv6 only is done at e.g. Facebook IIRC (see [https://code.fb.com/?s=ipv6](https://code.fb.com/?s=ipv6))</comment>


Is tipping on the rise or decline? - <AUTHOR>

With new mobile apps like TipEasy.com 's Android and iPhone apps allowing people to sign up to receive cashless tips- will the $40 billion dollar gratuity economy increase or decrease in 2015? <comment><USER2> I think a mobil solution to tipping is a great idea. I know I can speak for the majority of the younger population in regards to never having cash. There is no reason to have cash anymore. I can pay for everything with my card or through my phone.

</comment><comment><USER3> I don't know, but just the other day I asked a barista if he had a way for me to put his tip on my Starbucks card. It doesn't provide a way to do that.

So now when I use my card, I give them a cash tip. They're surprised at that.

I don't generally use cards but sometimes I receive them as gifts.</comment>


Interns Are Latest Target In Battle for Tech Talent - <AUTHOR> http://online.wsj.com/article/SB10001424052970204879004577108672160430712.html

<comment><USER2> "There's no shortage of smart, hardworking engineers. There's a shortage of smart hardworking engineers willing to work for very little money." ~ David "Pardo" Keppel</comment>