hacker news with inline top comments    .. more ..    23 Jun 2016 Ask
home   ask   best   3 years ago   
Alan Kay has agreed to do an AMA today
1332 points by alankay1  2 days ago   814 comments top 210
dang 8 hours ago 2 replies      
This is one of the best threads HN has ever seen and we couldn't be more thrilled to have had such an interesting and wide-ranging discussion happen here. I know I'm not the only one who will be going back over the wealth of insights, ideas, and pointers here in the weeks to come.

Alan, a huge and heartfelt thanks from all of us. The quality and quantity (nearly 250 posts!) of what you shared with the community surpassed everyone's expectation from the outset, and just kept going. What an amazing gift! Thanks for giving us such a rich opportunity to learn.

(All are welcome to continue the discussion as appropriate but the AMA part is officially done now.)

guelo 2 days ago 1 reply      
When you were envisioning today's computers in the 70s you seemed to have been focused mostly on the educational benefits but it turns out that these devices are even better for entertainment to the point were they are dangerously addictive and steal time away from education. Do you have any thoughts on interfaces that guide the brain away from its worst impulses and towards more productive uses?
di 2 days ago 5 replies      
Hi Alan,

In "The Power of the Context" (2004) you wrote:

 ...In programming there is a wide-spread 1st order theory that one shouldnt build ones own tools, languages, and especially operating systems. This is truean incredible amount of time and energy has gone down these ratholes. On the 2nd hand, if you can build your own tools, languages and operating systems, then you absolutely should because the leverage that can be obtained (and often the time not wasted in trying to fix other peoples not quite right tools) can be incredible.
I love this quote because it justifies a DIY attitude of experimentation and reverse engineering, etc., that generally I think we could use more of.

However, more often than not, I find the sentiment paralyzing. There's so much that one could probably learn to build themselves, but as things become more and more complex, one has to be able to make a rational tradeoff between spending the time and energy in the rathole, or not. I can't spend all day rebuilding everything I can simply because I can.

My question is: how does one decide when to DIY, and when to use what's already been built?

satysin 2 days ago 2 replies      
Hi Alan,

I have three questions -

1. If you were to design a new programming paradigm today using what we have learnt about OOP what would it be?

2. With VR and AR (Hololens) becoming a reality (heh) how do you see user interfaces changing to work better with these systems? What new things need to be invented or rethought?

3. I also worked at Xerox for a number of years although not at PARC. I was always frustrated by their attitude to new ideas and lack of interest in new technologies until everyone else was doing it. Obviously businesses change over time and it has been a long time since Xerox were a technology leader. If you could pick your best and worst memories from Xerox what would they be?

Cheers for your time and all your amazing work over the years :)

ianbicking 2 days ago 1 reply      
1. After Engelbart's group disbanded it seemed like he ended up in the wilderness for a long time, and focused his attention on management. I'll project onto him and would guess that he felt more constrained by his social or economic context than he was by technology, that he envisioned possibilities that were unattainable for reasons that weren't technical. I'm curious if you do or have felt the same way, and if have any intuitions about how to approach those problems.

2. What are your opinions on Worse Is Better (https://www.dreamsongs.com/RiseOfWorseIsBetter.html)? It seems to me like you pursue the diamond-like jewel, but maybe that's not how you see it. (Just noticed you answered this: https://news.ycombinator.com/item?id=11940276)

3. I've found the Situated Learning perspective interesting (https://en.wikipedia.org/wiki/Situated_learning). At least I think about it when I feel grumpy about all the young kids and Node.js, and I genuinely like that they are excited about what they are doing, but it seems like they are on a mission to rediscover EVERYTHING, one technology and one long discussion at a time. But they are a community of learning, and maybe everyone (or every community) does have to do that if they are to apply creativity and take ownership over the next step. Is there a better way?

sebastianconcpt 2 days ago 1 reply      
Hi Alan,

1. what do you think about the hardware we are using as foundation of computing today? I remember you mentioning about how cool was the architecture of the Burroughs B5000 [1] being prepared to run on the metal the higher level programming languages. What do hardware vendors should do to make hardware that is more friendly to higher level programming? Would that help us to be less depending on VM's while still enjoying silicon kind of performance?

2. What software technologies do you feel we're missing?

[1] https://en.wikipedia.org/wiki/Burroughs_large_systems

losvedir 2 days ago 7 replies      
At my office a lot of the non-programmers (marketers, finance people, customer support, etc) write a fair bit of SQL. I've often wondered what it is about SQL that allows them to get over their fear of programming, since they would never drop into ruby or a "real" programming language. Things I've considered:

 * Graphical programming environment (they run the queries from pgadmin, or Postico, or some app like that) * Instant feedback - run the query get useful results * Compilation step with some type safety - will complain if their query is malformed * Are tables a "natural" way to think about data for humans? * Job relevance
Any ideas? Can we learn from that example to make real programming environments that are more "cross functional" in that more people in a company are willing to use them?

IsaacL 2 days ago 3 replies      
What do you think of Bret Victor's work? (http://worrydream.com/) Or Rich Hickey?

Who do you think are the people doing the most interesting work in user interface design today?

LeicesterCity 2 days ago 2 replies      
Hi Alan,

Previously you've mentioned the "Oxbridge approach" to reading, whereby--if my recollection is correct--you take four topics and delve into them as much as possible. Could you elaborate on this approach (I've searched the internet, couldn't find anything)? And do you think this structured approach has more benefits than, say, a non-structured approach of reading whatever of interest?

Thanks for your time and generosity, Alan!

edwintorok 2 days ago 1 reply      
Hi, I have a few questions about your STEPS project:

- Is there a project that is the continuation of the STEPS project?

- What is your opinion of the Elm language?

- How do you envision all the good research from the STEPS model could be used for building practical systems?

- STEPS focused on personal computing, do you have a vision on how something similar could be done for server-side programming?

- Where can I find all the source code for the Frank system and the DSLs described in the STEPS report?

fogus 1 day ago 2 replies      
I can think of no better person to ask than Alan Kay:

What are the best books relevant to programming that have nothing to do with programming? (e.g. How Buildings Learn, Living Systems, etc.)?

coldtea 2 days ago 1 reply      
Hi Alan,

On the "worse is better" divide I've always considered you as someone standing near the "better" (MIT) approach, but with an understanding of the pragmatics inherent in the "worse is better" (New Jersey) approach too.

What is your actual position on the "worse is better" dichotomy?

Do you believe it is real, and if so, can there be a third alternative that combines elements from both sides?

And if not, are we always doomed (due to market forces, programming as "popular culture" etc) to have sub-par tools from what can be theoretically achieved?

alankay1 2 days ago 4 replies      
-- I was surprised that the HN list page didn't automatically refresh in my browser (seems as though it should be live and not have to be prompted ...)
testmonkey 2 days ago 0 replies      
Jaron Lanier mentioned you as part of the, "humanistic thread within computing." I understood him to mean folks who have a much broader appreciation of human experience than the average technologist.

Who are "humanistic technologists" you admire? Critics, artists, experimenters, even trolls... Which especially creative technologists inspire you?

I imagine people like Jonathan Harris, Ze Frank, Jaron Lanier, Ben Huh, danah boyd, Sherry Turkle, Douglas Engelbart, Douglas Rushkoff, etc....

jarmitage 2 days ago 1 reply      
Hi Alan,

What advice would you give to those who don't have a HARC to call their own? what would you do to get set up/a community/funding for your adventure if you were starting out today? What advice do you have for those who are currently in an industrial/academic institution who seek the true intellectual freedom you have found? Is it just luck?!

germinalphrase 2 days ago 1 reply      
Hi Alan,

As a high school teacher, I often find that discussions of technology in education diminish 'education' to curricular and assessment documentation and planning; however, these artifacts are only a small element of what is, fundamentally, a social process of discussion and progressive knowledge building.

If the real work and progress with my students comes from our intellectual both-and-forth (rather than static documentation of pre-exhibiting knowledge), are there tools I can look to that have been/will be created to empower and enrich this kind of in situ interaction?

nostrademons 2 days ago 1 reply      
What turning points in the history of computing (products that won in the marketplace, inventions that were ignored, technical decisions where the individual/company/committee could've explored a different alternative, etc.) do you wish had gone another way?
fchopin 2 days ago 3 replies      
Hi, Alan!

Like many here, I'm a big fan of what you've accomplished in life, and we all owe you a great debt for the great designs and features of technologies we use everyday!

The majority of us have not accomplished as much in technology, and many of us, though a minority, are in the top end of the age bell curve. I'm in that top end.

I've found over the years that I've gone from being frustrated with the churn of software/web development, to completely apathetic about it, to wanting something else- something more meaningful, and then to somewhat of an acceptance that I'm lucky just to be employed and making what I do as an older developer.

I find it very difficult to have the time and energy to focus on new technologies that come out all of the time, and less and less able as my brain perhaps is less plastic to really get into the latest JavaScript framework, etc.

I don't get excited anymore, don't have the motivation, ability, or time to keep up with things like the younger folk. Also, I've even gotten tired of mentoring them, especially as I become less able and therefore less respected.

Have you ever had or known someone that had similar feelings of futility or a serious slowdown in their career? If so, what worked/what didn't and what advice could you provide?

Thank you for taking the time to read and respond to everyone you have here. It definitely is much appreciated!

16bytes 2 days ago 1 reply      
Hi Alan,

I'm preparing a presentation on how to build a mental model of computing by learning different computer languages. It would be great to include some of your feedback.

* What programming language maps most closely to the way that you think?

* What concept would you reify into a popular language such that it would more closely fit that mapping?

* What one existing reified language feature do you find impacts the way you write code the most, especially even in languages where it is not available?

CharlesMerriam2 2 days ago 3 replies      
Many mainstream programming tools feel to be moving backwards. For example, Saber-C of the 1980s allowed hot-editing without restarting processes and graphical data structures. Similarly, the ability to experiment with collections of code before assembling them into a function was advance.

Do you hold much hope for our development environments helping us think?

trsohmers 2 days ago 1 reply      
Hi Alan,

We met at a retreat last fall, and it was a real treat for me to hear some fantastic stories/anecdotes about the last 50 years of computing (which I have only been directly involved with for about 1/10th of). Another one of my computing heroes is Seymour Cray, which we talked about a bit and your time at Chippewa Falls. While a lot of HN'ers know about you talking about the Burroughs B5000, I (and I bet most others) would have had no idea that you got to work with Seymour on the CDC 6600. DO you have any particular Seymour Cray/6600 stories that you think would be of interest to the crowd?

Thanks again for doing this, and I hope to be able to talk again soon!

kartD 2 days ago 1 reply      
Hi Alan, What do think about the current state of language design (Swift, Rust, Go)? Anything that makes you happy/annoys you?
discreteevent 2 days ago 1 reply      
Hi Alan,

A lot of the VPRI work involved inventing new languages (DSLs). The results were extremely impressive but there were some extremely impressive people inventing the languages. Do you think this is a practical approach for everyday programmers? You have also recommended before that there should be clear separation between meta model and model. Should there be something similar to discipline a codebase where people are inventing their own languages? Or should just e.g. OS writers invent the languages and everyone else use a lingua franca?

erring 1 day ago 1 reply      
In a recent talk, Ivan Sutherland spoke in the lines of, Imagine that the hardware we used today had time as a first-class concept. What would computing be like? [1]

To expand on Sutherland's point: Today's hardware does not concern itself with reflecting the realities of programming. The Commodore Amiga, which had a blitter chip that enabled high-speed bitmap writes with straightforward software implementation, brought about a whole new level in game programming. Lisp machines, running Lisp in silicon, famously enabled an incredibly powerful production environment. Evidence is mounting that the fundamental concepts we need for a new computing have to be ingrained in silicon, and programmers, saved from the useless toil of reimplementing the essentials, should be comfortable working in the (much higher and simpler) hardware level. Today, instead of striving for better infrastructure of this sort, we are toiling away at building bits of the perpetually rotting superstructure in slightly better ways.

The more radical voices in computer architecture and language design keep asserting in their various ways that a paradigm shift in how we do infrastructure will have to involve starting over with computing as we know it. Do you agree? Is it impossible to have time as a first-class concept in computing with anything short of a whole new system of computing, complete with a fundamentally new hardware design, programming environment and supporting pedagogy? Or can we get there by piling up better abstractions on top of the von Neumann baggage?

[1] This is from memory. Apologies for a possible misquotation, and corrections most welcome.

nnq 1 day ago 1 reply      
Hi Alan, the question that troubles me now and I want to ask you is:

Why do you think there is always a difference between:

A. the people who know best how something should be done, and

B. the people who end up doing it in a practical and economically-successful or popular way?

And should we educate our children or develop our businesses in ways that could encourage both practicality and invention? (do you think it's possible?). Or would the two tendencies cancel each other out and you'll end up with mediocre children and underperforming businesses, so the right thing to do is to pick one side and develop it at the expense of the other?

(The "two camps" are clearly obvious in the space of programming language design and UI design (imho it's the same thing: programming languages are just "UIs between programmers and machines"), as you well know and said, with one group of people (you among them) having the right ideas of what OOP and UIs should be like, and one people inventing the technologies with success in industry like C++ and Java. But the pattern is happening at all levels, even business: the people with the best business ideas are almost never the ones who end up doing things and so things get done in a "partially wrong" way most of the time, although we have the information to "do it right".)

logicallee 2 days ago 2 replies      
1. What do you wish someone would ask you so that you could finally share your thoughts, but nobody has broached as a subject?

2. (This question is about interactive coding, as a dialogue).

Human dialogs (conversations) are interactive. I think in the past computers were limited, and computer languages had to be very small (as compared with any human language + culture) so that a programmer could learn what the computer could do. But now that services can be connected (programming as a service?), would it make sense to have a dialogue? My example is that in the 1980s it wouldn't have made sense for any programming language to have a function called double() that just multiplies by 2. There's * 2 for that.

But in 2016, it makes sense for a beginner to write "and double it" and considerably less sense for a beginner to have to learn x *= 2 if they wanted to double a number.

Human language is also ambiguous. It would make sense for an interactive language to ask:

"Did you mean, set x equal to x multiplied by 2?" which most people would select, but maybe someone would select

"Did you mean, set x equal to the string "x" appended to the string "x"?"

For these reasons: do you think it would make sense to have an interactive programming language that is connected with a server you "talk" with interactively?

Or should programmers still have to learn a fixed programming language that has no room for interpretation, but instead a strict meaning.

Among other things, this means programmers can never write "it", "that", "which" to refer to a previous thing (since the referent could be ambiguous if the compiler doesn't confirm.) But every human language includes such shorthand.

I'd love to hear your thoughts regarding a connected, interactive programming process similar to the above (or just on whatever lines).

emaringolo 2 days ago 1 reply      
Do you still see an advantage of using Smalltalk (like Squeak/Pharo) as a general purpose language/tool to build software or do you think that most of its original ideas were somehow "taken" by other alternatives?
asymmetric 2 days ago 0 replies      
Do you agree with the POV that sees Erlang as implementing some of the core tenets of OOP, namely message passing and encapsulation of state? (Cfr. for example http://tech.noredink.com/post/142689001488/the-most-object-o...)
tlack 2 days ago 1 reply      
Have you spent any time studying machine learning and how it might affect the fundamental ways we program computers? Any thoughts on how the tooling of machine learning (TensorFlow, ad hoc processes, etc) could be improved?
ducklord 2 days ago 2 replies      
Hey Alan, you once said that lisp is the greatest single programming language ever designed. Recently, with all the emergence of statically typed languages like Haskell and Scala, has that changed? Why do you think after being around for so long, lisp isn't as popular as mainstream languages like Java, C or Python? And lastly, what are your thoughts on MIT's switch to use Python instead of Scheme to teach their undergraduate CS program?
ontouchstart 2 days ago 1 reply      
Hi Alan,

We know you are not a big fan of web. Regardless how we got here, what is your view on how we should address the real world decentralization problems in the context of http://www.decentralizedweb.net/ ?

_mhr_ 2 days ago 0 replies      
What is HARC currently working on? Is it for now a continuation of the old CDG Labs / VPRI projects or are there already new projects planned / underway?

Also, how do you organize and record your ideas? Pen and paper? Some kind of software? What system do you use? I ask because I'm fascinated by the idea of software that aids in thought, collaboration, and programming - meshing them all together.

I've seen elsewhere (https://news.ycombinator.com/item?id=11940007) that you agreed that many mainstream "paradigms" should be "retired". Retiring implies that you replace. In particular, I'm curious what you would like to see filesystems or the Unix terminal replaced with?

wdanilo 2 days ago 2 replies      
Hi Alan!I've got some assumptions regarding the upcoming big paradigm shift (and I believe it will happen sooner than later):

1. focus on data processing rather than imperative way of thinking (esp. functional programming)

2. abstraction over parallelism and distributed systems

3. interactive collaboration between developers

4. development accessible to a much broader audience, especially to domain experts, without sacrificing power users

In fact the startup I'm working in aims exactly in this direction. We have created a purely functional visual<->textual language Luna ( http://www.luna-lang.org ).

By visual<->textual I mean that you can always switch between code, graph and vice versa.

What do you think about these assumptions?

adamnemecek 2 days ago 0 replies      
What are some opinions (CS related or not) that you completely changed your mind on?
panic 2 days ago 1 reply      
Hi Alan,

There's a lot of economic pressure against building new systems. Making new hardware and software takes longer than building on the existing stuff. As time goes on, it gets harder and harder to match the features of the existing systems (imagine the effort involved in reimplementing a web browser from scratch in a new system, for example), not to mention the massive cost benefits of manufacturing hardware at a large scale.

Many people working in software realize the systems they use are broken, but the economics discourage people from trying to fix them. Is it possible to fix the economics? Or maybe we need more people able to resist this pressure?

walterbell 2 days ago 0 replies      
Do you see further research paths for metacompilers [1] to reduce code and enable customizable user interfaces?

With containers and hypervisors now in desktop OSes (Windows, Mac OS, Linux), could an open-source research OS (e.g. KSWorld) be packaged for developers and end-users who want to test your team's experimental UIs?

Is there long-term value in "private machine learning" where some data and algos are focused on user/owner interests, with "public machine learning" providing variably-trusted signals to user-owned algos for intelligence augmentation?

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

defvar 2 days ago 1 reply      
Hi Alan, do you still do coding (any kind of, for any purpose) these days? If you do, what's your comfortable setup (say, language, editor, tools and etc)?
iyn 2 days ago 1 reply      
Thanks for doing this AMA.

Q: How do you think we can improve todays world (not just with technology)? What do you think is our species way forward? How as a civilization can we 'get to higher level'? Specifically, I'm interested in your views on ending poverty, suffering, not destroying the Earth, improving our political and social systems, improving education etc. I understand that these are very broad topics without definitive answers but I'd love to hear some of your thought about these.

Thank you and I just want to mention that I appreciate your work.

torstenB 2 days ago 1 reply      
Beside objects one true revolutionary idea in Smalltalk is the uniformity of meta facilities - an object knowing about itself and being able to tell you.

I see so many dev resources burnt just because people build boring UIs or persistence bindings by wiring MANUALLY in traditional languages. All this is a no-brainer when enough meta infos (objects and relations) are available and a program is reflected as data as in Smalltalk (not dead text). You can not only transform data but also your code. Pharo now makes some more additonal steps to enhance reflection (metalinks, slots, etc).

What do you see as next steps in using metadata/-infos for (meta)programming ...

pizza 2 days ago 1 reply      
Hi Alan, how do you think that object-oriented programming and distributed computing will intertwine in the not-so-far future?
siteshwar 2 days ago 1 reply      
Hi Alan,

You have an interesting reading list at http://www.squeakland.org/resources/books/readingList.jsp. However it seems that it was created long time back. Are there any other books that you would like to add to this list ?

tmerr 1 day ago 1 reply      
Hi Alan,

I watched an OOPSLA talk where you described how tapes were used when you were in the air force. The tape readers were simple because they stupidly followed instructions on the tapes themselves to access the data. You seemed to like this arrangement better than what we have with web browsers and html, where the browser is assumed to know everything about the format. One way to interpret this is that we should have something more minimal like a bytecode format for the web, in place of html.

So I'm interested on your take: Is WebAssembly a step in the right direction for the web? (Although it's not meant as a replacement for html, maybe it will displace it over time).

snowwrestler 2 days ago 4 replies      
I recall reading an article about 10 years ago describing a PARC research project in which networked computers with antennae were placed throughout a set of rooms, and the subject carried a small transmitter with them from room to room. As the computer in each room detected the transmitter, it triggered actions in each room. I think it was called "ambient computing."

Does this ring a bell for you? I have searched for this article recently and not been able to find it again.

diiq 2 days ago 1 reply      
As a community, we often think on quite short time-scales ("What can we build right now, for users right now, to make money asap?"). I feel like you've always been good at stepping back, and taking a longer view.

So what should a designer or a developer be doing now, to make things better in 10 years, or 100 years?

throwathrowaway 21 hours ago 0 replies      
Is there any instructions for getting the Frank system (that you show off at talk) on a Linux computer? Even instructions with some missing steps to be filled in. It would beat recreating things from scratch from glimpses.

I find it much easier to explore with a concrete copies that can be queried with inputs and outputs, even if they are far from their platonic ideals. For example, the Ometa interpreter I wrote recently was much easier to make by bootstrapping the creation of an initial tree from the output of an existing implementations of Ometa.

psibi 2 days ago 1 reply      
What do you think about functional languages like Haskell, OCaml etc ?
kens 2 days ago 1 reply      
Looking at your 1972 Dynabook paper [1], would you make any changes to the Dynabook vision now? Also, what do you see as the biggest missing pieces (software or hardware) today? What current software gets closest to the vision?

[1] Everyone should really take a look at the Dynabook paper: http://history-computer.com/Library/Kay72.pdf

miguelrochefort 2 days ago 1 reply      
Do you believe that the gap between consuming software and creating software will disappear at some point? That is, do you expect we will soon see some homoiconic software environment where the interface for using software is the same as the interface for creating it?

I feel like the current application paradigm cannot scale, and will only lead to further fragmentation. We all have 100+ different accounts, and 100+ different apps, none of which can interact with each other. Most people seem to think that AI will solve this, and make natural languages the main interface to AI, but I don't buy it. Speech seem so antiquated in comparison to what can be achieved through other senses (including sight and touch). How do you imagine humans will interact with future computer systems?

brogrammer6431 2 days ago 1 reply      
I remember a few weeks back, you said that you wanted to take a closer look at the Urbit project (www.urbit.org). Just wondering if you had gotten the chance to do so, and, if so, what your thoughts were.
unimpressive 2 days ago 1 reply      
Hi Alan,

One of the concepts I've heard you talk about before in interviews and the like is simulation. I think simulation is huge and we should be seeing products that cater towards it, but largely aren't.



Do you still think simulation is an important promise of the computer revolution, and are there any products you know of or ideas you have that are/would be a step in the right direction?

agumonkey 2 days ago 0 replies      
Hi Sir Kay,

How do you feel about the role of computing technology in society today ? is it still important or should be work on other domains (education, medicine, ecology, and the industrial tissue that is our interface to reality nowadays).

While I'm at it, just did a MOOC about Pharo (~ex squeak) and ST was indeed a very interesting take on OO (if I may say so ;). So thanks for you and your teammates work along the years (from ST to STEPS).

qwertyuiop924 2 days ago 1 reply      
Hey Alan,

You seem very disapointed and upset with the way computing has gone in the last decade. Speaking as a younger (15) and more satisfied (I still think the UNIX abstraction is pretty solid, despite what others may say) programmer, how do you not get depressed about the way technology is going?

Also, what do you propose to eliminate the "re-inventing the flat tire" problem? Should every programmer be forced through a decade of learning all of the significant abstractions, ideas, and paradigms of the last 50 years before they write anything? Because I don't see another solution.

oooooppmba 2 days ago 1 reply      
What is your one piece of advice to college students studying CS?
s800 2 days ago 1 reply      
Any conventional paradigms that you'd like to see retired? FS, Unix, signalling/messaging, etc.?
dookahku 2 days ago 2 replies      
You invented a lot of what I'm using this very instant to compose this message.

I yearn to do great works of engineering and art, which I consider what you have done.

How do you come up with ideas?

pascient 1 day ago 0 replies      
Hi Alan,

You mentioned Bob Barton's lecture a few times [1], emphasizing the role he played in debunking some of your (and his own) ideas about computing. Could you touch on some dogmas that haven't yet been evoked in this thread or in your videos on YouTube ? Either from the 70's or today. Let me link to Ted Nelson's remarks about the tradition of files/lumps [2] for a start.

Bullet-point may not be the ideal form for an answer but feel free to get away with that :)

[1] https://www.youtube.com/watch?v=YyIQKBzIuBY&t=7m39s

[2] https://youtu.be/c_KbLKm89pU?t=1m46s

fcc3 1 day ago 1 reply      
[Earlier](https://news.ycombinator.com/item?id=11945254) you mention "good models of processes" and [elsewhere](https://news.ycombinator.com/item?id=11940688) about model building. Which models have been the best for you? Have you read [Robin Milner](http://www.cl.cam.ac.uk/archive/rm135/Bigraphs-draft.pdf)? Do you consider his work to be a good foundation for processes? If not, who do you consider to give a good foundation?
Bystroushaak 2 days ago 1 reply      
I have two questions:

1. It is known that you read a lot. Do you plan to write a book? You have been a big inspiration for me and I would love to read a book from you.

2. What is your opinion about Self programming language (http://www.selflanguage.org)? I've read STEPS Toward The Reinvention of Programming pdf and this feels related, especially to with the Klein interpreter (http://kleinvm.sourceforge.net/).

spamfilter247 2 days ago 1 reply      
Hi Alan. What are your thoughts on how rapidly GUIs are evolving nowadays? Many apps/services revamp their UI fairly often and this oftentimes hurts muscle memory for people who have just about gotten a workflow routine figured out.

Also, what big UI changes do you foresee in the next 10 years - or would like to see. Thanks.

gnocchi 2 days ago 1 reply      
Hi Alan,

I'm part of a generation who didn't grew up with the PDP but had LOGO and basic available in computers and calculators.With the Amstrad CPC it was possible to interupt a program and to change a few lines of code to make it do something else which was a great way to keep interested. And with calculator it was possible to code formulas to resolve/check problems.

But how would you teach programming today to a kid?Would you choose a particular medium such as a computer, a raspberry pi or even a tablet?

And if I may, do you recommend any reading for bedtime stories?

Thanks you, Kevin

filleokus 2 days ago 1 reply      
Do you believe everyone should be thought, or exposed to, programming in school? I'm afraid that universal inclusion of programming in the curriculum would have an opposite effect and make the next generation despise programming, in the same way some people feel about math today.
auggierose 2 days ago 0 replies      
Hi Alan,

what do you think about interactive theorem proving (ITP)? Assuming that you are aware of it, is it something that you have tried? If yes, how was your experience, and which system did you try? If no, why not? What do you think about ITP's role in the grander scheme of things?

pdog 2 days ago 1 reply      

Computers have been a part of education in the United States for several decades, but you've argued that technology isn't used to its full potential.

1. Why has technology in schools failed to make an impact?

2. How would you design a curriculum for your children that uses technology effectively today?

shkaboinka 1 day ago 1 reply      
I've seen similarities between your work (OOP) and that of Christopher Alexander (Patterns).

Do you have anything to say about how your/his works tie together?

(Note that Alexander's work is perhaps even more misrepresented in software than OOP has come to be).

For example, he talks a lot about how anything that is to evolve naturally, or even properly serve the human component, must be composed of living structure.

video of C.A. addressing the software community's (mis-)application of his work at OOPSLA:https://youtu.be/98LdFA-_zfA

anildigital 2 days ago 1 reply      
Do you think Java is an Object Oriented programming language?
vainguard 2 days ago 1 reply      
How important is finding the right language?
testmonkey 2 days ago 1 reply      
What do you think about a "digital Sabbath," [1] specifically in the context of touchstones like:

Engelbart's Augmenting Human Intellect [2]Edge's annual question, How is the Internet Changing the Way you Think? [3]Carr's Is Google Making Us Stupid? [4]...and other common criticisms of "information overload"

[1] http://www.sabbathmanifesto.org/[2] http://www.dougengelbart.org/pubs/augment-3906.html[3] https://www.edge.org/annual-question/how-is-the-internet-cha...[4] http://www.theatlantic.com/magazine/archive/2008/07/is-googl...

stuque 2 days ago 1 reply      
What language do you think we should teach first to computing major students these days? What about non-major students?
juliangamble 1 day ago 1 reply      
Hi Alan,

My understanding was that you were there at the keynote where Steve Jobs launched the iPad. From what we've heard Steve came up to you after the event and asked you what you thought (implicitly acknowledging your work on the Dynabook).

Subsequent interviews suggested you thought that the iOS range of products "were the first computers good enough to criticise".

My question is: what has to happen next for the iPad to start achieving what you wanted to do with the Dynabook?

0xdeadbeefbabe 2 days ago 1 reply      
Well what is thinking about then? What was the mistake the greeks made? In this video[0] you said thinking is not about logic and that was the mistake the greeks made.

[0] https://youtu.be/N9c7_8Gp7gI?t=45m45s

ldargin 2 days ago 1 reply      
What do you think of Chris Crawford's work on Interactive Storytelling? His latest iteration is "Siboot" http://siboot.org/

Note: He mentions being inspired for that from discussions with you at Atari.

compute_me 1 day ago 1 reply      
Since you care about education so deeply, but also seem to be critical of a lot of recent technological developments that appear to be more accessible than some of the systems / approaches we had in the past:Do you think that it is a reasonable path to embrace technologies with shortcomings, and perhaps even to utilize a reduction in expressiveness of UIs, such as hiding the ability to multitask, or to employ the power of games to "draw us in [and keep us spellbound]" (where [this] part may be a danger), if this can form points of entry for young people who may otherwise not have found their way into technology (think smartphones in rural areas without reliable other means to guarantee access to information to large numbers of people; e.g. lack of mentors and role models), or would it be more promising to rather focus on developing alternative means for "on-boarding"?
paulsutter 2 days ago 0 replies      
Alan, what is your view of deep/machine learning as an approach to programming? The Deepmind Atari player is only 1500 lines of code, because the system learns most of the the if/thens. Software is eating the world, but will learning (eventually) eat the software?
mempko 2 days ago 1 reply      

You have inspired me deeply, thank you. I love working with man's greatest invention, but I have a deep sense of dread. HN is very good about projecting a fantasy about the future, that technology can solve all problems. I would love to see a world where people use computers to compute. However, global warming is a real threat and my biggest fear is that our pop-culture will prevent us from solving our problems before the chance to solve them is taken away from us.

With such a huge threat to humanity on the horizon, do you maintain a sense of optimism here? Or will humanity forget how to "compute" the same way Europeans forgot how to make Roman concrete?

kgr 1 day ago 1 reply      
Hi Alan,

In your paper "A Personal Computer for Children of All Ages", where you introduce the concept of the DynaBook, you explicitly say that the paper should be read as a work of science fiction. I understand that you're a big fan of science fiction. Do you draw any inspiration from science fiction when inventing the future?



Related: I've given a talk on "What Computer Scientists can Learn From Science Fiction":


jfaucett 2 days ago 1 reply      
Hi Alan,

Do you think we'll ever have a programming language that isn't fully text based and gets closer to a direct mapping of our own thoughts than current systems? If so any ideas what properties this language would have?

kirkdouglas 2 days ago 0 replies      
What are you working on now?
diiq 2 days ago 1 reply      
How do you seek out the people you choose to work with, now or in the past? Is it an active process, or do you find interesting people naturally glom around a nucleus of interesting work?
dflock 1 day ago 1 reply      
Hi Alan,

You've said here a few times here that maybe "data" (in quotes), is a bad idea. Clearly data itself isn't a bad idea, it's just data. What do you mean by the quotes? That the way we think about data in programming is bad? In what context?

I've been thinking & reading about Data Flow programming & languages - datalog, lucid, deadalus/bloom etc... in the context of big data & distributed systems and the work that Chris Granger has been doing on Eve, the BOOM lab at Berkeley, etc... - and that seems like a lot of really good ideas.

What's your opinion on data flow/temporal logic - and how does that square with "maybe data is a bad idea"?



testmonkey 2 days ago 1 reply      
If you were to design your own high school curriculum for gifted students, what would it look like?
lispython 1 day ago 2 replies      
Hi Alan, I'm an editor at Programmer Magazine in China[1], could you allow me to translate your answers into Chinese, and share with readers in China?

[1] http://programmer.com.cn/

corysama 2 days ago 1 reply      
What are the first 3 books I should read on the topic of teaching tech to kids? Thanks!
lootsauce 2 days ago 0 replies      
What is your take on the future of our general relationship with technology in the light of the new optimistic view of AI with recent advances in machine learning? I can't help but think we are over-estimating the upside, and under-estimating the problems (social, economic, etc.) much like the massive centralization of the net has had downsides hi-lighted by Snowden and others.
xt00 2 days ago 1 reply      
Hi Alan, do you think privacy on the web should be guaranteed by design or malleable such that in special cases the government can look up your google searches and see if you follow terrorists on twitter? When I say guaranteed by design, I mean should people be creating a system to obfuscate, encrypt, and highly confuse the ability of people who wish to track/deduce what people are doing on the web?
mathattack 2 days ago 1 reply      
Hi Alan. A lot has been made of the visions that your colleagues and you had that ultimately became the fabric of our industry.

Did you have any ideas, predictions or visions which ultimately didn't play out? (And any ideas on why?)

Thank you very much to your contributions to our industry. Anyone blessed to be working in this field today owes you an enormous debt of gratitude. You have made a dent in the universe.

arloc 1 day ago 1 reply      
Hi Alan,

Can you confirm that a message is a declarative information sent to a recipient which can (or can not) react to it?And what is your opinion about inheritance in OOP? Is it absolutely essential feature in an OOP language?

david927 2 days ago 1 reply      
You have stated before that the computer revolution hasn't happened yet. It seems we stopped trying in earnest back in the early 1980's. Why?

And what could be done to re-spark interest in moving forward?

My gut feeling says that it would require a complete overhaul in almost every layer in the stack we use today and that there's reluctance to do that. Would you agree to some degree with that?

username3 2 days ago 1 reply      
Is there any site that lists all arguments from all sides and reach a conclusion? If they don't reach a conclusion, do they have an issue tracking system and leave the issue open for anyone to find easily and respond?

Debates should have a programming language, have CI for new arguments, have unit tests to check logic, have issues tracked and collaborated on GitHub.

melloclello 2 days ago 1 reply      
Hi Alan, what do you think of the Unison project? [1]

On the surface it's a structured editor for a type safe language in which it's impossible to write an invalid program, but the author has some pretty lofty goals for it.

[1] http://unisonweb.org/2015-05-07/about.html

drzaiusapelord 2 days ago 0 replies      
How has your relationship with technology changed, especially in regard to its use politically and socially, as you've gotten older?
OoTheNigerian 2 days ago 1 reply      
Hi Alan,

I have read a lot about you and your work at Xerox.

Do you enjoy travel? What continents have you been to? What's your favorite country outside the US?

How many hours a day did you sleep per day during your most productive research years? Cos i usually wonder how very productive people seem to achieve much more than others within the same 24 hours we all have.

Greetings form Lagos Nigeria.

annasaru 2 days ago 1 reply      
Hi Alan,

I am sometimes involved with mentoring younger people with STEM projects (arduino etc). Its all the buzz. But I heard one of my younger relatives lament about the tendency of young people to gravitate towards a quantitative field of study / training - is there too much hype?. "Learning to Code" is a general movement that is helping many youth to improve their career prospects. Do you think it's being effective in improving education on a meaningful scale.

What kind of educational initiatives would you like entrepreneurs (of all shades) come up with. Do these need to be intrinsically different in different parts of the world?

Finally, as a person who gets scared away from bureaucracy ("the school district") - what would you advise. School districts don't always make the best technology investments on precious dollars.

stop1234 1 day ago 1 reply      
Hi Alan,

Thank you for spending some of your time here and writing your thoughts.

I would like to ask you for some advice.

The idiom "Everything old is new again" is currently picking up steam, especially in the hardware and software scene.

Amazing stuff is happening but it is being drowned in the mass pursuit of profit for mediocrity in both product and experience.

What would you say to those who are creating wonderful (and mostly educational) machines but finding it difficult to continue due to constraints and demands of modern life?

Most don't have the privilege to work at a modern day Xerox PARC. Then again there is no modern day Xerox PARC.

Thanks for all the inspiration!

adamgravitis 2 days ago 1 reply      
Hi Alan,

I've heard you frequently compare the OOP paradigm to microbiology and molecules. It seems like even Smalltalk-like object interactions are very different from, say, protein-protein interactions.

How do you think this current paradigm of message-sending could be improved upon to enable more powerful, perhaps protein-like composition?

zyxzevn 2 days ago 1 reply      
Hi Alan,Since you may spend another day answering questions.. a got some more for you :-)

What do you think about the different paradigms in programming?

And what do you think about type theory, etc?

Bonus question:I am trying to develop a new general programming system for children. I was inspired by Smalltalk and ELM.

http://www.reddit.com/r/unseen_programmingIt is a graphical system that uses function blocks connected with flow-logic. So basically it is functional,but much simpler.The function-blocks form a system, very similar to classes/objects in Smalltalk. What do you think about such a system,or what tips do you have about designing a new language?

sandgraham 2 days ago 1 reply      
Hello Mr. Kay, Are you still going to be active with VRI or CDG now that HARC! has formed?


I once ran into you in Westwood and you invited me to check out the CDG lab. Unfortunately I missed you when I came by. I'm always tempted to try again, but I'd hate to interrupt the serious thinking of the fellows stationed up there.

josephhurtado 2 days ago 1 reply      

What do you think will be the impact of Cognitive Computing, and AI on the way software will be built in the next 5 years.

Do you think AI may automate fully some jobs, or part of the jobs people do today in IT & Software Development?

If so what do you think is the best approach professionals should take?

Thanks in advance for the answer, and thanks for doing this AMA.


Dangeranger 2 days ago 1 reply      
Hello Alan,

Something that I find striking about you and your work is your cross discipline approach to hardware, software, and "humanware".

Can you speak about people and subjects which have inspired you from fields other than computer science and how they have changed you as a person and technologist.

lispython 1 day ago 0 replies      
Recalling those past days, is there any idea that not yet really played an important role, but to be forgotten?

Especially we are losing the initial generation of programmers.

pierre_d528 2 days ago 0 replies      
Thank you very much for all you have done and will do.

How can we apply to join the HARC and make the Dynabook a reality?

antoinevg 2 days ago 1 reply      
Hi Alan,

Do you think we're yet at a position where we could catalog a set of "primitives" that are foundational to programming systems? (Where "systems" are fundamentally distributed and independent of software platform, programming language or hardware implementation)

hydandata 2 days ago 1 reply      
Hi Alan,

1. Do you think the area of HCI is stagnating today?

2. What are your thoughts on programming languages that encapsulate Machine Learning within language constructs and/or generally take the recent advancements in NLP and AI and integrate them as a way to augment the programmer?

0xdeadbeefbabe 2 days ago 1 reply      
I get the impression from the book Dealers of Lightning that Bob Taylor played an indispensable role in creating Xerox Parc. What are the Bob Taylors of today up to, and why aren't they doing something similar?

Edit: just noticed HARC and YC-Research. I'll check it out.

icarito 2 days ago 1 reply      
Hello Alan,In light of the poor results of the OLPC project, in reference to the Children's Machine, leaving aside commercial factors, do you think the Sugar user interface is appropriate for the task? If not, how can it be improved, what is good/bad about it?


nwmcsween 1 day ago 0 replies      
Hi Alan, a few questions:

1. Do you have any recommended books to read?

2. Why do you think current programming paradigms are bad?

3. What changes to current operating systems need to happen?

[2] My view is you want to pass terse but informative information to a compiler in order for optimizations to take effect and there are three roads programming languages take: abstract away by layering which burdens the programmer to unravel everything (C++), abstract away from the hardware so much that specifics are hidden (most high level languages) or something similar to C.

dredmorbius 2 days ago 0 replies      
Do you have any thoughts or favourite authors on the topic of technology and innovation, and the process of that specifically?

I've been particularly interested lately in the works of the late John Holland, W. Brian Arthur (of PARC & Stanford), J. Doyne Farmer, Kevin Kelley, David Krakauer, and others (many of these are affiliated with the Santa Fe Institute).

In particular, they speak to modularity, technology as an evolutionary process, and other concepts which strike me being solidly reflected in software development as well. Steve McConnell's Code Complete, for example, first really hammered home to me the concept of modularity in design.

IonoclastBrig 2 days ago 1 reply      
I have been designing and hacking my own languages (to varying degrees of completion) for almost as long as I have been programming. A lot of the time, their genesis is a thought like, "what if language X did Y?" or, "I've never seen a language that does this, this, and that... I wonder if that's because they're insane things to do?"

When you're working on a system, how do you approach the question, "Is this really useful, or am I spinning my wheels chasing a conceit?" Is the answer as simple as try it out and see what happens? Or do you have some sort of heuristic that your many years of experience has proven to be helpful?

grincho 2 days ago 1 reply      
I admire the compactness and power of Smalltalk. What advice would you give language designers looking to keep the cognitive load of a new language low? What was your design process like, and would you do it that way again?
dineshp2 1 day ago 1 reply      
Hi Alan!

From your comments, it's clear that you are not happy with the state of programming languages as it stands.

You mentioned that the current languages lack safe meta-definition and also that the next generation of languages should make us think better.

Apart from the above, could you mention more properties or features of programming languages, at a high level of course, that you consider should be part of the next generation of languages?

azeirah 2 days ago 0 replies      
Hi Alan, this is a bit of a long shot, but I'd like to try anyway. I've been following CDG from early on, and am really interested in the exploratory research that's going on in there. I'm a 20 year old computer science student looking for an internship, would it at all be possible to pursue an internship at CDG? My primary selling point is that, given the right environment, I have a lot of motivation.

I understand this is not the right place to discuss these matters, but I know it's highly likely that this message will be read here, I am happy to take this topic elsewhere.

GregBuchholz 2 days ago 0 replies      
At the OOPSLA keynote speech in 1997, you mentioned that "The Art of the Metaobject Protocol" was one of the best books written in the past ten years. Any new candidates for "best" books?
mythz 2 days ago 1 reply      
Do you still code today? If so what's your preferred language, editor, OS?
jsprogrammer 2 days ago 1 reply      
You say the problem with Xerox is that they were only interested in billions (instead of trillions).

Should we currently be interested in quadrillions, upper trillions, or, perhaps, larger? Once we become interested in an appropriately large number, what preparations should we be taking so that we can operate at that level? Do we just start putting product out there and collect the value on the open markets, or, do we need to segment markets to maximize value? Can you tell us about any other mistakes you feel Xerox might have made in realizing the value of PARC?

rjurney 2 days ago 2 replies      
How satisfied are you with the tablets that finally satisfied your vision (did they?) of a personal computer? How much were you able to infer about how they would work? Any lessons from this?
bachback 2 days ago 1 reply      
What do you think of Bitcoin and use of computers for money and contracts?
mythz 2 days ago 1 reply      
Hi Alan,

You've been a long-time proponent for creating educational software (e.g squeak etoys) helping teach kids how to program and have been fairly critical of the iPad in the past. What are your thoughts on Apple's new iPad Swift playground (http://www.apple.com/swift/playgrounds/) in teaching kids how to learn how to program in Swift?

Do you think UI aesthetics are important in software for kids?

amasad 2 days ago 1 reply      
Hi Alan,

You've been involved in visual programming environments like GRAIL and Etoys for kids. What do you think of the current state of visual programming for both kids and adults?

gbenegas 2 days ago 1 reply      
Hi Alan, I'm a CS student thinking about graduate school.

1. Would you suggest going into a popular field that excites me but already has lot of brilliant students? (for example AI and ML)

Or rather into a not-so-popular field where maybe I can be of more help? (for example computational biology)

2. If I had to choose between studying my current favorite field at an average research group, or another still interesting field with a top group, would you suggest going with the latter for the overall learning experience?

alehander42 2 days ago 1 reply      
Is syntax important?

Do you imagine a future where there would be just several programming languages semantically using a lot more bidirectional "syntax skins"?

akeck 2 days ago 1 reply      
What's your most successful problem solving technique?
smd4 2 days ago 1 reply      
Hi Alan - the innovation from PARC appears to be the result of a unique confluence of hardware, software, market forces, recent government research investment, and Michelangelo-level talent for bringing big ideas to fruition.

Do you think that any factors that were significant back then are going to be difficult to reproduce now, as HARC gets started? Conversely are there novel aspects of today's environment that you wished for at PARC?

patrec 1 day ago 1 reply      
Hi Alan (and others!),

Logo is ~50 years old now, squeak 20 and olpc ~10. Do you know innovators who are now in their 20ies, 30ies and 40ies and who at least partly credit their mental development to childhood exposure to logo, e-toys, mindstorms, Turtle Geometry etc?

state_less 2 days ago 1 reply      
When will we get better at saying what we mean? I don't think this just important when speaking with computers, but also human-to-human interaction.

What is the best interface for computer programming? I have settled on the keyboard with an emacs interpreter for now, but I'm curious if you believe voice, gestures, mouse or touch are or will be better ways of conveying information?

smegel 2 days ago 0 replies      
What do you think about 4GLs - do you think they still hold any promise and/or represent a solution to today's language woes?
noobermin 2 days ago 1 reply      
It seems that dynamic or at least sloppily typed langauges like javascript and python have become more and more popular. Do you think typeless/dynamic languages are the future? I personally really like "classless OOP[0]".

[0] https://www.youtube.com/watch?v=PSGEjv3Tqo0&t=6m

yan 2 days ago 0 replies      
What most recent topic in the field of programming languages, or computing more broadly, have you changed your mind about in a substantial way?
pnathan 2 days ago 1 reply      

I'm curious what you think the most interesting line of research is today in the 'computering' world.

Thanks for taking the time to do this Q&A.


0xdeadbeefbabe 2 days ago 1 reply      
Did you guys ever talk about Man-Computer Symbiosis in terms of the computer unfairly benefiting some men over other men?

One example could be, give me money and I'll give you a computer that can translate English to Spanish.

Another example could be, Apple share holders profit from iphone sales, and the iphone UI leads naive/normal people to think texting while driving is ok.

testmonkey 2 days ago 1 reply      
Any memories or thoughts about Gregory Bateson?
poppingtonic 2 days ago 1 reply      
Alan,Thank you for doing this AMA!

I would love to hear your thoughts on how to "train" "System 1", in order to make "System 2" more powerful. Not necessarily here, due to the time factor, but if you find some time to think more deeply on this, please let me know and we can think through this together.

huherto 2 days ago 1 reply      
A piece of advice for software engineers on the mid of the careers ? How do you find challenges and leverage their experience ?
AndrewCrick 2 days ago 0 replies      
Hi Alan,

I came up with an idea that seems a bit like the Dynabook. It helps the user to understand design decisions. Here's a short video about it (under 2 mins):


In this case it's about how to build a digger.

I'd love to know what you think about it.

olantonan 2 days ago 0 replies      
There's still no good languages for young kids in my opinion. Should we get LOGO back, including a turtle robot?
duck 2 days ago 0 replies      
Hi Alan, how do you keep up with technology/news? Do you subscribe to any newsletters? Visit HN regularly?
miguelrochefort 2 days ago 0 replies      
What are your thoughts on Ethereum and DAOs (Decentralized Autonomous Organizations)? Do you believe they will lead to a new way to think about and distribute software? It kind of reminds me of the "fifth generation computer", with constraint/logic programming, smart contracts and smart agents.
ehudla 2 days ago 1 reply      
What are your thoughts on work/life balance in the computing industry? On growing older in our industry?
olantonan 1 day ago 0 replies      
Do you have an opinion on text based vs visual programming languages? I think the latter is good for learning, but feel impractical in my day-to-day job. Is there a sweet spot?
Atwood 1 day ago 0 replies      
Is durufle Requiem hindered or helped by a full pit? Does Chip excite you the way OLPC XO did/does? Salutations/felicitations, appreciation for the ama.
bouh 2 days ago 0 replies      
Dear Alan,

What do you think about EAST paradigm which tries to revamp the original spirit of OOP you stated ?

Do you think that the machine learning community suffer from the syndrome of "normal considered harmful". Like using vendor hardware instance of designing their own (FPGA for instance)

nextputall 1 day ago 0 replies      
Hi Alan,

What do you think about the Newspeak Programming Language (http://www.newspeaklanguage.org)?

anildigital 2 days ago 1 reply      
What do you think of statement "Erlang is the only true object oriented language in use today."?
blendo 2 days ago 1 reply      
Any thoughts on UC Berkeley's "Beauty and Joy of Computing"? (http://bjc.berkeley.edu/)

Should AP's new "CS Principles" course count towards the math requirement for college admission?

wslh 2 days ago 1 reply      
Hi Alan, are you envisioning a way to participate/connect-to YC Research as an independent researcher? I don't mean as an associate since many of us have the daily focus in startups but as a place where our ideas and code would be better nurtured.
cardmagic 2 days ago 0 replies      
Why haven't machine learning and neural networks been applied to programming languages with as much interest as human languages? Wouldn't AI augmentation of writing computer code lead to faster breakthroughs in all other fields within computer science?
westoncb 2 days ago 1 reply      
Hi Alan,

I'm curious whether you think it might be an important/interesting direction for program editors to depart from character sequence manipulation to something along the lines of AST editors. Or is this only a red herring, and perhaps not so deep a change?

syngrog66 2 days ago 1 reply      
hi Alan!

Q: I've always been a big fan both of text console accessible UI's like CLI's and REPL's as well as of GUI's. In my mind they each clearly have a different mix of strengths and weaknesses. One way a user might have a bit of the "best of both worlds" potentially is an app or client featuring a hybrid input design where all 3 of these modes are available for the user to drive. Any thoughts on that?

I'm writing a paper in my free time about some architectural ideas in this area and would love to hear your thoughts. Feel free to tell me this is a FAQ and that I should go read a particular book/paper of yours, and/or to get off your lawn. :-)

thank you!

brebla 2 days ago 1 reply      
What impresses you the most about american free enterprise? What most disappoints you about it?
collint 2 days ago 1 reply      
Hello Alan,

I'm curious if you've read much about Activity Theory. (in particular, Yrj Engestrm's Learning by Expanding.) I feel like it's compatible with much of what I've heard you discuss in lectures. Is it something you have an opinion on?

miguelrochefort 2 days ago 1 reply      
What are your thoughts on the Semantic Web? Why do you think it hasn't succeeded yet?
duncanawoods 2 days ago 1 reply      
Hi Alan,

Whats the next step to improve remote working? Face to face still seems to be so superior for relationship building and problem solving despite the wealth of video conferencing, social and collaboration tools we have. I don't want to wear goggles...


man2525 2 days ago 1 reply      
Is a web browser sufficient to provide rich and meaningful experiences on the Internet?
lispython 1 day ago 1 reply      
Hi Alan,

Comparing how you think about doing research now with how you thought when you were starting out, what is the biggest change in your thinking?

alehander42 2 days ago 0 replies      
Hi Alan,

Do you think the object ~ biological cells metaphor can be related somehow to automated programming using GP or neural networks? (I've sometimes imagined neural networks as networks of many small objects with probability-based inheritance)

msutherl 2 days ago 1 reply      
Hi Alan,

I'd like to go deeper into your notion of "pop cultures" vs. "progress", in the context of innovation, but also the arts. Can you recommend some readings that might fill out those concepts?

acd 2 days ago 0 replies      
Hi Alan!

Biggest thanks for helping create the modern computer and its peripherals and helping advocate programming for children! Computers is the base which I enjoy the most as a hobby and make my living off.

What is your vision for the future of computing?

BrutallyHonest 2 days ago 0 replies      
Hi Alan,

Could you please answer:

1) What is your opinion about Actor Model? Does it have a potential? What is the next step for OOP?

2) Do you think software of the future should be end-user modifiable?

3) What would be the Dynabook of 2016? Smart contact lenses with a gesture interface?

Thank you very much!

quakeguy 2 days ago 0 replies      
He is a great guy, i just want to thank him via this textfield i am given.
huherto 2 days ago 1 reply      
How do you become a lifelong learner ? How do you stay excited about the future ?
kafkaesq 2 days ago 0 replies      
So what do you think of Scala?
Woodi 1 day ago 0 replies      
Hi Alan,

Do current OO languages miss or unuse good ideas/features already invented ?

Is programming "with GUI only" a sensible for the future ?


ksec 1 day ago 1 reply      
What do you think of Steve Jobs? And the Current Apple. Do you have any meaning friendship with him? Do you miss him? Any Story to share?
Ericson2314 2 days ago 1 reply      
Alan, while trying come up with a good question, I learned you are a musician. Great! As a fellow musician (also jazz and classical) I'm curious whether you feel this has influenced your engineering.
mti27 2 days ago 0 replies      
What TV show or movie have you seen that has realistically portrayed advanced computer technology, or is growing into it? In other words, now that we have Amazon Echo is the Forbin Project more realistic?
lispython 1 day ago 1 reply      
Hi Alan,

Have you ever made serious mistake? That if given an opportunity, you would start over with a different approach.

corysama 2 days ago 1 reply      
Could you recommend a small number of historic papers in computer science for undergrads to read so that they can have a bit more context for the state of modern tech? Thanks!
lpalmes 2 days ago 1 reply      
Hi Alan, If you are familiar with Go, what do you think about it's simplicity as a language? It's something other languages should start thinking about in their design?
olantonan 1 day ago 1 reply      
No language today is able to improve itself like Smalltalk was able to. That's pretty sad, wouldn't you say?
rudedogg 2 days ago 1 reply      
What are your favorite talks you've given? Can you link to the videos if they were recorded?

I enjoy watching your presentations, but I'm sure there are some I've missed.

alehander42 2 days ago 1 reply      
Do you think artificial human languages designed with strong logical rules (Lojban..) can be succesful?

Do you think they can act in a-la Newspeak(the 1984 Newspeak) way?

arkj 2 days ago 0 replies      
Consider a kid starting to learn programming, which language would you suggest him to learn first?

Also is there a minimal list of must know languages?

childintime 2 days ago 1 reply      
Hi Alan,

What skills would your (hypothetical?) apprentice need to have?

If this were more like a partnership what would be the subject to work on?

For that matter, what are you working on now?

mbrock 2 days ago 0 replies      
Do you recall any interesting work on discussion forums or alternatives to them for promoting collaborative thinking?

Or for another approach, how do you like HN?

dillonforrest 2 days ago 1 reply      
What are your pet peeves within your field of work?
ldargin 2 days ago 0 replies      
Do you consider the recent advances in AR/VR as a useful trend, or is it's emphasis on spatial movement mostly superfluous?
musha68k 2 days ago 1 reply      
How can I get my thinking out of the/my box?
uptownfunk 1 day ago 0 replies      
Alan, what are your thoughts on lbstanza and it's class-less object system?


nxzero 2 days ago 0 replies      

What research have you been a part of that is the most promising, yet least known, and why do you feel it failed to become more well known?

slrigevol 2 days ago 0 replies      
this is a spectacular thread. I gave up everything and traveled to the U of U in 1976 because alankay1 had done his thesis there. They got so much right in such a short time - Eliot Organick (Multics), Tony Hearn (Reduce, symbolic OS for TI 92, 89). All inspired by Alan Kay.
agentgt 2 days ago 1 reply      
What other interests do you have that are not technology related. For example what kind of music do you like? Do you like art?
olantonan 2 days ago 2 replies      
Reddit commenter implying this AMA is fake. How are HN accounts verified? How do we know this is a real AMA? Just curious.
olantonan 2 days ago 2 replies      
Does it suck getting old for you? Do you have stamina to make new stuff?

I'm old, very hard to stay on top of all the changes.

bitmadness 2 days ago 1 reply      
Hi Alan,

I'm a CS PhD student at Caltech. What advice do you have for young computer scientists, especially for PhD students?

ehudla 2 days ago 0 replies      
Do you like the culture of Silicon Valley?
buzzkills 2 days ago 1 reply      
In terms of real, in use, user interfaces, what do you think are the best examples? What do you like about them?
osense 2 days ago 0 replies      
What is your opinion on the so-called Function-level programming, and languages such as J?
atarian 2 days ago 0 replies      
What is your stance on the future of AI? Is it something we should be concerned about?
mej10 2 days ago 1 reply      
What is your recommendation to someone wanting to get into the kind of research you do?
gorlist 1 day ago 0 replies      
Can you name a few of today's Michelangelos?
olantonan 2 days ago 1 reply      
I'm no doubt your biggest fan. What do you think of the Simula inventors work?
anildigital 2 days ago 1 reply      
Statically typed programming languages or Dynamically typed programming languages?
BrutallyHonest 2 days ago 1 reply      
What is Actor Model lacking?
nekopa 2 days ago 1 reply      
Hi Alan,

What is your view on Literate Programming and why it hasn't taken off (yet)?

cardmagic 2 days ago 0 replies      
What do you believe that many programmers your know don't agree with?
jyotipuri 2 days ago 1 reply      
Hi Alan,

What do you find most frustrating about software development at current times.


pyed 2 days ago 1 reply      
Do we "really" need more programming languages ?
Adam-Kadmon 2 days ago 1 reply      
What is the best language to learn OOP concepts ?
icc97 2 days ago 1 reply      
What do you do to keep focus during the day?
EGreg 2 days ago 1 reply      
What is Alan Kay doing these days?
chews 2 days ago 1 reply      
Given that tablets have lived up to the Dynabook concept, what do you think about seeing 3 year olds with iPads?
kev009 2 days ago 1 reply      
What is your opinion on Operating Systems research and industry? I find the Linux monoculture tiresome.
seccess 2 days ago 0 replies      
Are you familiar with (the programming language) Go? What do you think of Go's approach to objects?
philippeback 2 days ago 0 replies      

What do you think of the Pharo project?

samirm 2 days ago 0 replies      
Hi Alan,

Tabs or spaces?

skull205485 2 days ago 0 replies      
i need help because i do not know how to hack so can you help me?
alankay1 2 days ago 3 replies      
Hi Folks

Thanks for all your questions, and my apologies to those I didn't answer. I got wiped out from 4:30 of answering (I should have taken some breaks). Now I have to. I will look at more of the questions tomorrow.

Very best wishes


testmonkey 2 days ago 0 replies      
What role do people like Terry A. Davis (and his TempleOS) serve in imaging what's possible in computing? I'm thinking of Jaron Lanier's idea of society getting "locked in" after certain technical decisions become seemingly irreversible (like the MIDI standard).
mischief01 1 day ago 4 replies      
It is not unlikely that you will never get to the same league as 'the inventors'.

Most people are mediocre at everything they do and will always be. Most likely that includes you. We live in a culture that doesn't just tell everyone that they can easily outgrow mediocrity, no, this culture tells people they are above it from the very start.

The following advice doesn't apply to geniuses or those who can be, but it applies to the majority who will read this:

The best you can do is look back on your life and see if there is only mediocrity. If there is, you have to be honest with yourself and recognize if it's so because of factors that you can still change, or not. For most people reading this the latter will be the case, which means you simply have to live with it and stop trying to influence the world, because everything you end up doing is going to make things worse (for you, and everyone else).

Avshalom 18 hours ago 2 replies      
Are you 2 years old?
olantonan 1 day ago 1 reply      
I'm not into quackery.
ycombinatorMan 19 hours ago 1 reply      
>this is stealing my life

Really? Because I quite enjoy my "Wasted" time. I can't imagine what situation you could possibly be in that not only is it not enough for you not to "waste" time being happy, but you need other people to do the same. You are whats wrong with the world.

Ask HN: I think I'm good at quickly identifying dev talent. How to prove it?
6 points by mattm  3 hours ago   3 comments top 2
DelaneyM 2 hours ago 1 reply      
You become a recruiter.

Identifying dev talent is one (very important!) part of the job for dev managers, but not enough on its own to be successful.

The only pure application of that skill would be as a recruiter.

That said, you're almost certainly wrong. I can't find the quote/citation right now, but distinctly remember that over a decade of data at Google showed that only one person at the company was really individually exceptional at predicting performance as an interviewer (and he was a special niche case).

j45 31 minutes ago 0 replies      
You could become a headhunter for recruiters and get paid for successful finds.
I just freed an innocent man from prison
22 points by ClintEhrlich  1 hour ago   2 comments top 2
mynameislegion 10 minutes ago 0 replies      
Can we get a mirror of the letter?
Ask HN: What company/companies would you acquire and why?
5 points by max_  9 hours ago   3 comments top
DiabloD3 8 hours ago 2 replies      

I think with the right leadership, they could probably become relevant to the market again. They've been playing so much catch up for the last several years, and also been making several missteps in how they handle user data inside of their operating systems.

Plus, generally pissing off iOS/OSX software devs doesn't really help sell the platform very well, as some developers have dropped iOS and OSX as a legitimate platform, and develop for Android and/or Windows only.

Ask HN: As a programmer do you have ups and downs and periods of intense doubt?
179 points by Madawar  1 day ago   59 comments top 46
shireboy 1 day ago 0 replies      
Definitely I have similar fears and a harddrive full of half-finished code, so you're not alone. Some of it I feel is just natural creative process. Famous painters like Monet often painted over canvases and didn't finish work - we know the masterpieces, but the process is dirtier and less organized than we imagine sometimes.

One thing that comes to mind as an antidote is to market-test your ideas before writing much/any code. This has the benefit of helping you prove the idea without wasting time on it, AND get you a group of people waiting for your thing so that you can be motivated to finish it. If you read some of these entrepreneurial bloggers (Pat Flynn, Tim Ferris, etc), they talk about this in detail better than I could. Depending on what the idea is, go to forums related to the topic and get some credibility by helping people. Then ask around about your idea or pitch it as "coming soon". (Don't be dishonest and say it's built when it's not). Set up a quick MailChimp or SurveyMonkey form, blog, etc. to start a discussion around your product and get an core group of interested potential customers. Try not to be biased one way or another - if there's a market and you think it could earn an income with reasonable effort do it. If not, don't.

Now, why have I done that and _still_ not finished this idea....

nthj 1 day ago 0 replies      
What you're experiencing is entirely human, and I would venture all developers experience this at given points, unless they are just working through a queue of bugs in a backlog tracker or some such. Now, being a software engineer, I'm not really interested in working harder or just telling myself to get over it. I'd rather use software and a process to hack my own behavior to keep pushing forward. Here is how I've had a little success with this.

For a given product, I have a Trello board that tracks the entire machine I am trying to create. (A business is a machine that accepts money and/or time as inputs and outputs a sufficiently interesting amount of more money: the profit.) I'll have lists like Lead Generation, Conversions, Upsells, and Churns. Every project I want to work on within the product needs to fit into one of those lists; it's an easy way to remind myself to not build or work on things that don't matter.

Within the lists I have cards for initiatives. These are the projects I would assign to an executive if I had a team of VPs. For example, "Launch ZenDesk with help articles."

Within the cards I have checklists of specific milestones or tasks. "Sign up for ZenDesk." "Add CNAME."

When I don't have much energy after a full day's work, I can look at my cards and find something I do have the energy to take care of. When I'm wide awake and excited after a good night's sleep, I can add more tasks or initiatives to the Trello board, but the lists help ensure the initiatives are actually pushing the business forward.

Finally, I'd look for projects within your product that make sense to open source. One, that makes the projects easier to use on future projects; two, you can show them off when trying to get work in the future; and three, it gives you a really nice sense of satisfaction and a milestone you can point to along the way of building your product.

informatimago 1 day ago 1 reply      
One fundamental feature of programming (development, software engineering, whatever the name), is that you have to face the unknown.

If you already knew what problems lie ahead and their solution, you would already have programmed it, and then what use would it be to rewrite the program? Just re-use the previously written code!

So by definition, what you will develop, will be a program solving a problem with unknown dimensions and solution. You start by writing the code for the known parts, but while doing that, you have to live with the fear of the unknown that lies beyond the next procedure.

Performing specifications and analysis phases is a way to deal with this fear of the unknown, by drawing a coarse map. But often it's not possible to precise the map much better than labelling "Here be dragons" ahead (or worse, to hide the dragons with reassuring words, like Module X, or Component Y).

So be courrageous, plow ahead, and you'll be lucky, when you'll get close, you'll see that what you thought to be dragons was just a hill, and you'll find a solution to climb or circumvent it.

What you need to learn however, is how to deal with the complexity that emerges from discovering problems and solutions as you go: then you have to step back a little, and find simplifying abstractions, to refactor the work done so far, to get a simplier solution englobing all the problems seen so far, (and hopefully that will be found in the future).

vessenes 1 day ago 1 reply      
I spent about a year alone building a fairly complex server tool. Some days were great. Many were hard. I'm 40 now, and have enough experience with myself and software that I got it done and enjoyed almost all of it. Here some things that worked for me.

* Kept the initial push of code very simple, and doing something useful from day one. The software needed to always "work" so that I could be adding features, tuning or bug fixing. If it wasn't working, I was UNHAPPY.

* Tried to ship every day

* Which meant I was disciplined about drilling features down into coding efforts of about a day.

* I kept a notes.txt file, and wrote down any ideas and thoughts; features would get drilled down into component steps, and I would work through them one by one.

* I resisted all urges to 'rewrite the whole codebase', this would have kept me from having working code for weeks, an absolute no go.

Overall, I'm happy with what I (and later a friend) built. It took discipline, but the discipline is just there so that I could do mostly the fun stuff -- build something new that people thought couldn't be built.

The worst two weeks for me were a terrible bug-hunting expedition that ended with filing a compiler bug. I was tetchy and annoyed the entire time. For me at least, I like having working code that does something useful. :)

doktrin 1 day ago 2 replies      
All the time. I feel like crippling anxiety, insecurity, mental anguish and deep self loathing is par for the course in this career. When it gets to the point where I literally hate myself for being alive, I start to consider dropping everything attached to a circuitboard and cleaning floors for a living instead. This happens about 2-3 times a week.
danso 1 day ago 0 replies      
You're not a coward, you're facing the doubt that everyone else does. However, it is unhealthy to think that the SaaS you dreamed up will be successful, when so many others have failed...that realization that you've had, that there are advantages to undertaking projects that fail...that's worth holding on too...as while you may not frequently succeed at first, you can still keep learning the skills from building the failures that will be needed for a success.

Also worth realizing that the success of a project is not based purely on hard work and skill. A great amount of luck is involved.

daveguy 1 day ago 0 replies      
> This projects do have their advantages as I discover new ways to do things that are very beneficial to my work projects but for my personal projects and personal life they are a dead end.

Absolutely I experience this and I expect most programmers have a few half baked or in-progress projects laying around.

You are focusing on the wrong aspect (the half done part) and not on the very beneficial part - learning for future projects. Keep those half done projects organized and in version control so that you can come back to them later. Better yet, license them all as BSD and put them in a public repo. Then if you need them for work 1) they can't be exclusively co-opted by a company even if they are used there (after all you built them on your own time) and 2) others can learn and contribute.

If you are definitely not coming back to them be sure to tag them as abandonware so people aren't expecting bug fixes.

jventura 1 day ago 0 replies      
I have a similar experience.. The thing is that although many of us can work on one or other part of a complete product, it is pretty hard to focus on everything at the same time and build an entire product alone!

For me, I have identified my problem not as fear of failure but perfectionism. So I start questioning all little things and things move very slow. I am currently building a SaaS app, and I've built others before but none made me any money so far. But lately I've been tuning my strategy to make things work faster, and have been seeing some success on it. Some of my main points are:

* start with something very simple that has the minimum functionality, like drawing a chart if the app is to draw charts, etc.

* since I'm working full time on this, decide to implement a feature per day (until you have enough features for now).

* THIS ONE IS REALLY IMPORTANT: never leave an inconsistent and non-working application between two commits. Make sure that the version on your repo is always fully working even if it lacks features (it may not be between two commits, I hope you get the idea..).

* ANOTHER IMPORTANT ONE: when you have a stable app, do a release to your server, even if you have it mounted on a personal url. It will give you the feeling of being moving forward..

* When you have something usable enough for other users, invite them to use it. Non-technical people feel flatered if you invite them personally to test your application.- Use a repo such as github (or gitlab for private projects). Commiting the code to those repositories will give you the feeling of moving forward every day. And if your local copy does not work anymore, you can always reset to the latest working commit..

I've been working on this project for much more time than I ever wanted (5+ years) and the points above have been what I learned from it.

pfarnsworth 1 day ago 0 replies      
You pretty much nailed it on the head. Fear of Failure. Why exactly are you afraid of failing? Who are you worried about being embarrassed to? This is what you really need to work out, because who cares if you "fail", at least you tried, and the beauty with programming projects is that you learned along the way.

You need to stop worrying about it being a success, and instead concentrate on making as good a product as you can, for your own education and pride. Imagine you are going to submit this along with your next job application instead. You want to showcase your programming abilities, not in your abilities as an entrepreneur. Change the focus of WHY you are starting this project, maybe even assume that it won't be used at all except to show any potential employers what you can do.

andrewfromx 1 day ago 0 replies      
You just need a team. Stop trying to do a SaaS app all by yourself. Work with at least 1 other person, even better with 2 other people. The team will keep the idea going if it's a good idea. By yourself, the odds are not in your favor.
malux85 1 day ago 0 replies      
Keep going.

If you build something and it fails, the experience you gain will be valuable - and a failed project is more valuable than an abandoned project - so even if you fail, you'll be in a better position you are in now! :D

Self doubt is normal - it's part of the creative process. But use it to be critical of your own work, but in a constructive way.

If the work seems daunting, remember the words of Dori on finding Nemo - Just keep swimming. How do you eat an elephant? One bite at a time!

jacquesm 1 day ago 0 replies      
Yes, it's perfectly normal. If you can, find a programming buddy. That will help you across these humps far more quickly than you can do on your own, in fact you may no longer even notice them.

Fear of failure is best dealt with by successful delivery.

A story from the dark ages (pre-internet).

I'd landed a contract to pioneer the automated digitization of passport photographs and the printing of those photographs on credit cards. Unfortunately, this project was way above my skills at the time and every day I regretted taking the job. But, day-by-day my knowledge grew and at some point I started to see a way out. In the end it took almost two years from start to working prototype scanner / printer but my self-doubt was dealt with on the day the customer took delivery of the first machine. As long as you are making progress (even if it is slow) you'll get there, if you give up then that's the end of the line.

So don't give up, just keep plugging away at it. And if you can, find that buddy. It's more fun that way anyway.

selmat 1 day ago 1 reply      
From my previous experiences one man show is very difficult. Especially if you dream big and have high goals (e.g. monetization, startup idea etc.).

I am now trying to involve at least one person to all my side projects. Even for small projects. There is great problem solving attitude - Divide-and-conquer.

If you can split problem to smaller parts , you can involve some other passionate friends who can participate and help you.

waychukucha 1 day ago 0 replies      
Am not a programmer but I think I am in that phase myself. Especially also being an African, I tend to think the adoption of technology in our markets is quite slow & the effort needed to implement a tech based product takes more time & a lot of marketing to just kick off. I have created a company that wants to digitize all forms of analog data & do offline archival. But then the doubts has kicked in. Will I crack the market? Most importantly, how will I crack it. It eats me up even more knowing that I have no competition whatsoever. Its now my full time job & I feel stuck. I think of pivoting but that will be just another project left undone so I have to keep pushing on.
rahelzer 1 day ago 0 replies      
Of course. Because we spend most of our time fixing our own bugs, no other profession confronts someone with their limitations and shortcoming as much as computer programming does.

But a cheesy pop-culture reference rings true here:

Q. "Can a man be brave when he is afraid?"A. "That is the only time a m an can be brave."-Game of Thrones.

cableshaft 1 day ago 0 replies      
I've got all sorts of ideas with various levels of work done on them in the dustbin. Sometimes you get an idea that you think will make money, but you're not really that passionate about it, and find that it takes a lot of effort to get back into it. That could be a sign that it's not worth pursuing and let it die. But if you do keep coming back to the idea, even with some time in between, it's probably worth sticking it out until the end. At any given time I've got about 15 ideas that I have varying amount of energy for, and 10 that I started briefly but never went back to, but usually only one main project per medium (not everything I do is programming) that I keep going back to over and over again.

Those are the ones you really need to make sure get out there. Then finish those and see what's next you want to go back to. It's taken me over 8 years to finish a novel, for example, but I already know what the second novel I finish is likely to be, because I keep coming back to it and putting a little work into it here and there.

Sometimes those ideas you got super excited about for a week and abandoned will be incorporated into future ideas too, and they'll all meld together into some super idea. I've got something like that percolating that I noticed is basically combining three of my past ideas into something simultaneously simpler and more powerful.

But I'm not doing it for a business, just for fun. If I did it for business, I'd have to focus a lot more, and have a lot less fun, I imagine.

squidlogic 1 day ago 0 replies      
Sometimes that fear can be a good thing. It means you are trying to do things just outside of your comfort zone, which can help you grow. If you are always 100% confident that you can do something, then that means you may be at a plateau in your personal growth. Run towards the fear.

Some specific advice that might be useful...

Bring in other people to your projects. It helps vet the idea, gives you someone to lean on if you're having an off day, and it is a huge intangible 'good' to know that you're in it with someone else. I'm reminded of a GK Chesterton quote, "It may be conceded to the mathematicians that four is twice two. But two is not twice one; two is two thousand times one."

Second, bite off as small a chunk as you can at a time. Not just in terms of features, but break your work down into one or two hour tasks. Sometimes this is not possible, but more often that not it is. Write all of these small tasks down. As you finish one, cross it off. At the end of an 8 hr day of work, even if you have no user-facing features to show for it, you will have a sense of accomplishment over these 4-8 tasks that you were able to finish. This can help act as a positive motivator to push forward.

Good luck!

Muted 1 day ago 1 reply      
I experience the exact same thing. I get an idea for a side project, get really excited about it, think about all the great things it could do, work on it like crazy for a weekend, and then never touch it again. I got to a point where I got really frustrated with myself that I can't finish anything. So this past Saturday I picked a really small simple project I had and said to myself "No matter what, I'm doing a ShowHN before I go to bed." So (after some hesitation) I did [0]. It really helped knowing that the HN community doesn't tear down ideas or projects. And while this was not a big, badass, super cool project like some others, it does feel good to have finally put a project out there.

Based on this I would say, define a small simple project that you can finish before losing motivation or succumbing to fear of failure, and then just get it out there. You will receive valuable feedback and learn a lot. You have little to fear as the HN community seems to shine at not making you feel embarrassed about what you've made. At least this is the impression I got from watching previous ShowHNs.

[0] https://news.ycombinator.com/item?id=11930331

pmiller2 1 day ago 0 replies      
I have periods of ups and downs and intense doubts as a person.
phugoid 1 day ago 0 replies      
If you can push yourself hard enough to get the idea built, you will face another bout of crippling self-doubt when you decide whether to show it to anyone. And then a MUCH bigger wall of doubt when you begin to market the idea and realize that good ideas don't sell themselves.

My advice is to choose smaller projects, even if they're not as commercially promising, just to build up your strength and ability to finish the job.

scarecrowbob 1 day ago 0 replies      
I feel like that often, both as a musician and as a programmer. I've got enough skills that it's not hard to get folks to want me on their teams (and they pay, too, which is nice).

The problem is that when I launch something wholly on my own I often back off.... there are usually good reasons:

it's not gonna be as profitable as I thought,

there are actually problems with my idea I couldn't have seen until I got into the project,

it's just not as good as the alternative of working on other folk's porjects.

My solution to this (because it happens maybe 4 times a year that I drop some project I was working on) is to identify some small goal, even if that goal is "learning how to install postfix" or "getting my banjo chops to the point where I can roll chords along to someone else's songs".

Even better is when these small goals are in themselves something I can return to later (like a save point in some dumb video game).

Like, I just made a marketing site to try and pick up some event music work. If I don't push on it hard and it doesn't generate a bunch of leads, then it can at least still just sit there and when I come back to it in a couple of months and try and make a push on the idea, then I already have that part of the marketing collateral done.

And, with this project, I've progressed in my skills at setting up the server and specifically configuring mail programs, I've learned a little bit about adwords and analytics, and I have something to show my musician buddies.

Projects don't have to be all or nothing-- if you can learn from them or jest get some small tangible thing out of them, that's okay and often quite valuable.

ChicagoDave 1 day ago 0 replies      
There are a lot of factors in being a developer relating to stress, income, talent, vision, responsibility, maturity, and emotional intelligence.

I think most of us go through cycles of high productivity inter-mixed with moderate productivity, and some small moments of being useless. The best developers are the ones that seem to be slightly higher than moderately productive all the time. Those people are rare in my mind. Then there are a handful of rockstars that can code at a high level all the time. I've only met a couple people like that in 31 years.

As for crippling doubt, well, I think those are signals to listen to, but learn to review your ideas pragmatically. I'm on my second start-up and this second concept is no sure thing. I've had doubts many times, but I also see the merits in building it. So I persevere. It's not at all easy. You have to forget about the future and focus on the here and now. Focus on the things you _can_ do, not the things that you have no control over.

But yes, we all have unfinished projects that were stopped because of doubts.

rsspbrry 1 day ago 0 replies      
Getting excited, coming up with features, buying domains, feeling doubt, questioning my sanity... I consider these all normal stages of product development.

Try thinking of them as road signs. They indicate you are getting closer to your destination. If any of these road signs are amiss, then start worrying (and check your pulse to make sure you're still alive).

AndreyErmakov 1 day ago 0 replies      
Yes, I've had similar periods of doubt when considering ideas for my personal projects, though never to the extent you've been experiencing.

In general, doubt is a healthy thing. It allows you to weight the decision and the consequences before blindly jumping in and possibly making a terminal error. Without doubt as a balancing mechanism, humans would be acting on a rush and we would be living in anarchy and chaos.

That said, however, there is a limit as to what you should allow your doubts to do. Speaking of your personal projects, it is normal to have an idea, initially consider it great, get excited about it, then in a few days sometimes weeks/months to cool down with regard to it. This is in principle the necessary process. You need to let your ideas prove themselves before you act on them.

But then when you're convinced this is a solid idea, which has a potential for market acceptance and the real need it can satisfy, then it's time to put your doubts in the back drawer and decide whether you go with it or not. The idea may be great but too big for you alone to handle it, in which case you start to look for outside help. If it's small enough and you can pull it off alone, then do it. In the past I had ideas I began to work on to realize later their scope was beyond my abilities to complete them so I stopped them unfinished. I choose not to think about them as failures, but as painful but valuable lessons which taught me things I otherwise would never have learned. Then in the future I would not make those kinds of errors in judgement again.

Fear of failure is also a cultural thing. Certain cultures are very much averse to risk taking and failing where the society looks down on those who tried something unconventional and did not succeed. I don't know if it applies to your situation, only you can tell, but at least you should be aware that this may potentially be affecting your perception of reality.

No one starts a software project with an official warranty letter from some authority stating that it will work. You simply recognize its potential, you believe in it and that should be enough to keep you going. That's how the mind of an entrepreneur works.

ageektrapped 1 day ago 0 replies      
This is normal. I'm feeling it right now with what I want to do.

In my heart and mind, I _know_ I can do it, but then the doubts and fears rush in. I totally understand the feeling you're going through.

I just finished _Art & Fear_ by David Bayles and Ted Orland which is a fantastic book about creating stuff. Nearly all the advice applies to software developers.

Don't give up.

Success isn't binary either.

Release your project (Some success!). Make some sales (More success!). Market your project to get more sales (Success!).

You probably won't get fuck you money on the first day, but with enough marketing, maybe you'll be able to quit your job within the first year.

segmondy 1 day ago 0 replies      
You don't have doubt, you are just not motivated. Not doing your real work has consequences such as losing your job and ending up homeless. The cost of not doing your personal project as you perceive it is not that high. This is true for most people that are employed, I'm in the same boat. The struggle is to find out how to have a high level of motivation and to replenish it when it runs low.
ScaryRacoon 1 day ago 0 replies      
Failure is an opportunity to learn. If you don't fail once in a while, you're not pushing yourself. Failure is a normal part of life, to expect perfection in software development is insanity.
wilsonfiifi 1 day ago 0 replies      
I think you should read/watch the following 2 resources if you can:

 'Start Small, Stay Small A Developers Guide to Launching a Startup' [0] 'Creating and selling a digital product' [1]
Your product on codecanyon appears to be doing quite well and has good reviews/sales [2]so you should probably market it more (if you're not doing so already). Also, building anecosystem of free/paid plugins around it might be something you could explore.Finally, you could look into offering hosted instances for less technical savy users.

Good luck and keep up the good work!

 [0] https://www.amazon.com/Start-Small-Stay-Developers-Launching/dp/0615373968 [1] https://www.pluralsight.com/courses/creating-selling-digital-product [2] http://codecanyon.net/item/stock-awesome-inventory-system-and-stock-control/11210315?s_rank=2

iamben 1 day ago 0 replies      
As many others have said here, I have this not just as a 'programmer', but as person - I think most people do. Sometimes it's crippling, sometimes not.

For the most part, you have to ask 'what am I worried about'? Usually it boils down to an issue with your own ego - the idea of failing or looking stupid, usually in front of your peers. If you can get over that, everything becomes a lot easier.

jasonkolb 1 day ago 0 replies      
This isn't unique to you, or to developers. What you're describing is part of the human experience. There's even a name for it, "Dark night of the soul". Everyone experiences it, in every walk of life.

[1] https://www.eckharttolle.com/newsletter/october-2011

Jemmeh 1 day ago 0 replies      
Accept that frustration, fear, and doubt are just part of the job. Those feelings don't mean you're a bad software dev or a coward, they're just the natural reaction to consistently facing the unknown. Sometimes you have to slog through it, even if it feels bad, and actually finish. You will not finish perfect. There are always bugs. But get something put out there anyways.

You are always going to be learning with this kind of job. And sometimes that makes you look back at your old code and say, "Oh boy, this sucks." It's because you're improving. If you weren't, you wouldn't be able to look back and see your mistakes.

wslh 1 day ago 0 replies      
The root problem with the SaaS project example is that you should be aware that, in general, many people are involved in projects like this. If you want to push it alone it is obvious that the number of tasks will be much bigger than when you are an employee. This kind of projects require a different approach and if possible one or more collaborators.
sriram_malhar 1 day ago 0 replies      
"The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt." - Bertrand Russell

Read about the Dunning Kruger effect and relax.


LTheobald 1 day ago 0 replies      
As everyone else has said - the doubt is normal. My advice would be to try and strip the product into parts more & tackle them one by one.

Creating a total product end to end in one go, that's scary. Creating a user model, easy. Creating an authentication level on that model, easy. And so on. Take it one step at a time.

tmaly 1 day ago 0 replies      
I ran into the same situation many times. Come up with an idea, buy a domain, do some coding, drop the idea.

You really have to stick it out and work through the idea. The best way to approach it is to do customer development first. Steve Blank was probably the first to bring this idea to the forefront.

Find out if people actually have a problem for which you are building the solution. The book Running Lean has some scripts you can mirror to do this. It will save you lots of time and actually get you pointed to an idea that has some merrit.

Derek Sivers from CDBaby had a great approach to this where he contrasted pushing onto people verse pulling an idea from people where there is already demand.

bovermyer 1 day ago 0 replies      
The thing you're describing is not unique to developers.

What I do is just forget about the potential consequences of failure (OR success) and just make the thing. If it works and takes off, great. If not, oh well, at least I spent time doing something I love.

akshay127 1 day ago 0 replies      
Do not doubt yourself. Practice emotional hygiene: https://www.youtube.com/watch?v=rni41c9iq54
daveinspace 1 day ago 0 replies      
I think your fear is good ! It forces you to test the business, not the techno.

Have you checked the leanstartup and customer dev methods ?

The goal is to quick test and fail your assumptions.

Because you need true users to continue your project.

Fake it before you make it ! ;)

viach 1 day ago 0 replies      
Never surrender. I could write more here, about my startups which are less than successfull and I keep trying, other optimistic bullshit. This is all crap, just never surrender.
mbrodersen 22 hours ago 0 replies      
Not at all. It is all part of the creative process. You WILL fail most of the time. That's OK! Accept it, pick yourself up and move forward. Most famous entrepreneurs failed many times before they succeeded.
angry-hacker 11 hours ago 0 replies      
Yes. I have big a downswing right now, if anyone wants to talk with me let me know.
seibelj 1 day ago 0 replies      
For me, lots of failure, some moderate success, hang in there. You always learn from anything you do
maratd 1 day ago 1 reply      
> As a result I have numerous half baked personal projects.

Every decent developer has dozens of half-baked personal projects. Some get finished, some don't. All eventually get abandoned.

They are never a waste.

If you go through your codebase, you will find that you re-use code and techniques that you learned on your next project. This is how we learn.

tluyben2 1 day ago 0 replies      
Yes and it is normal. It is very hard sometimes and you need to push through that. I abandoned lot of projects in the past because of this: now I push on and usually things work put actually as long as you persist.
deepnet 1 day ago 0 replies      
Failure can be very valuable experience.

You might fail at making money / market share but gaining the experience of how and why you failed is very valuable information.

Failure is great business knowledge it makes you wiser and dealing with it makes you stronger.

If you don't fail a few times you might make an avoidable error on the next app, which could have succeeded.

Just don't take it personally, learn from it and grow as an entrepreneur - sometimes the time is just not right.

Maybe you'll pivot and only discover a winning formula by failing at your initial idea.

By taking something forward you will encounter others on a similar journey, your professional network is a very valuable asset.

Fail fast; fail often. Only then will you be truly ready to win when the right idea and right moment coincide.

henryminden 1 day ago 1 reply      
I'd argue what you are experiencing is not fear of failure but fear of success. Steven Pressfield wrote a fantastic book that addresses the problem you describe called "The War of Art". I highly recommend it to read, it will show you at least what you are feeling is very human and can be overcome.
Tell HN: HackerNews is the greatest site to browse in Cuba
10 points by ChicagoBoy11  9 hours ago   4 comments top 2
ChicagoBoy11 8 hours ago 0 replies      
On a sidenote, you cant help but walk around here and also feel that, should commercial relations someday be fully normalized, there is going to be an economic boom here unlike any the world has ever seen
ck2 9 hours ago 2 replies      
Is Cuban internet censored like China?

Surprised there isn't sat internet more available there, you can get that on even remote islands in other parts of the world for a couple hundred US$ per month.

Ask HN: Given the cost of living, why would a developer live in Silicon Valley?
25 points by hoodoof  16 hours ago   21 comments top 9
cairo140 12 hours ago 0 replies      
My numbers (n=1, though this is widely true among the transplants I know) worked out in spite of the cost of living. Here is my math, though obviously the number will vary based on individual.

My rent went up by around $2000. At a marginal tax rate (Medicare + Federal + State) of ~40% this meant post tax income would have to go up by $40000 to "break even". Tack on an extra $5000 per year to cover the high state tax rate (this difference varies based on origin state). In comparison, my gross income went up by over $50k within a year and $150k within 3 years.

There are other aspects that add to "why I personally live here". (1) Job security is much better, not in the sense that companies are more loyal or successful here, but in that there is so much going on that you get job security from the strength of the market, and I feel like if I ever lost my job or wanted to change I can. (2) Because of the strength of the market, employers treat employees much better here than in smaller markets. (3) Everybody else is here. The proliferation of people who I can learn from here is amazing to take in.

There are definitely things that will tip the scale in favor of going away. Kids and buying a home are a big one, since those costs are even more outsized here than rent alone. Also, the valley is disproportionately friendly to the cutting-edge, type-A career, and the numbers (in terms of the jobs you can get) are not as friendly if you want to settle down. It's for these reasons it's likely I'll leave, but in the meantime, the cost of living is offset by a long shot, to say nothing about the intangible benefits.

blabla_blublu 11 hours ago 0 replies      
- The #Opportunities is staggering.

People are quite comfortable living in places (yes, rent is shit) where there are multiple opportunities so that when one doesn't work out, they can move to the next without uprooting their family/social system. Silicon Valley allows for that in a 30-40 mile radius.

- Number of likeminded folks as @dhogan pointed out. The sheer volume of meet ups, etc. is incredible.

So many startups, so many cutting edge tech companies and a lot of driven folks. You can bounce around as much as you like in the valley. Companies tend to home themselves here, since there is an easier talent pool to tap into. I am not saying other places don't have that, but the volume of such folks + opportunities is very high!

hacknat 13 hours ago 1 reply      
Because you might make it big? Seriously though, I just left Seattle after 7 years to move to Madison, WI, for a very interesting opportunity to work on some cool virtualization and orchestration tech. My current company is great, but it's largely a coincidence that it's based in Madison, WI (most of the leadership is on the West Coast). While I'm grateful to be working on something cool right now, I'm painfully aware that there isn't anything else in Madison after my time with my current company is up. Hopefully that's a while, but, software being software, the nature of engineering is very project based. We work in an exceptionally stable industry, but the companies within that industry are not stable at all. I'm definitely getting a strong sense of why someone would want to live near a tech epicenter now that I've left one.
nitwit005 7 hours ago 0 replies      
At the moment, the SF bay area still has the most choices if you're looking for a new job.

That actually translates into something of a financial advantage. The two largest pay raises I've gotten have been from quitting and joining another firm.

It depends how settled down you are of course. Being willing to move is generally financially beneficial as well.

probinso 12 hours ago 2 replies      
Many programmers start their career by trying to optimize their income to achieve independence , rather than optimise their living expenses. this is mostly because the market allows it

it is very rare for someone to intentionally decrease their income for a new employment opportunity , and the highest paying jobs precede your next highest paying jobs.

in the tech industry you are often rewarded for changing your job regularly. if you subscribe to this model, and the bubble doesn't burst , than this can be a very profitable approach to life.

dhogan 11 hours ago 1 reply      
Try flipping it: Given the potential salary, why would a developer NOT live in Silicon Valley?

But really I think it's largely being around so many like-minded people. The community and the fact that companies are there for similar reasons. At least that's one reason why I personally would want to be there. To have the best opportunity to learn and grow.

kasey_junk 14 hours ago 1 reply      
Because its close to their job? Commute time is highly related to happiness.
banku_brougham 14 hours ago 0 replies      
i live in Seattle. i like the bay, but a company cant (wont) compensate me enough to move to Palo Alto where buying a house is impossible.
_RPM 13 hours ago 0 replies      
Most likely because the best companies are there.
Ask HN: What's a better way to digest regular/tech news?
7 points by coned88  20 hours ago   9 comments top 6
AndreyErmakov 19 hours ago 1 reply      
What you should really be doing is finding a way to consume as little news as possible, only picking up what really matters. Most of it is useless. Even HN has an inordinate amount of stuff that's either clearly political or local US news which I don't care about, that's why I generally don't follow the news page.

The AskHN is however a source of good discussions which can often provide you with new and useful insights into things.

The must read on the subject:



ericzawo 15 hours ago 0 replies      
I'm trying to find a way to discover this myself -- as a former journalist/journalism major, I can be best described as a news junkie.

I use Pocket to save longreads for my daily commute/downtime and it has proven to be the best way to catch up on things for me between devices. I know there are similar apps, I've just been using this one forever.

I try to follow journalists and writers I admire on Twitter, especially ones who err on the side of sharing news items/pieces worth reading, rather than devolve into the mudslinging that is trendy amongst writers #onthere.

I have only been reading HN for the past year but as a newbie to tech it has proven invaluable, and there's plenty of political/financial news that pops up now and then to at least keep me semi-coherent amongst colleagues and what is going on at work.

I find generally speaking the news to be really damaging to my mental psyche. Especially when I was in a newsroom at my previous job, it was not exactly a happy place to be reminded about every - single - mass shooting - and terrorist attack - and bad move by governments - daily, and eventually you either become completely numb to it or let it get to you. The latter happened to me, and other contributing factors led me to really question my involvement in media going forward. I'm definitely still addicted to my Twitter timeline, but I've found that, too, no longer makes me feel good, and am taking steps to only check it once or twice a day.

RepressedEmu 10 hours ago 0 replies      
My friend and I are currently working on an app called Krux that aims to resolve this problem. We found that in most news stories fifty percent or more of it can be fluff/intro/unimportant so we built a summary algorithm to cut the articles down. The app harvests the news from a growing list of RSS feeds and then summarizes them to 4 sentences for quick consumption. We plan on launching with Tech, Business, Politics, and Culture sections so you can follow only what you're most interested in keeping up with. We think it will be a good way to stay on top of fast moving industries and keep informed of the top events.
tmaly 13 hours ago 1 reply      
I really like using email newsletters, specifically the ones that aggregate items. You can usually find very specific ones, but there are also general ones.

These get sent out weekly, so you do not have to worry about missing the big items in that specialization.

Mimu 14 hours ago 0 replies      
I never understood people's issue with news.I don't read any newspapers, I don't read any news-sites, I literally read titles of /r/worldsnews (knowing that most of them are clickbaits, but still) and that's it.

I don't think I'm missing anything, the relevant news come to you one way or another. Yes you'll have it like a day later but who cares? In the meantime you are free to do stuff.

brudgers 11 hours ago 0 replies      
For general news, I'm a fan of a paper subscription to The Economist. There is little general news where a week between issues makes a difference, but it does make a difference in reporting.
Ask HN: Profitable SaaS? How did you grow your business?
289 points by hackathonguy  2 days ago   103 comments top 23
pieterhg 2 days ago 6 replies      
I have a B2C subscription site for digital nomads called Nomad List (https://nomadlist.com) with about 5,000 paid members.

The main site was always free and that became kind of a lead generation / acquisition funnel to have people sign up and become paid members.

What they pay for is a chat group and forum (and some extra apps I made for digital nomads, like a trip planner on http://NomadTrips.co). The price now is $75/year.

I simply started by adding little features (like a chat), I charged $5 one-time first, because I was getting a lot of spammers. Even with $5, people kept joining. So I kept raising it, to $25, then $50, then $65, and then in April this year I made it annual and recurring. Sign ups have remained the same and even grow.

Meanwhile the main site that's free (https://nomadlist.com) keeps being covered in mainstream press like Time, Times and HuffPo. I don't do any PR or marketing. So my CAC=$0. It also ranks very well in search as it's linked to by so many other sites. Also not actively worked on that, it just happened because people liked my site.

I've tried FB ads last month but only saw 4 conversions.

So I think organic acquisition works best for me. Which means: Make a cool site, add paid features, make it recurring. Win.

This is B2C though, so probably quite different!

fab1an 2 days ago 2 replies      
Regardless of your market and product, the fundamental equation you need to get right in SaaS is CAC < CLTV, ie your customer acquisition cost needs to be vastly lower than the lifetime value of a customer (= your monthly gross revenue per customer x # of months you'll retain a customer)

The main tip I'd share for getting started is to think about your CAC first, ie before pricing. Set up a simple spreadsheet to conservatively estimate how much money you'll need to spend to get one customer (this will work with any channel, really). If you have some empirical data based on your own experiments, all the better.

That estimated (or empirical) CAC will help you understand much better how much you'll have to charge per month (or year) to recoup your CAC within a reasonable timeframe (depends heavily on whether you're bootstrapping or are funded), and you can base your pricing strategy on that.

Many VCs will look for ratios of 3, ie your CAC needs to be 1/3 of what a customer will pay you over their lifetime. VCs specialized in SaaS will have more sophisticated ways of looking at this, of course, but 3x is a reasonable lower boundary.

vld 2 days ago 2 replies      
I launched a free API 4 years ago, and in January 2015 I introduced paid plans, which offered several benefits over the free service.

I have done no actual marketing, but the website ranks somewhat okay in search queries. It keeps growing every month, and recently passed $10k/month in profits. This is from pretty much word of mouth via stackoverflow or from google searches.

From this experience I can say that if your service is competitively priced, good, and needed by a somewhat large audience, even with no marketing you can turn a profit really fast.

WA 2 days ago 0 replies      
Who is your target group and where do they hang out online?

In B2C, the fun starts once you're beyond the obvious choices. Let's say you're in the fitness for women market. The obvious channels would be fitness-related forums or blogs. They are also easy to copy and that's where everybody else tries to place their products.

In addition to these channels, try to think of situations in your customers lives that lead to choosing your product eventually. Maybe that'd be people who just became vegan. Or women who rethink their birth-control. Or people who just ended their relationship or started a new one. These are situations where people are also open to re-think other choices in their lives and a fitness program for new vegans might fit their needs perfectly and chances are that you're the first one to piggyback on this specific channel.

The next step would be to identify available resources in that area and create marketing material that fits those channels perfectly. Obviously, you should deliver value with your stuff to the people who frequent this channel and not just dump your product name everywhere.

Rezo 2 days ago 0 replies      
When you're just starting out, a low customer acquisition cost, preferably zero, and organic growth is key. A site like HN or Product Hunt may drive a one-time spike in traffic, but people Googling for a solution will drive new customers day after day, month after month, if you're actually solving a real problem. Don't worry about SEO too much, but I will say that the more specific your solution is the better you're likely to do. If you're simply introducing the 57th generic time tracking solution, you're going to have a though time. Time tracking for dentists (caveat: I have no idea if there's demand for that)? Now that is a clearly defined customer base, and you can probably think of numerous ways to reach them straight away.

Other things I've found helpful when starting out:

- Is there a subreddit that caters to your ideal customer? Be active and genuinely helpful in that community. Don't spam your SaaS, but if people express a problem that your service solves, tell them about it.

- Is there somewhere your target audience gathers? Think conferences, trade shows, meetup.com, etc.

Remember that being profitable always has two sides to it: You can bring in more revenue, or you can control your costs. Don't be that company with 17 employees, spending $100K to make $9K/mo. Strive to be a WhatsApp, with 55 employees making over a billion a year. If you have the technical chops, validate your SaaS at least to $10K/MRR with just a few persons or even by yourself. Then if you really want, use VC to step on the gas. Because that is what VC is: an accelerant, so be sure you're pointed in the right direction and not at a wall.

cperciva 2 days ago 0 replies      
I convinced patio11 to tell everybody that Tarsnap was awesome but far too cheap.

Well, sort of. Tarsnap was quite profitable by the time Patrick wrote that blog post; but its growth has always been driven primarily by word of mouth, and blog posts like Patrick's are a large part of that. The only sort of advertising I've found to be useful is sponsoring open source software.

cyberferret 2 days ago 6 replies      
I run a one man B2B SaaS (www.hrpartner.io) and marketing has proven to be a real mystic art for me. I always thought the programming would be the tough bit, and the marketing the easy part, but it has been totally the opposite in my experience.

My biggest issue has been finding the right channel to market. I've tried Facebook and Twitter advertising (on a small scale - about 5 campaigns at $100 a pop) without much result. I've spent over $2K on Google AdWords with limited success.

In all above cases, I got a lot of people visiting my site, with about one in 20 visitors actually signing up. But after that, very few signups stayed around for more than one or two login sessions, and even fewer signed up for paid plans. (We use Intercom to track conversions and activity)

Don't get me wrong, I am not really complaining as I have a steady core of users who seems to use the app regularly, but I am mystified at the very low rate of converting visitor and initial account creators into regular users.

Next step is to look at specific review sites such as GetApp and Capterra. Our product also integrated tightly with Xero so we just advertised in the Xero User Magazine this month which will be distributed to thousands of users at their US convention soon, so we will see what comes out of that.

My biggest struggle is that because I am still actively developing and adding new features to the app, I have problems putting down the coding tools and building momentum with marketing.

Oh, and as for pricing, I've got a free forever plan for smaller companies (up to 10 employees), with paid plans after that. Expectation was that smaller companies could onboard for no cost, then as they grew, they would upgrade to a paid plan, but because we have only been live for a few months, still too early to tell if that will be a great strategy. I may drop the free plan later this year.

We also built a totally free companion site (www.staffstatus.io) that integrated with HR Partner and made free to ALL sizes of companies to see if we could get some side business (similar to what crew.co are doing with unsplash.com, but so far it doesn't seem to be doing what we intended - though it is really early days for that too).

Looking forward to keeping an eye on this thread to see what other solo SaaS drivers are doing. Feel free to ask any questions or critique any of my methods.

silverlight 2 days ago 0 replies      
I previously started Roll20, and it is now a profitable SaaS business. It started off as just myself, then very quickly I added 2 Co-Founders, and now we have 8 people total working on it full-time. For that business, we used Kickstarter to get it off the ground, and then just slowly built through word of mouth and a strong built-in networking effect.

I am in the process of starting my next project right now; it's a VR small-scale MMO called "OrbusVR". I've been working on it for about a month now, and I've got a blog up (http://blog.orbusvr.com) where I've been posting development updates at least weekly; I've also been posting frequently to Reddit in places where potential players are likely to hang out (e.g. /r/vive). I have around 50 people already signed up on a newsletter, and every time I post about it I gain another 10-15 subscribers. I plan to launch a Kickstarter for this project as well probably in the next month or two; both to "fail fast" if there isn't going to be a large enough playerbase to support it, and to get a boost to the funding (which is 100% out of my own pocket right now).

So I guess in my experience, the trend has been:

1) Make something people really want already, but don't have.

2) Work on it in the open as much as possible to build up an early evangelist community.

3) Do a Kickstarter campaign or other event to gauge actual "I will spend money on this" interest.

4) Continue to grow slowly via world of mouth until you reach a tipping point where a network effect kicks in and then just grow from there.

tbrooks 2 days ago 2 replies      
Meat and potatoes selling.

1) Found a list of potential prospects

2) Called 30 prospects each day

3) Repeat steps 1-2 for 4 years

rsoto 2 days ago 0 replies      
The first step is talking to potential clients. It helps if you have something to show, but it's not necessaryyou only need to grok the problem, and then keep an open mind, as there might be some things you haven't already thought of.

You keep working closely with that client, listening but more importantly, watching what he does. Then you find another and you try to fit that solution into their work flow. If that doesn't work, keep an open mind and tweak your product. Repeat as needed.

Regarding the customer acquisition channels, YMMV: whether you're selling B2B or B2C, your target is tech saavy or not, and even if a similar product is positioned or not. Next, you might need to check your competitors and their strategies, there might be a couple of clues there.

We have a side project[1] on a similar target group, which helps enterprises calculate a number that's not too easy to do by hand or with Excel. We get a couple hundred visits a day, and we have a small ad in there. It has given us some visits and some sign ups, but we might tweak that a little so we can contact them and offer a demo, which is something that has worked for us.

Also, we just launched a new home page[2] this month, I suggest you invest in your landings so they look good and professional (or whatever you want to communicate). We have also some automated mailings for potential clients, and it has brought us business, altough indirectly, because we have to demo our product.We now are working on a video, as it might be easier to explain how it works.

1: https://isrmatic.com/

2: https://www.boxfactura.com/

amelius 2 days ago 1 reply      
> Saw this thread from a couple of days ago about profitable one-person SaaS apps.

I missed it, can you share the link?

rbustamante22 2 days ago 1 reply      
I replaced a crappy tool (think Windows only client) with a web based version.

Emailed everyone in the industry.

Profitable ever since.

(Somewhat simplified, but not really)

wnm 17 hours ago 0 replies      
I'm not yet profitable, but I think I accidentally stumbled upon a way to get there...

My current SaaS app PressKitHero (https://presskithero.com) started out as a Shopify App (https://apps.shopify.com/presskithero).

I did zero marketing for the Shopify App. All I did was put it in the Shopify App Store. It gets good reviews, and a steady stream of new installs. About 10% of installs then convert into paying customers. Right now (after 6 months), the app is doing about 800$ in MRR.

I think for solo software developers, who struggle with marketing, the Shopify App Store is a really good place to get started.

amarghose 2 days ago 2 replies      
Completely depends on where your target audience is. Are they searching for your solution already? If so, where?

Whether you're selling B2B or B2C is also going to make a big difference here.

Our main channels getting started were Google and a review site called Capterra (did paid advertising on both), as well as LinkedIn Marketing. Now we have a few other channels and partnerships but that's how the company got off the ground and profitable (I say we to refer to myself and my business partner)

maxsavin 2 days ago 1 reply      
I had a marketing application that sort of hacked on the Twitter API. Because of the API TOS, we couldn't really tell anyone how to use it, which made online marketing very difficult.

The solution I found was to host in-person classes on social media marketing. I would give a high level view of the marketing strategies and then plug my tool as one of the options.

This had a few advantages:

- Everyone had been "on boarded" before even trying the product.

- Everyone now had expertise on the subject they could share with friends and coworkers.

- Each class gave me the attention of ~30 genuinely interested people.

- The income from the classes really helped as I bootstrapped the startup.

Of course - some people were very annoyed by my advertisement. But in all fairness, the information was high value and many people enjoyed it.

55555 2 days ago 0 replies      
If you invent something new and novel that people actually love, just posting in Facebook groups alone can grow you to xx,xxx USD MRR. Word of mouth will then carry on from there. If you are making something much less interesting, then marketing gets a heck of a lot harder.
DenisM 2 days ago 0 replies      
I encourage everyone to find a market and a way to gather attention before making a product. It's the opposite order of what many people do, and they could learn on mistakes rather than their own.
edoceo 2 days ago 0 replies      
Direct sales, then customers refer to other prospects. Focus hard on those first 10-100 customers and they will reward with loyalty + referrals.

Also, say no to some deals; can't please everyone

amelius 2 days ago 4 replies      
What if you have a product which the potential customer doesn't know yet it needs? I guess you can create the need (or let the customer see that it needs the product) by giving away a free version first for some time.

But how would you find the customer in the first place? How would advertising work in such a situation?

Example: mobile phones. In the beginning everybody was on landline; how do you convince the user they need a mobile phone? A similar problem may exist for certain SaaS markets.

sedzia 2 days ago 1 reply      
At http://voucherify.io (API platform) we try to follow Zencoder's advice


To put it in a nutshell, this means generating valuable content and implementing helpful libraries and integrations. Then we try to share it with our target (developers, technical product managers, CTOs) through ProgrammableWeb, GitHub and Quora. See e.g.

- http://www.programmableweb.com/api/voucherify

- https://github.com/voucherifyio/coupon

We're a team of 3.

MicroBerto 2 days ago 0 replies      
We blog like crazy mofo's.

Educate yourself and your consumer all at the same time, and do it daily for two years straight. You can't not have some level of results if your writing is decent or better.

Combined with excellent technology, it's a nice win-win.

DenisM 2 days ago 0 replies      
Also, Start Small Stay Small book is very useful for this sort of thing.
twelvenmonkeys 2 days ago 0 replies      
https://datamantle.com is ran by a one-man-army. At the moment only advertising on hckrnews as SEO catches up and all.
Ask HN: How do you install developer tools on a fresh system?
123 points by fratlas  2 days ago   120 comments top 53
falcolas 2 days ago 4 replies      
I don't do fresh installs very often, but when I do, it's generally because I want it to be a genuine fresh install. As such, I don't install a tool until I need it. I find that tools I once thought I absolutely needed are not tools or libraries that I use anymore.

I have three exceptions to this: Vim (my editor of choice), dotfiles (which I store in a git repository and put in place using stow, installed via a simple bash script), and Vagrant, so I can do development testing against a VM.

As Docker matures, I may use it in place of Vagrant, but it's not ready to fill the same role quite yet.

fratlas 2 days ago 3 replies      
Oh god I used "you're" instead of "your" and can't edit it.
mbrock 2 days ago 2 replies      
I recently reinstalled my NixOS laptop. I just installed the distribution, added my SSH keys, cloned a repository, made a handful of symlinks, and then told NixOS to set everything up.

It's actually a collaborative repository, so that both of us in our company can improve the computer configuration, install new tools or language runtimes, etc etc.

The shared configuration has stuff like: our user accounts and public SSH keys; local mailer setup; firewall; conf for X/bash/emacs/ratpoison/tmux; list of installed packages (including Chromium, mplayer, nethack, etc); fonts and keymaps; various services (nssmdns, atd, redis, ipfs, tor, docker, ssh agent, etc); some cron jobs; a few custom package definitions; and some other stuff.

In Emacs, I use "use-package" for all external package requirements so that when I start the editor it installs all missing packages from ELPA/MELPA.

Aside from dealing with the binary WiFi blob this Dell computer demands, reinstalling was a pleasure.

dvcrn 2 days ago 1 reply      
I have my dotfiles for that. Split into different categories (brew, npm, pip) together with all the config files I need. brew and brew cask (with brew-bundle [0] for Brewfile support) take care of getting all libraries and applications onto the system.

For the development itself I'm either shipping my entire config (.vimrc for example) or use systems like spacemacs, sublimious or proton that only need 1 single file to re-install the entire state of the editor.

The install script itself [1] is then symlinking everyhing into place and executes stuff like pip install -r ~/.dotfiles/pip/packages.txt.

It takes a bit of effort to keep everything up to date but I'm never worried of loosing my "machine state". If I go to a new machine all I have to do is clone my dotfiles, execute install.sh and I have everything I need.

On servers I am using saltstack [2], a tool like puppet, ansible and friends, to ensure my machines are in the exact state I want them to be. I'm usually using the serverless version and push my states over SSH to them.

[0]: https://github.com/Homebrew/homebrew-bundle

[1]: https://github.com/dvcrn/dotfiles/blob/master/install.sh

[2]: https://saltstack.com

JoshTriplett 2 days ago 3 replies      
If you consistently use the same Linux distribution, consider building metapackages for that distribution.

I created a set of Debian packages that depend on suites of packages I need. I download and install "josh-apt-source", which installs the source in /etc/apt/sources.list.d and the key in /etc/apt/trusted.gpg.d/ , then "apt update" and "apt install josh-core josh-dev josh-gui ...". That same source package also builds configuration packages like "josh-config-sudoers".

zihotki 2 days ago 1 reply      
The question asks only about *nix systems, I assume, but it worth mentioning that there is a great tool for Windows too, just in case if someone needs it - https://chocolatey.org/
_query 2 days ago 2 replies      
I'm using a shell script together with the nix package manager for that. The shell script just ensures that all packages are there (e.g. doing `nix-env -i fpp wget iterm2 jekyll ghc ruby nodejs composer php`). I can pin the version of all packages by configuring `NIX_PATH` to point to a specific `nixpkgs` (the package repository) commit. So that all people have exact the same versions of everything.

Package customizations like a .vimrc is also handled by nix (I recently blogged about how I do this: https://www.mpscholten.de/nixos/2016/05/26/sharing-configura...).

The shell scripts together with the package customizations (e.g. my custom vimrc) are managed by git.

pwnna 2 days ago 1 reply      
I've found ansible to be okay at setting up my environment. I'm able to configure everything from my zsh themes, terminal font size, window manager shortcuts, thunderbird logins, and so forth. The playbook takes about 30 minutes to run and after that I have almost everything ready.

Unfortunately I don't have a public GH repo I can point at as I don't want to expose everything I use to the internet. However the principle is the same as provisioning servers with ansible.

The only thing different I do is I use GPG keys to decrypt and untar things like thunderbird profiles rather than using Ansible vault. I restore GPG keys + SHH keys from offline, encrypted USB backups.

Jedd 2 days ago 1 reply      
Use a configuration management tool (I picked https://saltstack.com/ , mostly because of the docs & community support) but there's lots to choose from - Chef, Puppet, Ansible, and so on.

There's a learning curve, and plenty of 'where did my afternoon go?' rabbit holes you can lose yourself in. But the upside is that you can have consistent, repeatable, and rapid builds, with modularity as a bonus.

Don't be afraid with any of these kinds of tools to brute force complex components if you're in a hurry - ie. ignore the pure / idiomatic way, and use the tool's primitives to dump a shell script on a remote box and then run it.

jmfayard 2 days ago 2 replies      
That's a very good reason to only install apps with a real package installer.

On OSX, this is a no-brainer with brew[1] and brew cask[2]

# On my old mac

 $ brew list $ brew cask list
=> then I save relevant parts for future references

 brew install npm brew install zsh brew cask install sublime-text brew cask install google-chrome brew cask install intellij-idea
[1] http://brew.sh/[2] https://caskroom.github.io/

ramblenode 2 days ago 1 reply      
Setting up a new system is where NixOS really shines. Once you have one system working it is trivial to duplicate it on new metal.

1. Install NixOS

2. Copy configuration.nix*

3. Copy dotfiles

4. # nixos-rebuild switch

5. Enjoy your old setup on new hardware--no secret sauce needed!

*A hardware-configuration.nix should have been generated by the installer. By default this is sourced by configuration.nix, in which case configuration.nix shouldn't need editing.

Sir_Cmpwn 2 days ago 0 replies      
I just install stuff when I run into something I need but don't have. Keeps my system slim.
MaulingMonkey 2 days ago 0 replies      
Manually. I wipe rarely, and change tools often for various reasons (even ignoring version upgrades), making building and maintaining an installation script not worth it.

For awhile I did maintain a windows batch script that installed things off of a share at work. I was dealing with pre-release Windows 8, and wiped frequently for upgrades. Even that probably wasn't worth it, but I didn't have a second machine at the time, and wanted to run it overnight instead of blocking my ability to work.

svaksha 2 days ago 1 reply      
I use a shell script for a new debian[0] installation and also have other scripts for kubuntu[1], opensuse[2] and other software installations. I store my dotfiles[3] and other useful scripts that I can customize for each development environment. Hope that helps!

[0] https://github.com/svaksha/yaksha/blob/master/yksh/apt-debia...

[1] https://github.com/svaksha/yaksha#2-folders

[2] https://github.com/svaksha/yaksha/tree/master/yksh

[3] https://github.com/svaksha/yaksha/tree/master/home

michaelmior 2 days ago 2 replies      
I have a repository[0] that holds all my configuration and installs some language-specific tools. Otherwise I just manually install any packages I need. I may consider automating this at some point but I don't use that many tools so it hasn't been particularly onerous.

[0] https://github.com/michaelmior/dotfiles

tracker1 2 days ago 0 replies      
Depends on the system.. for OSX, first VSCode, second Homebrew, after that VS Code. I use Homebrew to install the version-switchers for my language of choice (usually node/nvm).

From there, I'll setup a ~/bin directory with various scripts as utilitarian. I may source some of them in my profile script.


Windows Git for Windows, Git Extensions, ConEmu, Visual Studio (Pro or Community, depending on environment), VS Code. I should look into chocolatey, but admit I haven't. NVM for windows.


Linux/Ubuntu generally apt, and ppa's as needed.


FYI: I keep my ~/bin symlinked under dropbox, as I tend to use the same scripts in multiple places. I will separate ~/bin/win, ~/bin/osx and ~/bin/bash, and have them in the path in appropriate order... linux/bash being default. I'll usually use bash in windows these days too, and set my OSX pref to bash. It's the most consistent option for me, even with windows /c/...

rcconf 2 days ago 2 replies      
I use Ansible with Brew and Brew Cask. I've found using Brew for everything makes it easier to upgrade all applications for security reasons and it also gives a high level view of my system. Here's the relevant config file of the things I install:


The ansible script also links to my dotfiles, which can be found at:


tlrobinson 2 days ago 0 replies      
I find I end up with a lot of cruft and my tools of choice change over time, so I don't worry about it. A decent package manager makes this approach tolerable.

Homebrew and Homebrew Cask on OS X handle at least 90% of what I want to install.

HugoDias 2 days ago 2 replies      
As a rails developer, I've used and recommended https://github.com/thoughtbot/laptop :)
beagle3 2 days ago 2 replies      
Not directly related, but this seems like the right thread to ask: I've been trying to move from Linux to OS recently, and the one thing I can't stand is the .DS_Store and other files which OSX just throws all over the place, in every directory whether local, network or external drive.

Is there a way to stop it? (installable on a fresh system? I've been experimenting with reformatting, so that's not a problem)

cgdub 2 days ago 0 replies      
I use the Nix package manager. I use it on both Linux and OSX.

Setting up tools is quick and easy:

1. Install Nix

2. Copy my config to ~/.nixpkgs/config.nix

3. Run "nix-env -i all"

xemdetia 2 days ago 0 replies      
I usually develop in VM's where the machines are very well defined so it's easier to build a build machine. In the end though this usually means that the absolute package requirements are held by the project repo so what needs to be installed is based on that.

So if I need to start a project or rebuild a system to do a project I can generally use the project itself as guidance on what to install. After two or three builds I have usually cleared all the dependency hurtles. The only thing that really breaks down is not having your dotfiles available, but for me those are backed up/in SCM.

If you are familiar with building projects from scratch it becomes a lot easier to understand dependencies and grow the system to what it needs to be, and with VMs it is that much easier to start with a blank slate that you are capable of blowing away and not even trouble secondary workflows.

devonkim 2 days ago 0 replies      
I've been using https://github.com/superlumic/superlumic for setting up my Mac machines because it supports a few more constructs that are common for Macs such as plist file modifications. Since it's Ansible-based you use YAML files to configure everything and it works well with Homebrew at least. I spend enough time working on configuration management professionally and don't want to spend any more time than I must to keep sinking time into my workstation's configuration than I have to, so more complicated DSLs / systems like Puppet, Chef, Salt are out for me despite working with those professionally.

In the future I'd like to try NixOS for managing OS X but it seems rather immature at this point for people that want stuff to Just Work primarily.

USAnum1 2 days ago 0 replies      
I keep a series of basic setup scripts for Ubuntu on my github[0]. I do wget and pipe them to bash, which I'm not tremendously proud of...

[0]: https://github.com/cjjeakle/devbox-setup

StillBored 2 days ago 0 replies      
I use bash+rpm.

RPM's are insanely easy to create, and the work helps with deployment/version tracking on the end machine. For example I have an .spec that downloads a given version of codeIgniter, unzips it, tweaks some permissions, and then rolls it into an RPM and tosses it into a network accessible repo. The RPM has a pretty complete list of dependencies, so they automatically get pulled in.

So my devel script looks something like:

 cat <<EOF "EOF" > /etc/yum.repos.d/local-repo.repo [local-repo] name=local-repo baseurl=http://xxxx enabled=1 gpgcheck=... EOF PACKAGES="codeigniter otherstuff" for PKG in $PACKAGES; do sudo yum install -y $PKG; done

CraigJPerry 2 days ago 0 replies      
I did do ansible https://github.com/CraigJPerry/home-network but I've decided it's overkill for my dev machines.

I still like ansible as a layer on top of AMI images when I spin projects up in the cloud though. I don't want to have to go install iotop when I want to use it, I want to just know that my tools are present and ready to go. But I consider this a different type of machine from my dev hosts.

As I see it, the best solution on a dev machine is to make it easy to install software I might need in future. That means having a package manager available and access to my preferred configuration. On linux I just need my dotfiles repo available on the box, on windows I also need chocolatey installed.

zwetan 2 days ago 0 replies      
Not as Bash script but some time ago I documented complete environment setup for Windows / Mac OS X / Linux


The Windows part have a Batch script setup to automate the install of cygwin, apt-cyg, wpkg, etc.

It is very specific to the Redtamarin project, compiling C++, compiling Java, compiling AS3 to bytecode, etc.

there are also other doc for hardware setup, SSH to/from Windows, running "remote" build from the LAN, etc.

but the setup should work for about anything, comments to improve it welcome :)

smountcastle 2 days ago 0 replies      
I use https://github.com/denisphillips/boxible it's like GitHub's Boxen project but instead of Puppet it uses Ansible.
khedoros 2 days ago 0 replies      
At work, we support umpteen OSes in our build (a lot of C++ stuff, so it's picky about where it builds and runs). For the Linux side of things (where most of the dev work is actually done), I'm in the process of building Docker images for our range of build machines, so that a developer can put up a releng-equivalent build environment in a couple minutes, pulling images from a locally-hosted registry.

Our current system is built on a combination of VM templates and documentation for the devs to set up their own build machines manually. Anything that I can't containerize will be stuck there, too.

Keats 2 days ago 0 replies      
I'm on Archlinux and I keep a list of the packages installed from pacman and from AUR and some config files in https://github.com/Keats/dotfiles (https://github.com/Keats/dotfiles/blob/master/zshrc#L39-L40 for the aliases).

I haven't reinstalled in a long time so the install script might be broken though

hashhar 2 days ago 0 replies      
I think you might like this (https://github.com/snwh/ubuntu-post-install/) project a lot.

Well, personally, I made my own project somewhat similar to the one I linked to but mine wasn't that savvy. Plus mine also installed stuff from npm (linters mostly), ruby-gems (jekyll blog), pip and grabbed some sources and compiled them and symlinked them to proper places using GNU Stow.

PS: He's the developer of Paper GTK Theme.

marcosdumay 2 days ago 0 replies      
Debian 8 has been very brittle, what gave me some experience on creating fresh systems at home...

I have my configurations on a version controlled puppet repository. This helped a lot, and I'd recommend anybody to forget /etc versioning, and use a proper configuration control system even when it's not exactly a requirement. I'm about to ditch my /etc backups now.

A certain source of pain is software that must be kept up to date. I have Firefox and GHC on this category. Both hurt, but it's not worth it to repackage them.

pricechild 2 days ago 1 reply      
I maintain Ansible playbooks for my own systems should the worst happen.
edcastro 2 days ago 0 replies      
I use Ansible to install all my desktop basically. This coupled with my dotfiles (that includes a bash for gnome configuration) makes my workstation ready in 15 minutes or so.

This is my Ansible repo for reference:https://gitlab.com/edgard/ansible-ubuntu

And dotfiles:https://gitlab.com/edgard/dotfiles

hacksonx 2 days ago 1 reply      
I'm one of those guys with an install.sh file that I got from my mentor. I just run it on every new install. Last time being when I installed Ubuntu 16.04.
WA 2 days ago 0 replies      
I started to use Vagrant together with https://puphpet.com/ to create a dev machine. I have a MacBook Air and won't pollute it anymore with a dev environment. With a virtual machine, everything stays separated in a nice and tidy way.

Installing dev tools on OS X are a matter of minutes then, because everything else comes with the Vagrant box.

Edit: I'm a web dev guy.

willejs 2 days ago 0 replies      
I use Chef, Ive got a cookbook here that uses policy files to install homebrew and homebrew casks and set up some stuff. It slao tests it in test kitchen, converging an os x system in virtulbox!https://github.com/willejs/chef-workstation
schneidmaster 2 days ago 0 replies      
(OSX) I keep a bash script in a gist on GitHub that I can copy down and run on a new system. It installes Homebrew, rvm, nvm, and then a bunch of homebrew and homebrew-cask packages which is pretty much all of my development environment. Every so often I'll `brew list` and paste in the latest dependency list to keep it up to date.
zwischenzug 2 days ago 1 reply      
I use a ShutIt script:


it's platform independent and automates the install of everything I need.

bryanlarsen 2 days ago 1 reply      
Question: why are you doing a fresh install? If you install everything through your package manager, you don't need a fresh install to clean things up. My operating system has lived through several different machine upgrades. I just do a `cp -a` to copy the files from one hard drive to another, set up the bootloader and go.
recursive 2 days ago 1 reply      
It's about an even split between installers from an MSDN account, and a ninite bundled installer for the rest.
nekgrim 2 days ago 0 replies      
I created a personal list, but half of the install is manually made: https://framagit.org/briced/conffiles/raw/master/INSTALL.md
eropple 2 days ago 0 replies      
I have a bash script and a PowerShell script stored in a web-accessible place. I pull it down and it bootstraps Chef to run chef-solo on the machine from a repository stored in a trusted location.

Dotfiles are stored in Dropbox, too, which is handy for keeping zsh and Sublime synced.

greydius 2 days ago 4 replies      

 sudo apt-get install emacs

thomasreggi 2 days ago 1 reply      
I'm very interested in a way to containerize (runing them within a vm) these tools that way nothing needs to be installed, and could go easily from machine to machine, without polluting the filesystem.
straws 2 days ago 0 replies      
I've had a painless time setting up my mac with https://github.com/msanders/cider
Kerrick 2 days ago 0 replies      
I use Thoughtbot's Laptop. https://github.com/thoughtbot/laptop
pfista 2 days ago 0 replies      
I tried boxen from github. Like others have mentioned, tools like these have a big learning curve and boxen was pretty high maintenance after setup in my experience.
dschep 2 days ago 1 reply      
beat 2 days ago 0 replies      
1. Install Vagrant.

2. Install git.

3. Check out the complete, working development environment and run its Vagrantfile.

digitalpacman 1 day ago 0 replies      
choco install as the need arises
Ask HN: Any SaaS idea to share?
29 points by Im_a_throw_away  1 day ago   12 comments top 5
adiian 1 day ago 0 replies      
An idea is useless. What it matters, especially in SAAS is to identify a need of an heterogeneous group of people. A painful one for which they would pay a certain amount.

So instead looking for an idea try looking for a community and try to understand it. Study it, see what they do, how they do and what they really need. Don't ask them what they need, or if they have an idea because they might not know.

Once you understand them you can start crystallizing an idea. It might be bad, you start (in)validating assumptions, pivotating and iterating through those steps until you reach to the good "idea".

An idea you get from somebody else is in the best case scenario one which identifies a need. You still have to validate it, which is the hard part. And you still have to understand your customers which is even harder.

The successful one man side-projects are successful because they are started by passion by people who follow those steps sometimes without even knowing it. They are annoyed by something or they need something which does not exist. They create it first for them and for people like them.

going_to_800 1 day ago 2 replies      
I want an email service that sends each week 10 saas ideas and also see who started working on which.
wmcneil 1 day ago 0 replies      
I am also interested in hearing ideas. It has been too long since I've last had a good side project and not just small one off things that go unfinished.
smilingtom 1 day ago 1 reply      
I would like to get rich from working on an easy software project that will make me a lot of money for not a lot of effort.

Does anyone have an idea like that? Thank you.

bbcbasic 1 day ago 1 reply      
With YNAB moving to the cloud, a good old fashioned desktop budget app.

Write it natively for Windows, Mac, Linux, iOS, Android and Windows Phone so it performs well.

Ask HN: Toxic employee that has a founder ear
27 points by terrenceJoe  2 days ago   15 comments top 10
dc17 1 day ago 1 reply      
The real problem is not a couple of old-timers. I think thetrue issue is CEO. It looks like your CEO achieved his level of skills and he doesn't grow with a company. That guys are only result of this. So if you can't change a CEO, just leave this company.
bootload 1 day ago 1 reply      
"It's a people problem: there is a couple of old-timers who essentially have CEO's ear and behave like small children. Yelling and swearing at meetings, forcing certain people to be fired, that kind of stuff."*


I was watching/listening to Christine Porath talking about this dynamic yesterday. Watch "How incivility shuts down our brains at work" [0] to understand how incivility destroys your performance, motivation in startups and robs your cognitive resources.

[0] 8.24min, https://www.youtube.com/watch?v=AoT-nmSdAOs

NetTechM 2 days ago 0 replies      
The "Good old boy" club is hard to overcome. I would suggest sending your resume out to some headhunters and when they send back some offers, go ahead and present your case to the CEO. At worst, you get a fresh start at a new job. Best case, he listens and kicks the other two to the curb.
pjc50 1 day ago 0 replies      
Your options are organise or quit.

If it was just you, quit now. If they can "force people to be fired", you have no chance. But if "the whole engineering team has problems with these guys", can you get them to sign a letter of complaint? I mean a physical letter with physical signatures on it. Obviously the whole thing should be organised off email/Slack etc, as you can't assume confidentiality.

The letter should basically imply (but not baldly state) that there is a risk of the team quitting en masse if this is not dealt with. This will obviously destroy the company. You have to be willing to do that in order to make the power imbalance work here.

Your demands need to be specific and actionable. I don't think that you can ask that they be fired, but you need to enumerate the toxic behaviour and call it out so it can be monitored.

(I'm sure someone on HN will turn up to defend the right of employees to be toxic and for organisations to not have codes of conduct ...)

guda 1 day ago 0 replies      
I agree with most people here, just leave as soon as you can.This is a war you can't win but have several ways to "loose".
JSeymourATL 1 day ago 0 replies      
> they made our CEO believe that as well.

Do you have any influence at all with the CEO? Can you manage-up?

It's lonely at the top. He may be completely unaware of your perspective and how to solve the team morale issue.

nontoxic 1 day ago 1 reply      
I took a job as VP of Engineering at a company where this kind of thing was going on.

The guy was on my team. He acted totally inappropriate toward women, made horrible homophobic and lewd comments all the time, insulted the brand and brand creative, intimidated and antagonized others, etc. Toward me he acted officious and friendly, but was not aware that I observed his actual behavior several times from a room adjacent to the open floor plan.

When I talked to the founder/CEO about it I realized she was not willing to discuss any deficiencies in his conduct. I was also at the office late one night and she IM'ed him (seemingly while intoxicated) and flirted with him extensively. I was also pressured by the founder to promote him into some sort of leadership role.

After seeing how he intimidated people (particular junior developers, QA team, etc.) I felt he was not well-suited for a leadership role. He also stirred up trouble and did his best to create a clique and make fun of several people on the team who challenged his technical opinions.

I documented all these concerns with HR and encouraged the harassment victims to make an official complaint about one of the incidents. I explained that it was a tough situation because of the founder's loyalty to him, and that while I was hoping he'd find another job I was sure it would reflect poorly on me if he quit.

The most surprising thing was how his approach (arrogance, hyper-confidence, indignation, loud speaking voice) made nearly all the non-technical people in the organization convinced he was a world class technologist. In reality he had pretty poor technical judgment and many fairly counter-productive prejudices which he was convinced were best-practices. His disdain for QA led to most of the embarrassing bugs the company had suffered, often because of his boorish intimidation of the QA team and disregard for process.

Occasionally he'd show me his code and seem to be seeking approval. He was actually quite insecure and so I tried to give him whatever positive feedback I could. He also claimed to have gotten the past two VPEs fired and threatened to do the same to me.

I realized the situation was bad but figured it wasn't worth playing games to try to "win" when the founder had pretty poor judgment about his conduct and character.

Overall he cost the company millions in lost productivity, and I recently realized he is now the VP of Engineering there. The company has peaked and is now in a mode of loss-mitigation and likely fairly small existence as a going concern that would probably have been better off as a small business and not a VC funded growth machine.

Lessons Learned:

- Decide what is worth fighting for: While being good at politics is a useful skill, is the company worth it? Do you want to win to be part of something you ultimately don't respect?

- Life is too short: If you or others on the team are experiencing stress and burn-out, think of all the other jobs and teams you could be working on that would leave you feeling inspired and productive at the end of the day.

- The founder may not deserve your help: Bad judgement in one area likely indicates bad judgment in a host of areas. This happens to be the one you are most aware of. When a company gets angel funding it gains a salesperson, and so on through each round. So just because this company has capital does not mean it deserves it, only that each salesperson wants to find the next buyer.

- Take what you can: If you do respect some people on the team, get to know them and prepare to bring them wherever you go next. Talent is scarce, and the relationships you make will help you populate your next team with great people.

- Last point: If you work with a founder you can't have a frank conversation with (either because he/she is aloof, busy, or otherwise) consider leaving. Too much is at stake to waste your life working to help build the dream of someone who is so out of touch.

_RPM 1 day ago 0 replies      
Reading this thread gives me anxiety. I had to stop.
thefastlane 1 day ago 0 replies      
like everyone is saying, just quit. you've only got one life to live.
youarescrewed 2 days ago 1 reply      
Yes, I have experienced this before. Quit now and save yourself months of agony. Even if you somehow win this battle, you're still going to lose the 'CEO is an idiot' war.

Let me repeat this again: QUIT NOW. Save yourself the pain. You have already lost because you work for an idiot. Don't throw good money after bad.

Ask HN: Is it practical to start a 1-person Micro ISV these days?
9 points by augb  1 day ago   17 comments top 10
mperham 1 day ago 1 reply      
OSS helped because I could build it in my spare time with little investment or risk. I spent the first two years building Sidekiq and Sidekiq Pro and was able to build up an audience by blogging and tweeting.

I spent 15 years working at various startups and earned little more than a typical dev salary in the end. Today I'm making several times my previous salary so the business has been a big success for me.

As for visibility, I'm happy owning my own little niche of Ruby background jobs. I don't advertise or market much, just provide the best product I can, support it every day and developer word of mouth does the rest.

a-ron 6 hours ago 0 replies      
I don't know. I think the "gold rush" period is over, probably was a while ago. Seems like everyone wants to start their own micro-ISV or SaaS or whatever, but I'm projecting. And I'm jaded because I've failed a few times at these things and have a sour taste in my mouth about their viability these days.

I think those of us looking to start something really want certainty that whatever thing we're thinking of building will be successful. I think it can be, but it takes more grunt work selecting the right thing to build.

To answer your question, yes. Go do it then come back and tell us how it go. And good luck.

sixQuarks 10 hours ago 0 replies      
There are lots of successful 1-person online businesses, but they are not software businesses per se. HN has a huge bias towards apps/software, we only hear from coders/technical people. When it comes to Saas apps, there aren't many examples run by solo entrepreneurs.

The vast majority of successful 1-person businesses are run by non-technical people and are more content-driven then software driven.

jventura 1 day ago 2 replies      
I'm trying to build a 1-person business for quite some time, going back and forth between ideas. Sometimes I think I would like to implement a desktop app, sometimes I feel web apps would be better, sometimes I just want to quit, etc.

In the last couple of weeks I've been finally building my product as a web application mainly because of these factors: currently I have more experience on web development that desktop development; I use a lot of SVGs and tables and they are easier to do on HTML; I have my source code in Python and C and it is a pain to distribute Python; cross-platform desktop development tools are not great nowadays (Qt is the only serious option and it sucks); I would have to distribute lots of libraries with my application.

The way I see things now is, if you really want to test the market for something and you can use a web app, do it. It is easier for you to control the updates, iterate faster to improve your idea, and have better discoverability. It is less painful for a prospective client to click on your URL than thinking on downloading and installing your application. The funnel for web applications is smaller than for desktop apps [1], and that is really important when you want to test your application.

Later in the game, after you have a stable idea and enough loyal clients, you can always move to the desktop or mobile if that's the case. This is what is happening with all major SaaS nowadays, they start on the web and eventually go to the desktop when they reach some maturity (Evernote, Slack, etc...)

[1] http://www.kalzumeus.com/2009/09/05/desktop-aps-versus-web-a...

baccredited 1 day ago 0 replies      
>Is it practical to start a 1-person Micro ISV these days?

I don't think so. I've launched a few 1-person SaaS companies in the past, and some were popular (but not profitable). I've settled on earning a salary and investing as much of that salary as possible.

I still get the urge to build stuff, and I still do, but I now look at it as a hobby.

iatek 1 day ago 1 reply      
IME, the person's idea for the first product is the reason they start the micro ISV in the first place. I don't know of anyone who started an ISV, and then thought of a product.
sharemywin 1 day ago 0 replies      
apps could be ISVs. A lot of software is going Saas because the cost per customer tends to get pretty high unless you can get cheap traffic. List on a popular top 10 list or rank high for a keyword.
lj3 1 day ago 0 replies      
RAD Game Tools seems to be doing just fine.
Mz 1 day ago 1 reply      
I have asked around previously. I didn't get much response. I posted a short list to my blog:


This list is not just software vendors. Some are webcomic artists. I was interested in any really tiny web operation actually making enough money to support the people running it.

I suspect the lack of response is partly due to low visibility and/or a desire to lie low. Small shops that don't want to grow into big corporations do not necessarily want excessive attention and also may not be well known enough (as a Micro ISV specifically) for other people to confidently say "Yup, this qualifies." A small shop doesn't need tons of traffic and money to support the few people working on it and may view excessive exposure as a bug, not a feature.

Ask HN: Is the beer test relevant in choosing investors?
5 points by gnicholas  22 hours ago   3 comments top 3
davismwfl 22 hours ago 0 replies      
Yes and No. I don't subscribe to the fact that you have to be drinking buddies with your investor, but at the same time, if you can have that relationship then that is awesome.

What is important is that you and any investor you are talking to see the future and your business in a similar way and that you feel they are a positive impact on you, your business and can bring you at least 1 or 2 additional things other then money. If they only thing the investor brings is liquidity, walk away as it won't be a positive relationship in the end.

JSeymourATL 13 hours ago 0 replies      
Likeability and relatability should be only ONE attribute of several on your investor scorecard.

Beyond the money piece-- dive into their experience, skills, and expertise. Not unlike evaluating talent hires for your team-- you'll need investors who can also help you solve problems, move the agenda forward, and drive results.

Ask HN: Is gun purchase data available?
7 points by vs2370  1 day ago   19 comments top 12
danielvf 1 day ago 1 reply      
To get a first approximation on this, assume everyone in the US has access to a gun, then take a look at the FBI's yearly extended homicide tables, which breaks down US homicides by demographic factors, (and means of death)

The first, obvious conclusion from FBI data is that a group making up approximately 4% of the US population commits about half the US homicides, mostly against others in that group, and the other 96% of the US has a homicide rate lower than England - and also much lower violent crime rate than England.

jdc0589 1 day ago 1 reply      
Not publicly, so far as I know.

Any time someone purchases a gun from a store, or from most dealers at gun-shows, a background check gets run. This, + paperwork and records residing with individual sellers are your only real sources of data, neither of which are public.

The concept of a national gun registry has been debated hotly for quite a while, but that would definitely not be public if it existed.

tmaly 1 day ago 0 replies      
there are so many gun owners in the US. If you look at that sheer number and compare it to the number of horrible incidents involving guns, I think it would be hard to draw conclusions on gun purchase data.

I think building a model on other factors about the people that commit these acts would perhaps yield better results.

poof131 1 day ago 0 replies      
I think you may be going into precog territory while looking for a needle in a haystack. Some of the common patterns seem fairly well documented: disaffected male, mental issues, history of abuse, affiliation with radical islam. But most experts seem to believe finding a key indicator before hand is really impossible since you will also label so many people who will actually resist the urge to violence. The Orlando killer popped on the FBIs radar twice and they couldnt make the call with all the expertise and experience the organization has. Machine learning a data model to predict violence will have so many false positives as to be either useless or used as a totalitarian hammer. [1, 2, 3, 4]

[1] http://www.huffingtonpost.com/2012/12/19/mass-shooting-psych...

[2] http://www.livescience.com/21787-predicting-mass-shootings.h...

[3] http://andrewgelman.com/2016/02/25/probability-paradox-kills...

[4] https://bayesianbiologist.com/2013/06/06/how-likely-is-the-n...

hga 1 day ago 0 replies      
It's not going to be very interesting, but the entire lists of NYC residents who got handgun and long gun licenses was published a while ago, less than 60K each for a city of 8 million (I counted the totals myself, easy with a fixed number per all but the first and last pages).

Also check the Federal government statistics as organized by the US gun industry lobby, the National Shooting Sports Federation: http://nssf.com/ Look up the ammo production and importation numbers, well over 12 billion per year, and I'm not sure which include the seconds from the DoD Lake City plant that ATK sells to us (the Pitman-Robinson point of sale tax data will).

Maybe also check the raw numbers of concealed carry licenses, the GAO publishes these, but 10 states now don't require a license. I'll add that at the local level of my home county, Jasper in Missouri, as of a year and a half ago, 5% of the age eligible population had a $$$ Missouri concealed carry license ("$$$" because our's is one of the most expensive, and any state's will do if you want to save money). All these numbers are rapidly increasing as the population ages, as well as the other obvious reasons.

partisan 1 day ago 1 reply      
Following the [X] I was wondering if we can build a model [Y] and some other data sources like [Z], etc ?

(X = Reichstag Fire, Y = of potential communists, Z = communist party affiliation)(X = 9/11 Attacks, Y = of terrorists, Z = mosque attendance)

I guess you could, but has history taught us nothing?If I am a communist, am I a threat to you?If I am a muslim, am I a threat to you?If I have a gun, am I a threat to you?

I don't own a gun or have a gun license, nor do I want to be the victim of gun violence (or violence of any kind, having experienced it), but I don't know what you would gain from this information if you are looking to profile a potential disaster.

akg_67 1 day ago 0 replies      
Firearms Dealers vs. Burgers, Pizza, and Coffee http://flowingdata.com/2016/06/14/firearms-dealers-vs-burger...

ATF Listing of Federal Firearms Licensees (FFLs) - 2016https://www.atf.gov/firearms/listing-federal-firearms-licens...

This might offer a start.

jneumann004 1 day ago 0 replies      
I'm not sure about gun purchase data, but the Bureau of Alcohol, Tobacco, Firearms and Explosives has some interesting information on their website (https://www.atf.gov/resource-center/data-statistics). I'm not sure if this is useful for you, but I hope this helps you out.
convivialdingo 1 day ago 0 replies      
I read a well done statistical analysis on state-by-state gun ownership correlation.

You might find some of the data sources listed valuable.


sschueller 1 day ago 0 replies      
If you watch last week's John Oliver you will see that due to heavy lobbying there is no proper electronic record keeping. Gun stores keep record but on paper and when they close the data is put on microfilm stored somewhere.
fapi1974 1 day ago 0 replies      
I heard on NPR that the National Institute of Justice, which is an arm of the Justice Department, has funded some studies. Might want to try there.
vs2370 1 day ago 1 reply      
to add, there is also training data available in form of people who have committed shootings or have any crime record. its then just about feature selection that could prove some causation or correlation
Ask HN: What is your initial setup for your personal computer?
3 points by abahlo  1 day ago   3 comments top 2
kiloreux 1 day ago 1 reply      
Linux UbuntuEmacs with https://tuhdo.github.io/c-ide.html

Ros (Robotics stack)

OpenCV (from source)



Google benchmark and Google test

Linux perf tools (I am one crazy measuring geek)

GCC (latest version from source)

LLVM (Same ^^^)

and one that I don't use that much is radare2 since I am reverse engineering hobbyist.

Ask HN: What's the best way to leave a new job
14 points by penguinlinux  2 days ago   12 comments top 8
venusiant 2 days ago 1 reply      
It are right that it is a good idea to leave a job without saying negative things about them.

The line "I felt like it was time to move on" is an adequate reason for leaving, and it's not something anyone is going to argue with. After all, leaving is a personal decision. In addition to that, three years is an above average length of time to stay in a technology job.

If someone directly asks you what you don't like about working there (such as in an exit interview), simply state that you don't want to answer the question. If they push you, simply state that you have no comment. It's a good idea to decline to answer all the questions in an exit interview. They don't have the right to force you to answer such questions.

If you a nervous about the initial conversation with your boss, kick off the resignation by sending a short email to HR saying that you wish to resign and you are giving your notice from that day (or whenever you prefer). HR will fill you in on what the procedure is and notify all the relevant people for you.

calcsam 2 days ago 0 replies      
This is what I understand: you work at a big company. You got offered a job at a startup. You want to take it.

It's easy. Tell your boss, "Listen, I love the work I've been doing here, but I have the chance to join a startup and it's an environment I'm really interested in exploring."

Some notes:

* Big companies lose people to startups all the time. This is a narrative they totally get.

* Companies never expect departing employees to give them the full story.

Leaving a job is a totally normal thing to do. You don't have to worry about hurting anyone's feelings.

kafkaesq 2 days ago 1 reply      
Don't sweat it. The simple general way to handle these kinds of exits is to just walk up to the appropriate person and say, "So, I have some news for you. I've decided to pursue an opportunity at another company." And then if they ask, you can start going into the various factors you've listed above (all of which sound perfectly legitimate). In fact there's one little nugget in your writeup which cuts to the heart of the matter, and while they may be a bit disappointed to hear you say it, it's a perfectly fair view for you to hold:

I feel like I can't be the best or do the work I am good at.

The basic point with this approach is you don't have to hit them over the head up front with your laundry list of negatives. By waiting for them to ask, you're making sure you have their permission first before telling them things that might hurt their feeling.

(Not that you should worry so much about hurting their feelings. After all, it's just business).

JSeymourATL 1 day ago 0 replies      
Understand that the systemic problems in your present job are a function of poor leadership.

Your direct boss (worse still, HR) likely does not have the brains/inclination/juice to change-up things.

Leave on a friendly, professional basis-- no parting shots necessary. Volunteer to put together a transition document. The industry is actually quite small, networks overlap.

pmiller2 2 days ago 1 reply      
Just put in your notice and say you had a better opportunity come along. You don't owe them any explanation. Start having lunch with any coworkers you want to keep in touch with after you leave, and make sure you keep your network warm.
saganus 1 day ago 0 replies      
In my experience most (maybe even all?) of the times I've had to leave a job and I think about how to do so, I end up realizing that the best course is to be honest.

In your position I would pretty much just tell them everything you just said. It's not even close to what I would consider bridge-burning reasons.

What exactly don't you like about saying all those things?

If the reason is along the lines of "because I don't want to", then just say like others have said "I have found an opportunity that I would like to pursue"

Best of luck!

hga 2 days ago 0 replies      
If you can honestly say it's a shorter commute that's also a good reason to give (although I'd avoid telling them were you are going).
oceanswave 2 days ago 0 replies      
Slip out the back, Jack
Ask HN: I'm in Construction industry, building an API. How should I price This?
7 points by dhruvkar  1 day ago   12 comments top 5
brudgers 1 day ago 1 reply      
Based on my experience in the US construction industry, I haven't seen many people paying for specialized API's. In the vast majority of cases, availability and price are often at least as important as aesthetics.

It's hard to see who the customers would be. Using an API requires an atypical level of technical expertise. Contractors have their suppliers. Suppliers have their inventory. Architects? well maybe since specifying high priced unavailable materials is not unknown...but their business is the least likely to make money by spending money on an API.

In general, money in construction changes hands when construction happens or materials are sold. Monetizing information about stone is perhaps more likely the more it is directly tied to such transactions.

Good luck.

saluki 1 day ago 1 reply      
How much value are you providing/time savings.

I expect you could have a few plans starting out at $99, $249 and $499.

Tiers by users/api calls, etc.

Construction industry software typically seems to command a premium price so maybe more that my off the cuff numbers.

Pricing is more art than science, how much will companies pay you based on their time savings/value of using the api is the answer. Also you ran roll out initial introductory pricing and then change based on what the response/signups are.

oranson 1 day ago 1 reply      
How much are similar websites offering? What is your competition's (or similar) price?

You said no one else is doing it, but where ever you got the idea from, how much are they charging?

smt88 1 day ago 1 reply      
Who are the customers? How much time/money will you save them?
SixSigma 1 day ago 1 reply      
To me, as a construction buyer, it sounds like how I would choose one supplier over another rather than something I would specifically pay for.

That said, I don't spend hours chasing down specific granites so that might be value alone to others.

Have you discussed pricing with potential customers? They are in the best position to suggest the price.

Ask HN: What programming languauges does the High Frequency Trading Firms use?
10 points by moshiasri  2 days ago   10 comments top 6
tmaly 1 day ago 1 reply      
my previous comment "mostly C++" got down voted. I happen to work at a firm in this industry. C++ is the language used most in HFT.

Aside from this, you can verify this by just looking at the job postings.

canterburry 2 days ago 0 replies      
I found this YouTube presentation very informative about how an HF firm uses Java for live trading...

Just one awesome fact...they structured their code such that they only have one GC event a day (and it's tuned to happen at night). Watch it, pretty cool compared to anyone doing plain vanilla java dev at an enterprise.


chollida1 2 days ago 1 reply      
For anything on the fast path the list would be mostly what you'd expect:

- C++

- C

- Java

- Verilog/VHDL or what ever language your FPGA tooling requires.

As for support tooling then python and R are very popular.

It's important to note that its not only speed that dictates what you use in HFT, the shear amount of data you need to handle also dictates what you use. As an example C++'s inplace new operator helps for things like object pooling.

I'm not UHFT or HFT and we can get by with F# and C#. We are at the stage where we have to think about our data structures and memory access patterns but we aren't throwing away readability and maintainability just to get the best possible performance.

From my experience, its much more typical for funds to target performance around this level than the HFT level.

I guess it should be said that you can name almost any programming language and you'll find that someone is using it and claiming to be an HFT shop, ie someone will probably mention OCaml due to Jane Street.

This question http://quant.stackexchange.com/q/12618/743 on the quant stack exchange shows that pretty much every language gets used.

libx 2 days ago 1 reply      
See the documentary 'The Wall Street Code' https://www.youtube.com/watch?v=hw3XtscVCVI AFAICR one of the protagonists (Haim Bodek) said his company had one million lines of C (or mainly C) code for HFT trading.
Rainymood 1 day ago 1 reply      
I know that Jane Street is a London based firm that works completely on OCaml ... not sure if there are any firms that use Haskell though
tmaly 1 day ago 0 replies      
mostly C++
Ask HN: Good MOOCs to fill in self-education?
4 points by fizzbatter  1 day ago   4 comments top 3
projectramo 6 hours ago 0 replies      
Of the big three (Udacity, Coursera, EdX), my favorite for tech courses is Udacity. The others can be great, but the level of detail and clarity of instruction on Udacity is startling. I wonder how much better an experience undergraduate computer science must be for some people.
carise 1 day ago 1 reply      
Algorithms/data structures classes are a good start.

I hear that the Coursera algorithms classes by Prof Sedgwick (Princeton) and Prof Roughgarden (Stanford) are very good. I think the Princeton ones might not be available after the Coursera switchover so would recommend downloading the course content if you can. There were some threads on HN in the last week about it.

Also MIT OpenCourseware has Intro to Algorithms which I hear is good too.

selmat 1 day ago 0 replies      
Here is my own selfstudy process...it works for me...

You can take whatever university degree. Read list of mandatory subjects. Take sylabus and list of recommended literature for every subject. From list of resources take one or two and read them. Almost every course has some fundamentals and introduction to X, to get all students on the same starting line. What you will not understand just ask someone more experienced or google it. Experienced colleague* he wil tell you some hidden notes or let you know this is not so important for your future career if dont wanna be xyz. Take just one and intensive course for month.

We are not fulltime students so we dont have such amount of time dedicated for study.

*you need to have trustworthy colleague who will support you. I know some highy skilled professionals but communication and learning from them is very difficult.

Ask HN: Why do links open in the same tab on Hacker News?
3 points by esalazar  1 day ago   14 comments top 9
siquick 1 hour ago 0 replies      
I use this Chrome plugin to open links to any external site in a new tab


brudgers 1 day ago 0 replies      
A user script using Greasemonkey for Firefox or TamperMonkey for Chrome/Chromium can change the behavior. For example:

 // ==UserScript== // @name add_target_blank // @namespace com.kludgecode.demonstration // @include https://news.ycombinator.com/news // @version 1 // @grant none // ==/UserScript== var stories=document.getElementsByClassName("storylink"); for (story of stories) { story.target = "blank"; };
Will add the behavior for the Hacker News front page. I tested with Greasemonkey and I'd expect it to work for Tampermonkey.

Greasemonkey: https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/

Tampermonkey: https://chrome.google.com/webstore/detail/tampermonkey/dhdgf...

augustt 1 day ago 1 reply      
That's the default on pretty much every site (google, reddit, etc). Instead, you can cmd/ctrl click the link.
auganov 1 day ago 0 replies      
I just Ctrl-click when I want it in a new tab. Always expect a single click to open in the current tab, otherwise it's an annoying surprise.
_RPM 1 day ago 0 replies      
It's possible that it's a security thing. I consider it a feature. `window.opener` can do things that might be considered malicious.
JeffreyKaine 1 day ago 0 replies      
I asked this a while back as well. I'm with you, but the community seems rather split on the subject.
NetStrikeForce 18 hours ago 0 replies      
ctrl (or command) click does the trick, but for me it's easier to just middle-click with the mouse (or click the wheel).
cwt 1 day ago 0 replies      
Use Chrome, install the Vimium plugin: F + {Letter Combo}
crispytx 1 day ago 1 reply      
Because Hacker News sucks...
Ask HN: Microsoft Computer Vision API or Google Cloud Vision API?
75 points by jharohit  3 days ago   50 comments top 21
buro9 3 days ago 1 reply      

Pricing is more friendly than the other two. The API is nice.

I did like Google's a lot, but the price just wasn't there for me. Especially if you want most processing options.

Microsoft have been in this game a lot longer, but surpisingly a lot of their cool stuff isn't in their APIs. i.e. ability to spot similar images and seamlessly stitch them. This stuff was in their maps products a long time ago, and you can download tools of theirs: http://research.microsoft.com/en-us/um/redmond/projects/ice/ but no APIs. Their basic APIs are just basic... so why not save the dime and go with a smaller player offering just the basics but very well instead.

malux85 3 days ago 1 reply      
Depends on the complexity of what you require. I know I might get down-voted for this, but if your task is relatively simple, then roll your own using deep learning. Message me if you want help with this.

I wouldn't rely on either for my own startup, because I dont think these API's will have broad appeal, as a result wont get traction, and will be shutdown with little warning.

I could help you if you want - my email is in my profile

JoshTriplett 3 days ago 2 replies      
OpenCV includes face detection, and given a reasonably limited corpus of faces, it performs quite well and quite reliably.

(Whether you want to use that or use a service depends on how close to your core business this is.)

wstrange 3 days ago 1 reply      
Interesting looking at Google's Vision API overview, where they explicitly state that facial recognition is not available.

The technology to do this clearly exists, but I gather they are concerned about the potential for abuse. Which makes sense. You could build some very creepy apps with this.

chdir 2 days ago 0 replies      
A request to those suggesting "why not X" or "consider X" : If you could mention a reason or two favoring X over Y, that'll help OP & future visitors.
ANaimi 3 days ago 0 replies      

Pay-as-you-go, many APIs, supportive community.

For your use case you might want to check the Computer Vision tag, specifically the "Illustration Tagger" algorithm.


beagle3 3 days ago 2 replies      
I'm interested in good OCR, preferably local, but I'm close to giving up and using Google Cloud Vision API --- It works well for text that's not prefectly aligned and laid out - unlike e.g. Tesseract or any other local OCR I've used.

As far as I can tell, clarifai.com doesn't have OCR, and neither does anyone else except MS and G.

shireboy 3 days ago 0 replies      
Develop your code so that the API is pluggable. Try both and decide which works best for you.
danielmorozoff 2 days ago 1 reply      
It really depends what you are attempting to accomplish, and what you wish to detect in the images.

As you mentioned faces:

Are you looking for face detection or recognition? Face detection has been robustly solved before the advent of DL with HAARs/ face models. Now being pushed a bit further with DL.


Current cutting edge face recognition systems rely on DL, and the top performing models are one out of Russia (NTechLAB, facenx_large) and one from Google (FaceNet v8). These were the top two performers in the MegaFace challenge - identification with 1M distractors. Truly remarkable results.http://megaface.cs.washington.edu/results/

As with most DL systems you will need a massive corpus of labeled faces (aka, google or vkontakte - which the NTechLab group used)

mitbal 2 days ago 0 replies      
I have tried both some time ago for an OCR task. In my brief experience, GCV performs better than Microsoft. Also last time I tried, I sometimes randomly get server error from Microsoft, so I guess Google infrastructure is more ready. The downside is GCV is a bit pricier. Also both do not provide parameter to set language models, so that's a minus in my eyes.
jimmcslim 2 days ago 1 reply      
Is there a publicly accessible API that can geocode photos, to a degree of accuracy? I'd like to be able to decorate digital photos taken before geocoding was a thing with geo data. I figure photos I have taken off St. Marks Square in Venice have probably been taken a million times by other people, some of whom have probably added GPS coordinates to theirs, so a smart CV offering should be able to figure it out to a sufficient degree of accuracy (for reasonably well photographed and unchanging locations of the earth).

EDIT: I see Google Cloud Vision has landmark detection, that might be useful if the API returns the GPS coordinates of the landmark.

adityapatadia 3 days ago 0 replies      
We build customised image labelling solutions where you can label many more things like type of neck in a cloth, pattern of label on a mug and many such things which is not supported by Google or Microsoft.

We also offer finding similar images as well as image search capabilities apart from finding tags from images. Please connect at https://twitter.com/adityapatadia to discuss further.

moofight 3 days ago 0 replies      

Alternative solution for image moderation and nudity detection. Simple API and simple pricing.

ismdubey 3 days ago 1 reply      
When I checked last, Google API does not allow to identify specific faces. It can detect faces but that's it. Clarify or Microsoft do.Pricing wise almost all are the same. In my view, Watson is a complete no no..
NEDM64 3 days ago 1 reply      
I think Microsoft's works better, try also IBM's if you can.
swframe 3 days ago 0 replies      
Do you know of a human pose estimation from 2d images service/library?I've seen papers about it. I would like to try it out.
rocky1138 3 days ago 1 reply      
Consider Imagga.


ma2rten 3 days ago 0 replies      
I think it depends on your dataset and application. It should be easy enough to try both.
rajeshr 2 days ago 0 replies      
What works well for face detection in low light images?
staticmalloc 3 days ago 1 reply      
Microsoft's CV API worked better for me.
Ask HN: When starting a new product build, how do you write out technical specs?
12 points by bryanmgreen  2 days ago   6 comments top 4
alexeysemeney 4 hours ago 1 reply      
Hey Bryan, I have built several long term project myself (and continue to do so) and helped a ton of folks running http://devteam.space. Maybe you can apply this process to your new project (about medium below that). Here it is:

1. Project description. Plain simple explanation what your project does, etc. You might think it's an obvious and redundant thing. But it's not. It does help you to nail the project, define critical points and set all the team members with the same vision in mind. It should be 1/2 of the page.

2. User path. Describe how user finds you, sign up, start using it, what gets out of your project, why returns, and why be proud to tell others about it. If you build a marketplace/platform - build these stories for all types of users you have. This one is super important. It helps you to define bottlenecks, interface elements, user behavior, strong/week points, etc. It also can help you to describe your project to your potential users, so you could check if they are cool about using it. You might find you need to pivot without writing a line of code.

3. UI - describe it in the list form with several levels. It will help you to understand the real complexity of what you are building and delete unnecessary things.

4. Features list. You know how to do that already.

5. Tech specs. I guess you know how to do that too if this is not your first project.

6. Draw the UI on a paper. It will help the designer, and you will see some obvious things you should delete/add.

Medium - we use gdocs. Mind maps work well too because you can present the user path in a visual format and play with it changing pages/actions.

It sounds a lot, but man it saves so much time and resources down the road. If you need more advice - ping me at alexey(at)devteam.space - happy to help, good luck!

steejk 1 day ago 0 replies      
Not software engineering, but we (big corp) use IBM DOORs [0]. It's not the most intuitive, but the concept is you define feature requirements which cascade down to requirements in sub-levels.

[0] http://www-03.ibm.com/software/products/en/ratidoor

sua_3000 2 days ago 1 reply      
We use Epics in Atlassian's Jira. Each ticket is a feature story which together compose an Epic.

I have also seen Trello cards work well for recording specs

funnywalrus 2 days ago 0 replies      
My company uses G-Docs but within a folder called Specs and each doc is a main category. A little easier track changes, but still kind of clunky.
Ask HN: Bay Area physical store to buy FPGA dev kits?
3 points by tostitos1979  1 day ago   discuss
Ask HN: What (lightweight) bug tracker do you use?
3 points by neilellis  15 hours ago   5 comments top 5
piyushco 49 minutes ago 0 replies      
We use https://leantesting.com, minimal lightweight bug tracking tool with slack integration & browser plugins.
connorski 3 hours ago 0 replies      
I built BugTower (https://bugtower.com/) as a lightweight bug tracker. I find it useful :)
xenophonf 14 hours ago 0 replies      
I needed a light-weight project management tool, too, so I set up a private Trac instance with the MasterTicketsPlugin (among others).
Madawar 11 hours ago 0 replies      
ajthomascouk 14 hours ago 0 replies      
Ask HN: How much money should I save up before quitting my job?
18 points by trynabootstrap  2 days ago   21 comments top 10
dalerus 2 days ago 1 reply      
Having bootstrapped a couple of times:

1) I would double your estimated time to build. Worst case, think it would take 9-12 months.

2) Personally, I wouldn't get too into the finances of my co-founder. I'd just want to know that what are bringing (financially, sweat equity, and/or key industry knowledge) are equal. If I'm bringing 50K, my partner should too.

But to answer your question, if I was that co-founder, I would. I would look at paying off the debt and lowering the overall amount we needed to get to MVP.

3) Numbers look more than reasonable. Actually, I know a lot of people that would never have that much to bring to their own startup.

4) Don't touch the 401(k) or Roth.

Are you sure you need all this money and time to get your MVP ready? If you're bootstrapping, why not stay at your current roles and code in the mornings, evenings, or weekends?

Get your MVP done, get it into the hands of customers, and see if you find a fit. I'm not sure you need all that time and money...

kiraken 2 days ago 0 replies      
Well, i've helped hundreds of startups launch their product, and you guys are more prepared than 90% of my clients.You have enough money to survive for a long time, the technical knowledge to create your product ( I assume ) So you wont have to hire external help and a low burn rate. As for your friend's debt, it can wait for now, and you'll always have the 401(k) as a fallback If push comes to shove. Though its worth mentioning that you guys shouldn't probably quit your jobs until you pitch your idea for some random people, and see its viability in the market. All our ideas seem great to us, even if they're not.

As for when you should start raising money, i think that you should start pitching investors while you're working on the MVP to not lose time. And schedule meetings right when the MVP is ready.

There are a lot of other things that you should consider too! Feel free to reach out to me on Quora. I usually answer questions there and help new founders in my spare time. For free of course. https://www.quora.com/profile/Aladin-Bensassi

brudgers 2 days ago 0 replies      
My random advice from the internet:

+ Tap financial resources as you go. You will [hopefully] be iterating. Limiting the amount of cash in the company will reduce the chance of overspending on dead ends. Manage cash flow: 20% of $20k is a lot less than 20% of $100k.

+ Paying off student debt is foolish. $20k is 10 months living expenses. Over that 10 months loan payments are probably about a quarter of that. That's an extra six months of life.

+ Divide the company 50/50. If there's success, the 2% difference in equity isn't worth fighting over, the 100% difference in control is. If there's a disparity in initial investment, make it a loan with moderate interest if you must. Otherwise, one founder taking control of the company from the other is within the rules of the game.

+ Working toward product market fit is more important than building a proto-type. It's also harder because it requires talking to people and changing direction and dealing with rejection rather than going head down building a prototype using familiar skills.

+ Tap into your 401k when there is a clear business case for doing so. You can't blow it on Aeron Chairs and Macbook Pros and Google Adwords until you've got it to blow. Wait until you really know what you're doing.

+ How much money you should save depends on the business model. A SAAS can go up on Heroku for ten bucks a month. The first quantum smartphone is another matter.

+ The worst course of action is to spend six months building something, uveil it, and discover nobody wants it. What you're building is a company.

Good luck.

AnimalMuppet 2 days ago 0 replies      
It's possible that you are building something that nobody wants. How long is it going to take you to decide that you have failed (if you do)? Do you have enough money to get that far and still recover (find a new job before you are bankrupt)?
new_hackers 2 days ago 0 replies      
"We can live with family members -- so rent will be free"

Boy how generous and mature of you to take advantage of your family while building your empire. Also does that $1000 include paying for your own insurance? What are you going to do if your dream fails? Continue to live at home?

It sounds like your plan is only accounting for if everything goes exactly right.

Personnally, my recommendation is to do this:

- continue working. If you really want this, you should be able to build a MVP on the weekends (it didn't sound like you were married or had children)

- live on $1000 per month including savings and tithe. So for $1000 of "income" you should be able to live on $650. if you can't really do this, then adjust your required income numbers

- figure out how much you would need to live on your own. Add that to your income requirements. Then if you still want to live at home, then pay your parents. That food, laundry, property tax etc isn't free. They have to pay it and they have much less earning time than you.

- do not touch your retirement, you will need it later

- pay your debts, if you do the plan above, your friend should still have enough real income from their job to pay off the loan

sharemywin 2 days ago 0 replies      
I didn't see any kind of marketing, sales plan. Your story would sound much more interesting with 10 customers lined up to give you $500/mo when your mvp is ready to go.
meric 2 days ago 1 reply      
I have not started a startup:

1. $1,000 / month / person sounds sufficient, living with family.

2. I think paying off the loans are good idea, since the loans carry interest.

3. Your username is "trynabootstrap". What would it take to know your product either falls flat or bringing in regular revenue? Do you need to raise money for that? Before you raise money, you will continue to have the option to go back into full time work to "recharge" and work on this part time, and then quit the job a year later and work on it again. Once you've raised money, this option won't be on the table anymore.

4. No, I don't think tapping into 401(k)s and Roth IRAs is a good idea. That's the kind of thing I rely on in case my own money making schemes fail.

ramtatatam 2 days ago 1 reply      
If your product is creating new market then consider how long will it take to close a deal. If you plan to have a MVP in 6 to 12 months and closing the sale can take up to 6 months (in our industry it can take that much) then you need ~18 months (you can start selling your idea, pitching, seeing your potential customers - in such case this time can go down). Also your money pot should pay somebody to do sales, marketing and operations for you (unless of course you do it yourself).
jf22 2 days ago 0 replies      
Are you sure you can live with family members for over a year?
eulji 2 days ago 2 replies      
i wonder if you guys have considered moving to much cheaper country like Thailand or Malaysia.Or is being in the US part of the success ?
What's your favorite children's book?
8 points by sova  2 days ago   21 comments top 17
gregorymichael 1 day ago 1 reply      
Rosie Revere Engineer. https://www.amazon.com/Rosie-Revere-Engineer-Andrea-Beaty/dp...

Also, I wrote a 900 word review of Brown Bear, Brown Bear analyzing it's subverisve warning about today's surveillance state. Pretty proud of that one.


andrewl 1 day ago 0 replies      
This is for older children, twelve and above I'd say, but I think the Alice books (Alice's Adventures in Wonderland and Through the Looking-Glass, and What Alice Found There) are great. Then they (and you) can read The Annotated Alice by Martin Gardner, which opened up entirely new levels of the stories to me.

For younger children, I'd say The Wind in the Willows.

fiftyacorn 1 day ago 0 replies      
Thomas the Tank Engine - teaches you to know your place

I think it depends on age - my wife and her friends are teachers, and they think the most important thing is to learn the structure of language, and rhyming is an important part of that. They always recommend Julia Donaldsons books like the Grufalo, and Jack and The Flum Flum Tree for younger ones

hackney 2 days ago 0 replies      
I read so many books as a child it is impossible to recommend any. I did read a book recently titled 'Absolute Zero Gravity' (Betsy Devine & Joel Cohen) Science Jokes, Quotes and Anecdotes. It is informative, historical, educational, and truly fascinating to read. For a child this can really awaken their cognitive imagination. Fiction-wise I would leave to the child to decide as that list is truly endless. The Witcher series by Sapkowski I couldn't hardly put down (the movie is a complete FAIL). One other I rather liked is titled 'The Eerie Adventures of the Lycanthrope Robinson Crusoe' by Defoe, Lovecrart, & Clines.
roschdal 1 day ago 1 reply      
7402 2 days ago 0 replies      
The Phantom Tollbooth by Norton Juster (illustrations by Jules Feiffer)
ericzawo 1 day ago 0 replies      
Frank Asch's books George's Store, and Milk and Cookies.

Also Robert Munsch's Love You Forever. Warning, make sure tissues are nearby: https://www.youtube.com/watch?v=6z-oBkgJ4Ow

jacquesm 1 day ago 0 replies      
Grimm brothers

Anything by Verne

Tom Poes (but you'd need to read dutch for that)

Master of the black mill (Krabat) (Harry Potter, but different and much older)

mohaps 2 days ago 0 replies      
Oh The Places You'll Go by Dr. Seuss
panic 22 hours ago 0 replies      
A Wrinkle in Time by Madeleine L'Engle
navbaker 2 days ago 0 replies      
The Frog and Toad series had some great life lessons.
araamax 2 days ago 0 replies      
Come Over To My House - Dr. Seuss
SNACKeR99 2 days ago 0 replies      
Spring Is Here by Taro Gomi
AnimalMuppet 1 day ago 0 replies      
Inspiration as in for writing one?

If it's a book for young children (the kind that parents are going to read to them, and therefore have to read over and over), you need to make it not a bore for the parents. Maybe the best example I've seen is "The Bravest Ever Bear".

PhantomGremlin 1 day ago 1 reply      
They didn't have this book https://en.wikipedia.org/wiki/Go_the_Fuck_to_Sleep when my kids were young.

Even better than the book is Samuel L Jackson narrating it: https://www.youtube.com/watch?v=nDGKK6y8OtQ

It probably would have been my favorite! Just kidding. Maybe?

vmorgulis 2 days ago 0 replies      
Treasure Island - Stevenson
bakztfuture 1 day ago 0 replies      
The Giving Tree
Ask HN: Agency vs. internal recruiters?
5 points by lscore720  1 day ago   2 comments top 2
JSeymourATL 1 day ago 0 replies      
Outside agency, with true domain expertise.

Typically found the best work on an mixed upfront fee, with a success-fee incentive arrangement due upon completing the hiring process.

Agency guys eat what they kill, they hustle. Internal guys (often HR Flunkies) lack business acumen and drive for results.

a_lifters_life 1 day ago 0 replies      
Internal - always, they have much more 'skin' in the game, and i've found typically have more motivation than some outside firm.
Ask HN: Did not get to do Master's education I so much wanted to, what to do?
4 points by sidcool  1 day ago   6 comments top 5
arnold_palmur 1 day ago 0 replies      
I don't have a family yet, but I can definitely relate. I didn't study CS undergrad and I've been looking to pursue a MS in CS for the past few years but with working full-time (6 years of experience), and the crazy costs that I would need to dedicate to satisfy undergrad Math and CS prerequisite courses before even applying to the program (unfortunately MOOCs don't count), I'm constantly dissuaded. I don't even think that getting a Masters would really move the needle in terms of salary (and don't really care), however I, like you, have an insatiable desire to learn about this fascinating field called Computer Science - I just wish I stumbled upon it when I was younger. I'm starting a new job next week so depending on the work load, I plan on biting the bullet and enrolling in some non-degree math courses to get the ball rolling.
mswen 1 day ago 0 replies      
I picked up a Masters on the way to getting a PhD but ultimately dropped out because I felt like I had quit learning and was just slogging and I found I wasn't all that passionate about the particular domain. Furthermore one day sitting in a seminar listing to a couple professors and grad students arguing about some theory I realized I just didn't care about the things they were arguing about.

So I left went into industry applying research skills to practical problems.

Later I started branching out and getting into corpus analysis and latent semantic analysis - nothing to do with my Masters or PhD studies from domain perspective but those research skills transferred over.

At one point I was visiting with an older friend with a PhD, a successful serial entrepreneur and very smart guy and I commented with some regret about not finishing my PhD and maybe someday I would go back and study computational linguistics. His response gave me new perspective.

"Mike, why would you do that? You are already doing the work that those guys hope to do when they get done!"

His comment made me feel better but .... still there is something about learning in an intense graduate studies setting that I miss. And, there is the social esteem that we give scholars who have pushed through and earned a PhD.

I guess I don't have practical advice but if you really feel the draw to do a Masters see what you can do to make it happen.

JSeymourATL 1 day ago 0 replies      
> I cannot pursue it now that I have a family and many responsibilities.

Georgia Tech has been getting some great buzz on their Online Masters in CS program. That might just give you the flexibility & affordability factors to move forward, worth exploring as option > https://www.omscs.gatech.edu/

brudgers 1 day ago 0 replies      
For some people, and I fall in that category, the degree as a piece of paper matters personally and apart from whatever value is attached to the learning. It's a mark of passage. I don't think there's anything intrinsically wrong with that, but I'm perhaps biased.

Enrolling in graduate school will be a significant lifestyle adjustment. Maybe it won't happen now, that doesn't mean it can't happen in the future. More importantly, there are avenues of investigation and course adjustments which increase the likelihood of future enrollment. Some industries and employers encourage graduate degrees. Some programs facilitate part time students attending after hours. Some cities offer more educational and employment and family friendly options than others.

Good luck.

AnimalMuppet 1 day ago 1 reply      
Do you want the knowledge? Or do you want the certificate, and perhaps the feeling of accomplishment that goes with it?

You can get the knowledge. In fact, after nine years, you probably have more knowledge than you think you do. It's wider and less deep than you'd get in a Masters, but there's still quite a bit of it.

The certificate and the feeling of accomplishment that goes with it, well, that's harder...

Ask HN: What is holding your startup back?
8 points by embiggen  3 days ago   10 comments top 7
ganeshkrishnan 3 hours ago 0 replies      
Released http://www.wikibackpacker.com/

It's growing organically but I want to pound the ground and do marketing for widespread adoption.

I have ideas (contests, giveaways, posters, events etc) but need a business person to carry this ideas forward.

piyushco 48 minutes ago 0 replies      
not able to find developers to put software development on FastTrack.
CommanderData 1 day ago 0 replies      
My day job. If I leave I worry about excessive procrastination. Procrastination is good in small amounts. Finding a balance is something that always troubles me.
itomato 2 days ago 1 reply      
Marketing and communications, specifically impressions and publicising.

Bootstraped budget doesn't go very far toward AdWords or Conference attendance.

miguelrochefort 2 days ago 1 reply      
My target audience is too dumb to know it needs my solution.
emilburzo 2 days ago 1 reply      
Being far far away from any tech scene, i.e.: no networking.
eecks 2 days ago 0 replies      
My full-time job
       cached 23 June 2016 04:05:02 GMT