hacker news with inline top comments    .. more ..    18 Jul 2015 Ask
home   ask   best   2 years ago   
Ask HN: Good Python codebases to read?
256 points by nekopa  2 days ago   149 comments top 36
aaronjgreenberg 1 day ago 4 replies      
Jumping on the Kenneth Reitz train, you might check out The Hitchhiker's Guide to Python: http://docs.python-guide.org/en/latest/

He recommends the following Python projects for reading:

* Howdoi (https://github.com/gleitz/howdoi)

* Flask (https://github.com/mitsuhiko/flask)

* Werkzeug (https://github.com/mitsuhiko/werkzeug)

* Requests (https://github.com/kennethreitz/requests)

* Tablib (https://github.com/kennethreitz/tablib)

Hope that helps---good luck!

jonjacky 1 day ago 2 replies      
Peter Norvig's examples. They are quite short and include much explanation in addition to code. They also include tests and benchmarking code.

http://norvig.com/lispy.htmlhttp://norvig.com/lispy2.html Lisp interpreter)

http://www.norvig.com/spell-correct.html Spelling corrector)

http://norvig.com/sudoku.html (Sudoku solver)

Also his online course Design of Computer programs includes many short, well-explained Python examples:


clinth 1 day ago 2 replies      
Requests - https://github.com/kennethreitz/requests.

How to make a usable api. The decisions that went into each method call were fantastic. Great test coverage as well. I use package in most python development.

jscottmiller 1 day ago 0 replies      
Bottle: https://github.com/bottlepy/bottle

It's a nice, small, fast web framework. Great for building APIs. Also, it's one ~3k loc, readable file.[1]

[1] https://github.com/bottlepy/bottle/blob/master/bottle.py

svieira 1 day ago 0 replies      
Several good ones have already been suggested, but here's a few more:

- https://github.com/mahmoud/boltons : utility functions, but well documented

- https://github.com/KeepSafe/aiohttp : a Python 3 async HTTP server

- https://github.com/telefonicaid/di-py : a dependency injection framework

- https://github.com/moggers87/salmon : a fork of Lamson (which was written by Zed)

Python's internals are pretty darn open, so here's a few suggestions that push the boundaries of meta programming in Python - they're not the idiomatic code you're looking for right now, but later, when you know the best practices and you're wondering what is possible they'll be good to look at:

- https://github.com/Suor/whatever : Scala's magic `_` for Python

- https://github.com/ryanhiebert/typeset : Types as sets for Python

- https://github.com/AndreaCensi/contracts : Gradually typed Python (akin to MyPy)

- http://mypy-lang.org : Gradually typed Python - the future (at least right now)

nyddle 2 days ago 4 replies      
Flask - https://github.com/mitsuhiko/flask. It's small, awesome and digestible.
spang 1 day ago 2 replies      
The Nylas Sync Engine is a large Python codebase with a test suite: https://github.com/nylas/sync-engine

Lots of examples of SQLAlchemy, Flask, gevent, and pytest in action to build a REST API and sync platform for email/calendar/contacts data!

travisfischer 1 day ago 1 reply      
A large Python project that I haven't seen mentioned by others but that I find to be particularly well written and designed is the Pyramid web framework.

* https://github.com/Pylons/pyramid/

shoyer 1 day ago 0 replies      
I recommend PyToolz, "set of utility functions for iterators, functions, and dictionaries":https://github.com/pytoolz/toolz

The functions in PyToolz are short, well tested and idiomatic Python (thought the functional programming paradigm they support is not quite so idiomatic). I recommend starting with the excellent documentation:http://toolz.readthedocs.org/en/latest/

In particular, the API docs have links to the source code for each function:http://toolz.readthedocs.org/en/latest/api.html

jordigh 1 day ago 0 replies      

By design, Mercurial has almost no dependencies, so it's very self-contained. I find this makes it a particularly easy codebase to get into.

If you're interested, I would love to walk you (or anyone else!) trough it.

mattwritescode 1 day ago 2 replies      
The django project is a good example of a large opensource project which has aged well. http://github.com/django/django
feathj 1 day ago 2 replies      
Check out boto. It's Amazon's official library for interacting with AWS. It is written and tested well. I use it every day.


aaronchall 1 day ago 0 replies      
Here's the link to the Pandas DataFrame source: https://github.com/pydata/pandas/blob/master/pandas/core/fra...

We spent a month of Sundays going through this in the NYC Python office hours. You learn a lot about this object by reading the source, and the WTF per minute rate is fairly low.

The style is also fairly non-controversial.

giancarlostoro 1 day ago 0 replies      
I see nobody has recommended CherryPy:http://www.cherrypy.org/

It is a minimal web framework like Sinatra or Flask. The beautiful thing about CherryPy is you write code for it the same way you would write general Python code. I enjoy using it for small projects from time to time.


Bickbucket Repository: https://bitbucket.org/cherrypy/cherrypy/overview

mkolodny 1 day ago 0 replies      
Guido van Rossum, the creator of Python, co-wrote a web crawler in under 500 lines: https://github.com/aosabook/500lines/tree/master/crawler

It's especially interesting because it takes advantage of new Python features like asyncio.

d0m 1 day ago 1 reply      
The pep8 standard is also an easy read with so many useful explanations:


veddox 1 day ago 1 reply      
1. The Python standard library (if you're on Linux, /usr/lib/python2.x or 3.x, depending on your version).

2. The Bazaar VCS is written entirely in Python, is very well documented and has a large test section. (www.launchpad.net/bzr)

notatoad 1 day ago 1 reply      
I learned a lot about python by reading through the tornado codebase. it's pretty easy to read, well broken up into functions, and not too big.
patrickk 23 hours ago 0 replies      
youtube-dl: https://github.com/rg3/youtube-dl

I fell in love with this project after discovering I don't need ad-choked, dodgy sites to download Youtube videos/mp3s. It also acts as a catch-all downloader for a huge amount of other video hosting sites, despite the name. If you want to learn how to scrape different videos from many platforms, look at this:


deepaksurti 1 day ago 2 replies      
NLTK: https://github.com/nltk/nltk with the documentation at http://www.nltk.org. I found the code easy to follow through.

I referred to it when adding tests for tokenizers in a common lisp NLP application: https://github.com/vseloved/cl-nlp/.

mapleoin 1 day ago 0 replies      
Also, how about examples of good web applications built on python with available source code?

Rather than seeing the code of great libraries, I sometimes want to see how people use them in the real world.

rasbt 17 hours ago 0 replies      
I wholeheartedly recommend [scikit-learn](https://github.com/scikit-learn/scikit-learn) - the best organized and cleanest code I've seen so far. It is really organized and well thought-through.
cessor 1 day ago 0 replies      
I would recommend reading about the Tornado WebServer. It features some nice stuff such as coroutines, async stuff.


mahouse 1 day ago 0 replies      
For the web developers out there, what do you think of reddit? Any honest commentary on it? https://github.com/reddit/reddit
tzury 1 day ago 0 replies      
1 - (web, network, file system, and more).

 tornado - tornadoweb.org github.com/facebook/tornado
2 - scapy

 The entire product runs on the python CLI secdev.org/scapy

ericjang 1 day ago 1 reply      
NetworkX - https://networkx.github.io/Good example of object-oriented programming patterns (mixins) in Python and module organization.
rwar 1 day ago 0 replies      
danwakefield 1 day ago 2 replies      
Openstack does a large amount of testing for their code[1] but they is a huge amount of it. Barbican[2] is one of the newer less crufty components.

[1]: https://github.com/openstack/openstack[2]: https://github.com/openstack/barbican

edoceo 1 day ago 0 replies      
Gentoo Portage package manager. Its a big project, lots of moving parts, actively developed. Really helped me with learning Python
NumberCruncher 1 day ago 0 replies      
Im just a user and not a contributor (I dont know the source code), but the project is following good webdev techniques

* https://github.com/web2py/web2py/

* https://github.com/web2py/pydal

misiti3780 1 day ago 0 replies      
Django, Tornado, Sentry, Newsblur
rjusher 1 day ago 1 reply      
I would also add

*Twisted (https://github.com/twisted/twisted)

For async python.

SFjulie1 1 day ago 1 reply      
Really the hard way?

https://hg.python.org/cpython/file/3.5/Lib/collections/__ini...Knowing specialized data structure in a language is always important and this is well coded.

Well see the 2 lines I pointed in one of the standard library in python and you will understand that even in good language there will always be dust under the carpet at one point.https://hg.python.org/cpython/file/5c3812412b6f/Lib/email/_h...

gcb0 1 day ago 0 replies      
good examples with a (hopefully multiplatform) GUI?
Ask HN: Is physics moving forward?
83 points by Murkin  21 hours ago   69 comments top 30
ISL 20 hours ago 5 replies      
As someone who's been in physics for much of the last twenty years, I'd guess that things are going at about the same rate. I don't think that the rate is "crawling", though.

If you look on log plots of parametrized experimental progress, progress remains linear, so it's a Moore's law like improvement on many fronts.

The emergence of precision cosmology has really transformed astrophysics in the last twenty years. The solar neutrino problem is now solved entirely (and even \theta_{13} has been measured!). The lynchpin of the Standard Model (the Higgs) has been found. LIGO is likely to make first detection in the next couple of years. Graphene and topological insulators have the solid-state community buzzing. Fluorescence microscopy and nanopore techniques are making waves in the biophysics community. And more, of course. Heck, this week, the most compelling evidence yet for the long-sought pentaquark appeared.

For the probes of the dark sector and of gravity, though we haven't found anything, huge swaths of parameter space (i.e. possible theories) have been ruled out. EDM searches are relentless in their searches for new physics. Someday, someone will find a reliable anomalous signal, but we can't predict when.

And, if you're looking for fun hints of new physics, check out "muon g-2". The next 5-10 years will be exciting there, too, to see if the existing discrepancy between measurement and the Standard Model will survive closer experimental scrutiny.

We go slow because we will go far.

stared 21 hours ago 2 replies      
As a PhD in physics - progress in pure physics is slowing down (or at least progress per scientist).

The delay between a discovery in physics and a Nobel prize is getting bigger and bigger [1]. It's true for all fields, but the effect is particularly strong for physics.

'''It is safe to say that late 1920s and early 1930s were the Golden Age of 20th century physics, when the progress was lightning-fast and new discoveries lay like low-hanging fruits. In the 1940s Dirac commented bitterly, in view of problems quantum field theory was having at the time: Then, a second-rate physicist could do first-rate work now, it takes a first-rate physicist to do second-rate work. Every physicist would love to live in such interesting times, when a new unexplored scientific territory opens up.''' [2]

So, its started decreasing quite some time. Also, as there are more an more people involved, the brainmass gets diluted. As of now there is no chance to get a photo of a concentration of luminaries as from the famous Solvay conferences [3].

So, if you (like me) read Feynman lectures of physics and know physics from 1920s-1950s, you are likely to get disappointed by the current pace.

...and just compare to recent progress in machine learning, when we can play on our computers with things, which a few years ago were thought to be out of our reach.

(But it shouldn't be surprising, technologies and science do have their growth time, and usually it's finite time.)

[1] http://priceonomics.com/why-nobel-winning-scientists-are-get...

[2] https://woodtickquarterly.wordpress.com/2011/11/17/graham-fa... (BTW: I recommend this book a lot)

[3] https://en.wikipedia.org/wiki/Solvay_Conference

sampo 19 hours ago 0 replies      
If you have time, Lee Smolin's book The Trouble with Physics is a captivating read.


Smolin makes a sosiological-historical argument, that from the 20s to 70s, the development in theoretical particle physics was done by trusting the "mathematical intuition", if the math was beautiful and predicted the existence of some particles, a bit later usually the experimental physicists found those particles. And the rewards and Nobel prizes went to those who did the math the fastest.

So the whole theoretical physics adopted this style of work, when someone proposes something new that looks interesting, everyone tries to do the math as quickly as possible, to be the first to get the results.

But then from the 70s to 00s, this flocking attitude was applied to string theory, and people just developed string math furiously, and it was left unnoticed that the theory was totally unrelated to any experiments.

So, Smolin suggests, for 30 years the best of theoretical physics went into a direction that may be totally separated from experiments. If this turns out to be true, theoretical physics pretty much lost 30 years.

jammycakes 18 hours ago 1 reply      
It seems to me that ground-breaking discoveries in physics are generally getting more expensive.

Up till about the early 20th century, ground breaking physics was largely "two guys in a garage" territory -- single individuals such as Newton or Cavendish tinkering in their own private laboratories using fairly modest equipment. Teenagers replicate their experiments in school physics lessons with equipment costing no more than a few hundred pounds today.

Throughout the mid-twentieth century, ground-breaking discoveries were increasingly made by teams of researchers, which seem to have grown larger over time, with equipment that has become increasingly large and expensive, and sponsored by universities, companies and governments.

Nowadays it seems that most ground-breaking discoveries are made by large, national or multinational teams working with equipment costing billions of dollars and processing petabytes of data. I couldn't see two guys in a garage producing their own space telescope or particle accelerator any time soon.

abdullahkhalids 18 hours ago 2 replies      
I am surprised no one has mentioned quantum information yet. Quantum information is the subfield of physics whose goal is to understand what new information processing tasks are possible/efficient that are not possible/inefficient in the quantum world. Two such tasks are quantum computing and quantum key distribution.

This field was birthed in the early 80s and has seen steady progress since then. Various architectures for quantum computing have been proposed and experimental control over them has steadily increased in each one over the last few years. While we are not there yet the sequence of results shows that we are rapidly approaching the fault-tolerance thresholds after which it will be possible to build quantum computers.

Quantum key distribution is a simpler task and has already been achieved commercially. Now we are trying to increase the rates of transfer. We are slowly also relaxing experimental requirements. For instance there are protocols where you don't have to trust that your devices where not tampered with by an adversary.

These are exciting times in quantum information. While important theoretical results where found in the 80s and 90s the experimental momentum today far outpaces it.

PaulHoule 20 hours ago 1 reply      
It is the best of times and the worst of times.

In fundamental physics, the LHC is online, neutrino physics is hot, and lots is going on. Now there are a huge number of quantum theories of black holes, but no way to prove anything about them in site.

The dark matter problem is a huge "anomaly" left to solve so there are still mountains to climb.

In terms of practical stuff there is lots of physics in how you build a 7nm microchip. Physicists collaborate a lot with "nanotechnology" people and biologists. For instance my thesis advisor worked with experimentalists who were stretching DNA with tweezers and figured out how the AIDS virus self-assembles.

Even the "dead" area of chaos theory is looking much better now that people at NASA have made a map of the earth-moon phase space which can give a km/sec or so free propulsion.

dannypgh 21 hours ago 0 replies      
This all depends on your frame of reference.
vezzy-fnord 21 hours ago 1 reply      
Looking back over last 20 years, technology (esp. related to computers) had made extraordinary leaps forward and the pace is accelerating.

Largely hardware advances that are heavily interrelated with physics. Even still, it has been incremental (though still impressive) production advances and not radical architectural redesign. Intel only got bounds checking in hardware (MPX extensions) a couple of years ago, even though this was first done over half a century ago.

Software hasn't.

spott 21 hours ago 1 reply      
This depends on your definition of "advances in physics".

"New physics", physics that we don't already have an explanation for, is becoming increasingly rare. Our definition of "new physics" is also expanding to including things that aren't fundamentally new, just small holes in our understanding of the equations.

The flip side of this is that while we already know the broad strokes, there is still a lot of work to be done in filling in the details. This work is just less glamorous and doesn't make the headlines.

cozzyd 20 hours ago 0 replies      
(Young) experimental particle physicist here. While our current progress in particle physics has slowed down since the 70's, we've still learned quite a bit in the last 20 years. For example we've observed the top quark, tau neutrino and Higgs boson. We have also learned lots of stuff about neutrinos, like that they have mass and oscillate. There has also been amazing progress in detectors, although that's mostly behind the scenes.

Other fields of physics have had much more interesting discoveries though (e.g. graphene).

98Windows 20 hours ago 0 replies      
If you look at quantum computing [1], which is very much a part of physics, I would claim that progress is accelerating there. Its a field that is asking a lot of deep questions about reality and also spurring a lot of technological innovation.

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

irremediable 21 hours ago 0 replies      
Well, to be fair, lots of computer technology advances were associated with advances in applied physics. Die sizes, MEMS, battery technology, etc.

Maybe you mean more theoretical physics? I don't really have enough knowledge to be useful there.

FiatLuxDave 17 hours ago 0 replies      
As a physicist for the last 20 years, I suppose I am to partly to blame... ;)

I would say that it depends on what you call physics. The areas of physics that were symbolic of advancement in the previous 20 years will not necessarily be the same areas where advances will be in the next 20 years. During the 1800s, advances in physics in the first half of the century lead to technological advances in steam power and electricity in the second half. If you thought of physics as meaning electromagnetism and thermodynamics, you might think that there were few advances in physics in the first half of the 20th century. And there were people that felt that way! But I think that nowadays we would think that Einstein's heyday was an era of major physics advances. So, maybe you shouldn't look at those areas that are reaching the plateau of their sigmoid curve, but newer areas.

Classic particle physics, exemplified by the likes of Chadwick and Lawrence way back in the 1930s, leading to the explosion of the particle zoo in the 1950s, and then the diminishing returns of the LHC era, would be a good example of sigmoid curve development in Physics. If physics only means this stuff to you, then yes, it is going slower than it was.

Areas of physics that have been closer to the high slope region of their development in the last 20 years:

Quantum Information Theory (as noted by @abdullahkhalids)

Dark Matter/Energy/whatevertheheckitis

Medical Physics (from lead block linacs and xrays to IMRT/VMAT & modern imaging)

Materials Science/'Condensed Matter' physics

Black Hole science, esp. thermodynamics

Gravity waves, or the lack thereof (interesting either way)

techniques for signal/data processing and analysis (such as superresolution or single detector imaging)

I'm sure there's more that I'm not aware of. Anything that is really very new is too small to get much press right now. Pretty much by definition, the new small stuff won't have the big press budget of CERN or NASA.

batbomb 20 hours ago 0 replies      
Physics has scaled out. There's a bunch of people working on a bunch of projects with, for the most part, narrowly defined goals. It's really to understand the implications of many of these projects when they succeed, let alone report on them.

Government spending in the sciences has been extremely schizophrenic over the last 5 years. The NSF is a little more stable, but the NSF doesn't fund much of anything over 100M, which would be a relatively small experiment when spread out over 4-5 years.

johncolanduoni 16 hours ago 0 replies      
String theory often gets ragged on for not having any direct practical applications, which is certainly true. However, some of the mathematics developed by string theory is key in theoretical work in fields where theory and experiment have a much tighter bond. For example, topological quantum field theory[1] has found widespread important applications in quantum information, and it was pioneered by none other than Witten himself. This isn't just on the theory side; experimentalists are looking at topological states of matter for a variety of applications, including quantum computing.

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

artimaeis 21 hours ago 1 reply      
I'm not sure there's been any acceleration of discovery in the hard sciences.

The 30-40 years have seen tech advancements roughly in line with Moore's law, which is fantastic. But that's the result of engineering advancements. There's no precedent I'm aware of to expect the same results out of the hard sciences.

brudgers 8 hours ago 0 replies      
Lex III: Actioni contrariam semper et qualem esse reactionem: sive corporum duorum actiones in se mutuo semper esse quales et in partes contrarias dirigi.

Only if something is moving backward.

paulpauper 18 hours ago 0 replies      
While progress may seem slower, we have a lot more people working on these unsolved problems. Also there is the fusion of abstract math and physics, which creates thousands of 'physicists' out of unwitting mathematicians. Due to the physical limitations of experiments, most forthcoming progress in physics will be purely abstract. But just because we can't test some of these theories doesn't mean we should disregard though, provided there are as few logical inconsistencies as possible.
nathan_f77 19 hours ago 1 reply      
I really like these diagrams, as an answer to your question: http://matt.might.net/articles/phd-school-in-pictures/

You can't predict breakthroughs. A scientist might spend their entire career following their research to a dead end. That's not a failure, in my opinion. It just shows how much we already know, and I think we should honour those scientists just as much as the lucky ones.

japhyr 15 hours ago 0 replies      
I did a BS in physics in the early 1990s, but I haven't kept up with current research.

Can someone recommend some good reading to catch up on what's been happening since then? I'd love a decent book about qm or cosmology that's not quite a textbook, but also takes more than a simplified approach aimed at people with no background in the field.

euske 19 hours ago 1 reply      
Has software technology gotten much advanced in the last 20 years yet? It became a lot bigger, yes, and now we have GC or type inference if you're lucky. But I'd be still afraid of writing a mission-critical part of software as well as I would in 80s. Also things like Heartbleed happened. In terms of the quality/correctness, the progress of the software industry has been disappointing to me.
empath75 19 hours ago 0 replies      
Not a physicist or a scientist, but I do follow the news, and I think there's a lot happening 'under the surface' with people working on mathematical foundations (category theory, complexity theory, homotopy type theory) that are going to surface into physics in unexpected ways in the fairly near future.
saulwiggin 18 hours ago 0 replies      
I just finished a PhD in Transformation Optics and Metamaterials. Metamaterials are a real novel breakthrough in physics which have wide ranging applications for antennas and electromagnetic materials. Not to mention the recent confirmation of the Higgs Boson. Physics is moving along at a similar pace.
mjfl 20 hours ago 0 replies      
A good way to look at this objectively is to go to scholar.google.com, type in "physics" in the search bar, and limit your results to the past 10-20 years. You will have to filter through the books and survey articles (get a couple pages in), but you should get a picture of the more important articles in the past 20 years.
richmarr 21 hours ago 0 replies      
It's hard to read your question without thinking about how String Theory has dominated Physics for that entire timeframe (and more)... and how ineffective that family of models have been at progressing humanity's understanding of the broader world.

If you believe Lee Smolin then advocates of String Theory have also had an oppressive effect on opposing ideas, making it hard to get tenure if you're not working on it, effectively choking off competing theories (e.g. Doubly Special Relativity, Loop Quantum Gravity, etc)

I have no data or first-hand evidence, as I was only a mere Physics undergrad, but found his arguments pursuasive. String Theory (and his oscillating pals) have certainly been dominant in the scientific press, and don't seem to have come up with much. Could be a false negative though. We'll only know when someone opens the next big door.

batou 18 hours ago 0 replies      
As someone dipping into physics very late after a long journey on mathematics, this thread is both depressing and terrifying yet at the same time strangely motivating.

I think there are some big questions without answers still. I want to have a bash at them.

yk 18 hours ago 0 replies      
That depends, how do you quantify progress or rate of progress in physics? To compare directly to technology, Moore's law seems to indicate a accelerating pace of technology. On the other hand looking back to the 90ies progress in computer games, where you could expect a never seen before breakthrough each year, it seems that computers have hit a point of diminishing returns and probably the important metric is something like the log of computing power or something similar. So quantifying rate of progress is not well defined and it seems that it is possible to argue that the rate of progress has slowed down, even for computing power. The counter example would be digital video, where there was very little progress, for the average user, until divX and since the early two thousands, we went from cut scenes at 320x240, to Youtube and 4K video.

Putting the measurement problems aside, progress in physics seems to be a lot less smooth and the big jump occurred in the first three decades of the last century with the discovery of special relativity and quantum mechanics plus the ongoing project of formalizing physics. That one was a complete paradigm shift towards mathematical models and towards an entirely different picture of reality. Since then the development of quantum field theories is basically just using the same trick as for quantum mechanics. ( Not trying to belittle the development of QFT, that is one of the monumental achievements of the human mind, it just pales in comparison to the development of QM. ) So, in this view the next big jump may be just around the corner or not possible for a human brain, but we will only know the answer after progress happened. ( I should cite one of the famous philosophers of science here, unfortunately I forgot which one.)

As an example, string theory is currently not even wrong, because we can not build the known experiments that would enable us to test string theory. However a lot of brain power and ink was expended on its development over the last thirty years, and we simply do not have a good idea if it was worthwhile. If someone suggests a experiment that can distinguish between string theory and other models of quantum gravity, and if a string theory passes this test, then it was probably worthwhile to spend all that effort.

In conclusion, I would argue that the question is ill defined and runs furthermore in epistemological problems, that is even if we would find a good definition we can not really know the answer. However, I am actually quite optimistic that a breakthrough is just around the corner. For example, I think that the connection of information theory and physics is not really understood, but concepts like entropy and information seem to crop up everywhere one looks.

redwood 19 hours ago 0 replies      
There are a number of unexplained phenomena, easy to forget about but nevertheless essentially waiting on "new physics" to model.
ape4 19 hours ago 0 replies      
Maybe physics is in a (relative) plateau now. Just waiting for the big break through. eg ability to manipulate dark matter.
naturalethic 20 hours ago 3 replies      
Nobody here is going to like this comment but I recommend you look into Electric Universe theory and Plasma Cosmology.
Ask HN: How much is Tai Lopez paying to spam his ads across YouTube?
2 points by z0a  3 hours ago   1 comment top
balazsdavid987 1 hour ago 0 replies      
Getting rich quickly is an evergreen topic because 1) we tend to link happiness to money and 2) we all like shortcuts. He is supplying a product to this demand.

By spending money on advertisement, he increases the perceived value of his personality which leads to more book sales, more lectures (with higher fees), more YouTube views, etc. Basically, he's building brand awareness of himself, just like the Coca-Cola company does with its products.

Ask HN: What's a good, short, gig for an incoming CSE PhD student?
2 points by loser777  3 hours ago   discuss
The 2015 Stanford Symbolics Systems Distinguished Speaker Is Edward Snowden
8 points by curuinor  16 hours ago   1 comment top
curuinor 16 hours ago 0 replies      
The speech itself was recorded May 15, but the recording is now publicly available because the radio broadcast went out: this is why it's posted now.
Ask HN: Salaries in/around the Netherlands, (Windows) drivers developers?
5 points by Lwerewolf  13 hours ago   2 comments top
JoachimSchipper 1 hour ago 1 reply      
It's not necessarily a bad idea to work for experience ("HUGE potential for learning"), but minimum wage seems very low. Consider asking around at your HBO what other students and recent graduates earn; as an inferior alternative, intermediair.nl usually has some (very broad and vague) salary data. (IIRC, recent university graduates in computer science can expect 2200-2400 euros per month.)

If you want to continue working here, consider trying to negotiate an agreement that you'll get a significant raise once you have your BSc.

Also, do weigh the benefits of not having a more senior person around (e.g. being allowed to mess with everything yourself) with the downsides of not having a more senior person around (e.g. nobody to learn from, your mistakes won't be corrected as long as you still manage to make the project work somehow.)

Ask HN: Startup vs. big corp fresh out of college?
12 points by howon92  19 hours ago   13 comments top 10
kasey_junk 18 hours ago 1 reply      
I think people overemphasize the difference to be quite honest. What I would recommend is disregard the startup/corp distinction and instead look for the following:

A company, where software is the product (ie you get paid based on customers wanting software that your company writes) and there is a good mix of experienced vs junior developers.

There are lessons you can only learn at a software company and the sooner you learn them the better. Further, learning from experienced developers will jump start your own experience in ways nothing else can.

If I had one major knock on the advice to join a startup right out of school, it's that so many of them are lacking in experienced software professionals. Full disclosure though, I joined a software startup right out of school (during the first dotcom boom).

This advice is largely based on the assumption that you want to have a long term career writing software for a living. If that isn't the case the variables change dramatically.

xyzelement 15 hours ago 1 reply      
You will get advice like "do it now while you don't need a lot of money." But that's not how money works, assuming you have discipline. All else being equal - the more you make sooner, the more you will have overall.

Two big reasons for this: you will invest the money you have now and will earn interest on it. And: what you will make in your second job will generally be based on what you make in your first. Settle for less the first time around and you will always be playing catch-up.

You want to find the best of both worlds: something that offers you good compensation and stability, while also giving you a chance to learn and grow. A big company can do that, you just need to find the right one. Get as many interviews and offers as you can, feel out the company cultures and do research. Someone else mentioned Google and FB. I am sure that's true, there are also lots of other companies where that's true as well.

Personal anecdote: I work in a fairly large NYC based fin-tech firm. Started 12 years ago out of CS undergrad. Now in my 5th role, including having run multiple dev teams and done product management. The firm supported my growth in other ways (grad school tuition.) I would challenge the notion that I learned less than I would have in a startup.

At the end of the day, you want both: money and opportunity. If you are good, you will have options that give you both. Good luck.

ganarajpr 17 hours ago 0 replies      
Unless you can join Google or Facebook, I would say startup.

Here are some good reasons to go with a startup ( If its in your powers, CHOOSE.)

1. Startups are more fun. Like the other commenters said, in just 1 year you will learn quite a lot more in a startup than you would in an enterprise company.

2. If you are joining an Enterprise, you are mostly working on code that is already built by someone else - you have to adapt to that - adjust to that. This is not in itself a bad thing - but my belief is that when you do things from scratch - you learn a lot more. As a freshman - out of college - your main aim should be learning - not money.

3. Startups have the advantage of being a possible rocketship. You never know. If you happen to get on one - you will be set for life. You dont have any remote possibility of doing that in an already established company.

4. I am overly generalizing here - but in a larger company - you will have to deal with a lot of bureaucracy and politics. Its an unavoidable thing when more than a few humans come together. This is detrimental to your growth. It wont allow you to move fast and break things.. which is something you should constantly do as a freshman.

5. Again generalizing, startups are more tech focused ( assuming you are a techie ) and enterprises are more management focused. If you join a startup that is a rocketship, you will most likely learn both tech and management at the same time. If the startup you joined dies, go join another one.

davismwfl 18 hours ago 1 reply      
Startup for a few reasons, with an assumption you aren't married with kids.

1. You will never have the freedom you have when you are young. Once you are more established with family, kids etc it is harder to take risks, not impossible just harder.

2. You will learn more good and bad in a year at a startup then 3-4 years at an Enterprise. You will be forced to grow and do things you didn't know you could do, but you can.

3. Even with the cons, startups are one hell of a fun ride. Yes, at times it will suck, but better to have some excitement then be bored after your first 6 months at an enterprise job.

Now, the other side of that is. Enterprises can still teach you a lot and let you grow some while giving you greater stability, it just takes longer. You will also get to see how screwy corporate cultures can be and some good parts too. There are just things about working in and around Enterprises that you can really only learn well by being inside and seeing the beast.

If you want an easy life, and to retire fairly young in a more "guaranteed" way, you will be better off taking an Enterprise job, working 20-25 years and saving well. You'll be well compensated, can save and invest well to retire quite comfortably. Not to mention you will rarely be working crazy hours and can take your vacation regularly etc. Yes it will involve stress, but IMO 75% of the stress is the bureaucracy you have to learn to navigate.

In the end no one can tell you the best choice. My brother and I both came from the same entrepreneurial family and I went on my own after some experience in Enterprise businesses and he stayed in the Enterprise space.

ChuckMcM 18 hours ago 0 replies      
I expect that expectations will vary so its really a personal decision. When I came out of college I was interested in starting my own company but I wanted the company I built to grow into a big company, and to that end I wanted some experience working at a big company to understand a bit about where the destination was.

I've noticed that many people work for companies and don't bother to invest the time in figuring out how the company works from top to bottom, how do people pay, where does the money go, how do you decide what to spend it on, or how much to spend, how do you decide between path A and path B. All the very real decisions that are made and how they are made, how do you have 20 people make a decision that they are all signed up to support? How do you know if your company is getting bigger, smaller, or suffering.

A startup, at the initial stages, is a handful of people, its a group project to achieve a singular goal. It isn't really a company at that point. When it gets traction and needs to become a company, what is missing? what is needed first? What is less important? All of those things you learn at a company which is already established.

When I came to the valley I joined Intel a "big" corporation at the time (which was better than my other choice Western Digital :-) I spent a couple of years trying to figure out how the company was put together as a system. Then I joined a late stage startup (Sun Microsystems) and worked there while it went from a "small company" (something bigger than your basic startup but I still got to know a lot of the company) to a "large company" the first billion dollar a year in revenue, and on to a run rate of $5B. Then I went back and started a company with some friends and we took it from the 5 of us to product launch and into the second product before we were acquired. And then back to a larger company to figure out some of the things I couldn't quite figure out in growing a company how folks had got there (mostly around sales to enterprises and getting the business model right).

The point being that my career to this point has really never changed its objective, which is to learn how to build and grow a great technology company. And helping me learn has been a number of friends and companies over the years.

So your objectives will tell you whether or not you should start at a big company or a startup.

starlord 17 hours ago 0 replies      
Depends on what you want to achieve out of the next few years of your life.

As in any other choice in life, you have both pros and cons in both the choices.

As also pointed out in other answers, it would hold true that doing your own startup will be the easiest now, as this choice will only get harder as you grow older and your responsibilities/obligations increase. This would definitely give you a good overall growth in many areas.

If you want to develop skill-sets in a particular domain, then I would suggest to go join a big corp where you can learn some best practices, get mentors and maybe even find interesting folks for you own startup at some point later in life. Also a somewhat middle path can be achieved by joining an early stage startup where you can find the above mentioned things in the team, and the pace of growth will be faster as well.

Will share my personal experience as well, maybe it might help. (Though take it with a pinch of salt, as it's not purely objective for me anymore.)I had a good chance to do a startup right out of college with a few friends and some ready funding/accelerators acceptances, but I took the option to go with a big corp. After about an year, I really regretted that decision. I have been wishing to go back and change that... So I left the big corp job after about 2 years, and have been working in core founding team of a startup for 2 years. Learning pace is much quicker in startup, but be clear in what you want out of the time you give to the organisation you will work for be it your own or someone else's.

Big points of regret for me: 1. I had a good team with me then (damn difficult to find this), 2. I was quite passionate about the problem we were working on (again not as easy to develop as it sounds).3. Seed funding was readily available, so finances would also have been taken care of while working there (as you grow this starts becoming a concern as your burn rate increases...)

Also, I would suggest you to watch both Paul Graham's lecture (L3) and Dustin Moskovitz's advice (L1) @ http://startupclass.samaltman.com/ to also maybe get some more perspectives.

Hope it helps. All the best!

poof131 18 hours ago 0 replies      
Why not split the difference, go for a mid to late stage startup? If you dont really know the founding team of an early stage startup and dont have experience, its tough to assess the risk regarding the team, the product, and the market. If theyre hiring you out of college, they may be looking for cheap labor. A mid to late stage startup likely has product and market solved, and is focused on growth. You will still have an impact, likely learn from top notch people, and see what success looks like. Then you can move smaller or bigger as you choose depending upon what you want.
mindvirus 18 hours ago 0 replies      
I would recommend going for an A-list big company out of school (Google, Facebook, etc) for a couple of years. They will teach you a lot about infrastructure and software engineering, you'll find a mentor, and the name on your resume will basically guarantee you interviews for the next 10 years. Plus you'll meet a big network of people. You'll also peg your salary at a higher level which compounds throughout your career.
ryanstanton 17 hours ago 0 replies      
I'm not a developer, I'm an engineer, but I think the same principles apply. If you want to become the best at what you do, you must surround yourself with people smarter, more experienced, and more capable than you. So, go to the company from whom you can learn the most. If a particular startup has an experienced / innovative team, go there. If you find the same thing at a corporate giant, go there. I started my career at a startup, but found I quickly exhausted their expertise since their team was 'limited' in experience, capability, etc. So I ended up at a Fortune 500 where there were thousands of engineers to learn from. In the developer world, it might be completely opposite - the good ones are at startups. Just as employers pick their employees carefully, you should pick your employer carefully :
howon92 7 hours ago 0 replies      
Thank you so much for all the gems guys!!!
Ask HN: Finding cofounder: did you just end up going solo?
6 points by a_lifters_life  14 hours ago   1 comment top
jeffmould 12 hours ago 0 replies      
Been down this route with my current company. Sorry if this answer is long winded, but I want to give a full description of why being a single co-founder worked for me personally. I am currently finishing up my first year in business and am only now in the process of bringing on a co-founder. There were some benefits and pitfalls to this approach, but looking back I would not have done it any differently and I couldn't be happier about the decision to proceed alone. I should note that a lot of this had to do with complete luck as I will explain below.

First, I am building a niche, taboo startup (helping ex-offenders through re-entry). When I first started many of my friends, and people I considered potential co-founders, found the idea a little too risky or crazy for their liking. Many didn't understand the market and were skeptical that a market even existed. I was not going to give up though and was bound and determined to get a business model built and launched, so I pressed forward. Bringing on a co-founder just to say you have a co-founder is a the perfect recipe for disaster in my opinion.

Out of luck I got accepted into an accelerator program for social impact startups. The overall value of the program is a blog post in itself, but the one enormous benefit that came from it was the connections within city government and other startups. It is through this that I ended up meeting my co-founder. We are still hashing out the exact details of our agreement, but our skill sets compliment each other and we get along good. He also understands the market, has experience in it, and knows the business side of building this type of business. I could not be happier for the way it worked out. The whole process has allowed me to essentially do a "co-founder dating" period without giving up equity or IP secrets, and it allowed each of us to work together and see how we got along before getting into a relationship.

Now to give you the flip side and why I believe this approach worked for me personally. I had a previous startup where I partnered with individuals I considered friends. We ended up having an ugly falling out over money and development of the product. The fallout was devastating personally and financially for me, and while I take a considerable amount of the blame for the initial fallout, their actions after the fallout are what made the situation even worse (they divulged company data, were highly vocal to potential customers and investors, etc..). They essentially made it impossible for me to succeed even if I wanted to. While I probably could have sued, I ultimately felt it was easier to lick my wounds and walk away. I also felt that suing would just take me down to their level, and wasn't worth the battle (no matter what side you are on, lawsuits are not pretty or fun).

Long story short, the experience made me extremely skeptical going into my new venture of who I would bring on as a co-founder. When you hear the horror stories of co-founder breakups or that they are one of the leading causes of potentially good ideas failing as a business, I can attest to the outcomes. Ironically, the only reason I had taken on co-founders in the first place was because of outside pressure from potential investors that I needed to have at least one other person. Investments we didn't even end up getting.

Having a co-founder has its benefits and pitfalls in my opinion. Nobody can deny that the right co-founder is the ultimate blessing. They are someone who is right there in the battle with you through the good and the bad. They are someone you can call at 4am with a whimsical idea and know they completely understand why you called and get equally excited. They are someone that is in the ring fighting with you 24 hours a day, 7 days a week. The problem arises though when one of you can no longer afford to stay in the ring and continue to fight. Whether that is due to financial or personal reasons is irrelevant. When the frustration from one side grows so much that communication between the parties diminishes or does not occur at all, the fallout will begin. Each party will begin to blame the other, regardless of who is at fault. When this starts to happen, how it is ultimately handled by both sides together will determine whether the business comes out intact or fails. Best advice I can say here is to have a neutral third-party that can mediate the fallout. This is probably why you see funded companies navigate co-founder breakups easier than un-funded companies. Good investors know breakups happen and are ready to step in and help you navigate that breakup. Without that third-party though it is difficult and the chances of making through successfully are not in your favor.

While the building of my current startup has taken a little longer without a co-founder, it gave me some advantages. First, I had no one to blame but myself if the business fails. This gave me great incentive to succeed. Second it allowed me to be in the fight without having to be in the ring. Meaning that I while I was determined to build a business, if at anytime I wanted to quit the decision was fully mine and I could walk away without losing friendships or future business partners. Finally, it is giving me an enormous advantage as I prepare to finally enter the ring with my new co-founder. I have a product developed, it works, and I have people using the service daily. I don't have to sell anyone on the idea or business. Is the business 100% or completely finished, absolutely not. But one of the biggest hurdles has been jumped and by bringing on the co-founder now, it is more like tag-team wrestling where I can hand off the product and let him go sell. This doesn't mean I don't have to do anything from here on, it just pulls an enormous amount of pressure off me. It gives me time now to focus on fixing bugs, adding new features, cleaning up rushed portions of code (don't deny it we all do it), etc...

I should note that there were a few key items that I think made a big difference for me along the way. First, while I lean towards being an introvert, I consider myself fairly good at networking and making connections. As I was flushing out my business model, I reached out to a lot of people in the industry and made some great connections along the way. I also applied to several accelerator programs. Two of the programs that I applied to, while I was not accepted, have gone above and beyond in helping me. From introductions to answering emails at 3am providing design input/advice for my website/product. Neither of these teams had to do this for me, yet they believed in me and my idea enough that they go out of their way to answer my emails directly and provide feedback. I also have a good core group of friends that I can ping ideas off of and support me, and while they may think I am crazy at times they are there for me if I need them. I don't think without these pieces that I would have (a) survived the first year by myself, (b) made it to where I am today with the product.

So to answer your original question, by all means go for it! The right person will come along, and when they do, you will know it immediately.

Ask HN: What is the best way to learn Machine Learning in Python?
81 points by karan_dev  22 hours ago   41 comments top 18
drallison 21 hours ago 2 replies      
Machine Learning is a sub-field of computer science and an area of intense current research. It has nothing to do with Python (a programming language) except that some machine learning algorithms might be implemented in Python.

You might find Andrew Ng's Stanford Coursera course a good place to start. https://www.coursera.org/learn/machine-learning/home/info.

88e282102ae2e5b 21 hours ago 1 reply      
I don't mean to be blunt, but I don't think you're going to get what you want out of machine learning if you still need people to give you step-by-step instructions.
jawns 21 hours ago 1 reply      
Step-by-step guide, with source links and references?

I don't think that's necessarily something one can (or ought to) expect to order up on Hacker News.

scuba_man_spiff 21 hours ago 0 replies      
I enjoyed this book you may want to check out.


The main thing to understand though is that machine learning is a big topic, and you aren't going to be able to become an expert in two months.

Narrow down to a specific area, or type of problem, and focus on learning techniques and tools for that.

My guess is that there's something your working on or want to work on which is why want to learn. If that's the case, I'd recommend that read up a bit to give yourself a good understanding of the different kinds of problems out there (classification, prediction, anomaly detection, etc...), and different classes of tools available, and then pick a simple real world problem to try to tackle that is similar.

The best way to really learn is going to be getting hands on with a project and suffering through after you've read up a bit to understand the basics. Then when you hit something can't wrap your head around, search and read articles (or talk to someone with experience and expertise) until it clicks and you can proceed on working through.

By the end you'll have a good grasp of at least one technique, and be in a great place to keep learning more.

chipmonkey75 20 hours ago 1 reply      
My personal preference is to learn by doing, and the best place I've found for this particular task is Kaggle (http://www.kaggle.com). They have a variety of datasets and scored data mining tasks, great forums for every level, code examples, and even a set of tutorials specifically for learning scikit (one of Python's machine learning libraries): http://blog.kaggle.com/2015/04/08/new-video-series-introduct...

I don't have any relationship with Kaggle other than being a semi-active user, but I really dig what they've got going. For a step-by-step approach, start with their blog posts and work on their "Getting Started" competitions. Everything you need is there.

loumf 21 hours ago 0 replies      
I liked "Programming Collective Intelligence" http://www.amazon.com/Programming-Collective-Intelligence-Bu..., but it might be a little dated (in not using the latest libraries). It's a good way to learn some simple algorithms (optimization, clustering).

Also, rather than learning ML in 2 months (which is a very unfocussed and unattainable goal) -- try to narrow it down to some problem domain. You'd get better recommendations if you are more specific.

rapid_snail 20 hours ago 0 replies      
Machine learning is a very large field - you shouldn't expect to learn it in one or two months. Maybe you will be able to scratch the surface and learn to implement a few learning algorithms.

I would recommend starting with scikit-learn.

century19 21 hours ago 0 replies      
The is an edX course going that covers Machine Learning with Python, though it does require "...familiarity with basic machine learning concepts".

"All exercises will use PySpark, but previous experience with Spark or distributed computing is NOT required. "


burningion 18 hours ago 0 replies      
I just started going down this path. I began with using audio analysis to do some machine learning. (Detecting a specific audio pattern very easily recognizable to humans). Can't get too specific about it, as it's under NDA. But I had a little under two weeks to get a prototype built that either proved or disproved it would be possible.

The very first thing I did was take a step back and understand the domain of the data I was working with, and what the best way to present it for machine learning would be. In my case, I had to understand what the best format for presenting my audio would be (slightly modified MFCCs), and what the best library would be to get my data in that format.

Next, I needed to build a data set of proper training data. This mean I had to manually build a (largish) data set that matched exactly what I was looking for. So I went and downloaded a bunch of example audio, and then manually went through it, tagging it into the two bins I was looking to differentiate against.

Once I had this, (which actually took much more time than the learning itself), I was ready to do the actual machine learning itself. I used Theano, and figuring out how to translate my dataset into a format digestible by Theano took another chunk of time. Once I had my data in the proper format for Theano, it came down to basically playing with how I presented my initial data to Theano, and then tweaking my gradient.

Finally, I was able to train and get a net that was about 80% right with my hypothesis. There were a few edge cases I hadn't anticipated that wouldn't necessarily work well, but it gave us enough confidence to go through with more machine learning for our project.

So, takeaway suggestions: find a real project, something you want to learn, and then just do it. Gather knowledge of your data, build a dataset, and test a hypothesis. Most of this isn't machine learning, it's mostly just moving and shaping data, and knowing what in your data is significant. The machine learning algorithms are really just a tiny piece of the whole picture. Good luck.

pjungwir 18 hours ago 0 replies      
Machine learning is a pretty big field. The Coursera course is very good. It uses Octave not Python, but what you learn will be easy to transfer. It is mostly focused on neural networks. If you don't already know linear algebra you should probably learn that first.

These are three very good O'Reilly books that all use Python:

- Programming Collective Intelligence: A broad and shallow survey of automated machine learning techniques.

- Data Analysis with Open Source Tools: Also a survey. More focused on manual data exploration.

- Python for Data Analysis: A pandas tutorial (and more). Very helpful to learn the ML tools in the python ecosystem.

Fitting all that into two months sounds challenging.

jmount 19 hours ago 0 replies      
Which do you want to know? (as it affects the answer greatly). And how short is "SHORT TIME"? For certain small values of "SHORT TIME" the answer is come back when you have more time.

How to apply machine learning using Python? (then scikit learn related materials).

How to tinker with machine learning implementations? (then which one are you trying to tinker with and what problem that isn't solved in the standard libraries is your concern?)

The theory of machine learning? (then "The Elements of Statistical Learning" and "An Introduction to Statistical Learning", but that is in R not in Python)

selleck 21 hours ago 1 reply      
Peter Norvig's Artificial Intelligence:


Has plenty of examples in Python. You can also look at different Udacity courses. They have a couple dealing with ML with Python.

armabiz 19 hours ago 0 replies      
From my favorites list, very easy introduction tutorial about ML, good as starting point:

http://radimrehurek.com/data_science_python/ - Practical Data Science with spam detection example (Machine Learning, NLP, sklearn, Python).

Isamu 21 hours ago 0 replies      
I've been looking at this deep learning tutorial in Python:


Has the advantage of a Python framework (Theano) specifically fordeep learning.

hootguy 21 hours ago 0 replies      
O'Reilly's publishing Introduction to Machine Learning with Python by Sarah Guido and Andreas Mueller in January 2016.


ldom22 21 hours ago 0 replies      
andreasvc 21 hours ago 1 reply      
Check out scikit-learn and its excellent documentation.
Ask HN: Talk me through the acquihire process
109 points by throwaway-acct  2 days ago   41 comments top 23
Udo 2 days ago 1 reply      
Tough questions to answer for someone on the outside.

> Is there any likelihood of an acquirer being interested in purchasing the product but not its developers?

At the very least you will be expected to stick around for documentation and gradual hand-over. This may well be the only card in your hand during a negotiation, or it may not be, depending on the circumstances and your relationship to the people transacting the acquisition.

I have to point out though your assumption is that the product is the key asset a buyer will be interested in. Is this the intention of the founders as well? Because counter-intuitive as it may seem, the new company might be more interested in the people who sold this product than the thing itself. Do what you can to find out more.

> Assuming I do stick it out as an acquihire, what's the likelihood I'd be allowed to remain in charge of my product vs having to execute on someone else's vision?

That depends totally on your relationship with your new employer and the structure and politics of the new company. Best case, you'll move up the ladder there. Worst case, they want to get rid of you as soon as possible. Average case: in a year they regret the acquisition, because they realized they'll never make back the money they paid for it. If you do like it there, it might make sense to move onto a more important product in their core portfolio before the acquisition hangover hits them.

> how do I best stand up for my own interests here, without being the asshole that ruins the deal for everyone?

Be friendly, exude an aura of confidence and competence, but don't be a roadblock. Find out what the decision makers want (first at your current company, then at the new one) and help them achieve their goals. The risk is still you'll be left at the side of the road, but then again, that's always a risk.

rwhitman 2 days ago 0 replies      
I got kinda sucked into this situation a long time ago..

You don't own the product and your stock is now worthless. Being unshakably loyal to a product you don't own and a company you don't own is undermining your negotiating power and is not in your best interest. Letting go of your attachments and making it clear you are comfortable with walking away is very important.

If the product is all in your head and would take a small army of code monkeys to maintain or expand otherwise, then you actually may be the only true salable asset the company has. Even though the negotiation is technically around the product, it's you who would be up on the auction block. If you walk away, they have nothing. That's your bargaining chip.

However, if they haven't already discussed a specific buyer who's on deck, I'd be skeptical that the business is even salable. Don't jump the gun on assuming they'll sell it as an acquihire, you may very well end up without a job very soon. I'd go out and start interviewing, it's a fallback if the sale never materializes and leverage at the negotiation table if it does.

Also the founders at best might get an employment offer from the acquirer, if they're lucky. You as the product mastermind however may be able to negotiate with the buyer for all kinds of things like extra cash, a good title, a 3 day workweek etc..

pauleastlund 2 days ago 0 replies      
Was acqui-hired a couple years ago, and after that vetted several other acqui-hires on behalf of my new employer. A couple quick points:

Few engineers understand that their interests != the founding team's interests and negotiate hard against the founding team. The engineers that do, do much better for themselves. You need to own the possibility of being the asshole that ruins the deal for everyone, but reframe it. Put that decision in their hands. "I want to play ball, but I am burnt out and I need X for this to be worth all the stress and anguish." If they don't give you X, they're ruining it, not you. This "stress and anguish" argument is not bullshit. You have dealt with stress and anguish already, but realize also that there will be more. Two of the five devs on our team got acqui-hired and never made it to vesting because they got so disheartened. It could easily have been three or four. This is not as uncommon as you'd think.

You are saying that you want to leave early and the sale to be about the product, not the team, but you also want leverage. That makes no sense. You can't have it both ways. If the company is buying the product, you won't have a ton of leverage. If the company is paying you a high price, it's because they're buying you, and you're almost certainly going to have to swallow at least a year of vesting to get anything out of this. And that won't be a one-year vesting program, either -- it will be 3-4 years' worth of vesting and you'll be walking away at a year taking home the first big chunk but leaving a lot of it still on the table. This is stupid but pretty commonplace.

Feel free to e-mail if you want more specific advice. I've been through this recently and know a bunch of other people who have as well.

dotBen 2 days ago 0 replies      
Acquihire is when a company buys a startup for the execution team and bins the product - but you're talking about the product still being valuable to the acquiring party. Sounds like an acquisition not acquihire.

So I know I need to get out in front of my management team before they make a deal I'll walk away from, but this is new territory for me and I have no idea what would be reasonable to ask for and what would get me laughed out of the room.

I'm also confused about this - the terms of the sale will ultimately be negotiated by the founders and the board, I doubt you will be involved. What you will get out of the sale will be based on your vesting schedule - there's no negotiation there you will just be told what has been agreed, and what your vest %age works out as (which could be cash, stock in acquiring party or both). And if the sale amount was low and there were liquidation preferences for the preferred holders, you might get nothing other than a job offer. Which brings me onto the part you can negotiate.

The acquiring party will want to meet with you to go over their individual retainment package with you as you join their company. They normally play it as a renegotiated continuation of your vest at the startup.

However, If it is an acquihire a key piece of information to try to find out is what your equity package would be if you joined off the street rather than through the acquihire. I've seen examples where the package isn't much better than off the street.

You should also go interview at another big company to find out what their offer would be. The reason is you want to try to negotiate a package that reflects both your labor going forward AND the rest of the value of the startup they purchased and so these data points are important to know you are getting a better deal than if you just walked off the street and applied.

Honestly, they often are not and so you might be better off working somewhere else than for a dead-end employer like Yahoo etc.

huhtenberg 2 days ago 0 replies      
From my personal experience (dating back to the first .com bubble burst) principal developers are the part of the product. I worked for a startup that ran out of money (all 10+ mil of it) and was actively selling itself to anyone who might be interested. They brought in an interim CEO who was experienced specifically in this sort of wind-downs. They first trimmed all non-techies, then support, then sysadmins and then moved on to the developers. In the end the only people who remained in the company were the founders and two senior devs, me included. For 3 months we just showed up for work at 10, left at 4, collected the paycheck and worked on our own projects. That is, they paid us to be a part of the sales package.
joshmlewis 2 days ago 0 replies      
Hire a reputable lawyer that can look over your stock purchase and employee agreements as well as give you general counsel on the situation. There are so many variables that it's really tough to answer your questions specifically. That being said most acquihires that I've seen tend to be for the team itself and not the product. It's a straightforward way for a company to buy a talented engineering team that's already worked together.

Depending on things like board control, voting rights, how the seed round was structured, etc. will determine most of the answers you are looking for. The term founder doesn't have a lot of legal meaning and if you have a sizable amount of equity in say restricted stock, that's what most people would call a founder. Something else to find out is your vesting schedule and what your triggers are for acceleration. Unfortunately if there are investors there is probably a clause that they get paid back first and acquihires aren't usually lucrative amounts but again it depends on all the specifics.

gizi 2 days ago 0 replies      
First step: make sure to have a plan B ready, before making any other steps in the negotiation process. Look for jobs similar to yours and that pay the same or better. From there, the situation becomes rather simple. If you walk away, the product will become abandonware and will take a big hit in value, say A dollars. Given plan B, walking away would cost you nothing at all. The maximum you can get from the new owners for staying on, is A dollars. The fair amount would be A/2 dollars. If you do not get anything at all, execute plan B and walk away.
balls187 2 days ago 0 replies      
> In hindsight I am very aware that this was a lousy situation to have put myself in, but here we are anyway.

Put it this way, even if you were a founder, you'd still be unlikely to raise an A round, and still be in this same situation. At the very least, hopefully you were collecting salary.

> So I know I need to get out in front of my management team before they make a deal I'll walk away from, but this is new territory for me and I have no idea what would be reasonable to ask for and what would get me laughed out of the room.

Meet with the founders, and state what you want. Even if it gets you laughed out of the room, it's what you want. If they're stand up people, they will have earned your trust through this process, given that you're the lead engineer on the companies product.

The reasonable expectation to set is that the board of the other company will have to approve acquisitions, and those that are non-standard, such as equity grants that have accelerated vesting options are harder to get through. With that in mind, you have to weigh your own leverage.

It's hard to believe that in this hiring climate that the acquirers are not interested in retaining engineering talent.

> How do I best stand up for my own interests here, without being the asshole that ruins the deal for everyone?

Ask for what you want. And if you don't get it, decide what you're willing to live with. If it's zero-sum, you can walk away and look for new opportunities. No one will fault you.

ryanackley 2 days ago 0 replies      
I've been through two acquisitions of small startups. Not sure if they would count as an acquihire but it was a technology/team transfer.

> what's the shortest transition-the-product-to-new-ownership period I can reasonably look for?

Not sure what you're asking. The day after the sale closes everything will change. You may get some time off I guess. How long will it take you to move your stuff to the new office location?

> Is there typically any short-term payout for acquired employees or will everything be in salary and slow-vesting options?

Yes there is typically a short term payout for key employees. both of the acquisitions I was involved in resulted in a large bonus up front but the majority of the total value is usually vested over time. In both instances, if I left before a year was out, I would have to payback the initial bonus.

> what's the likelihood I'd be allowed to remain in charge of my product vs having to execute on someone else's vision?

You will have technical ownership but you will have to execute someone else's vision. No doubts about this. It's what sucks about being acquired.

> When, if ever, is it appropriate for me to ask to be included in negotiations with acquirers?

Never, unless you are considered a partner/founder in the company. If you are considered an employee, then it's appropriate to negotiate your individual transition to the new company. That being said, don't underestimate your value to the acquirer. Product acquisitions are usually contingent on key employees agreeing to transfer to the new company. Therefore, don't accept their initial offer. You have leverage. The first acquisition I was involved in, the owner of the company agreed to transfer some of his proceeds of the sale to bonuses to employees so he could reach the tipping point with the number of employees that agreed to go to the new company. Don't overestimate it either (i.e. don't try and block the deal).

gorbachev 2 days ago 0 replies      
"Most importantly: how do I best stand up for my own interests here, without being the asshole that ruins the deal for everyone?"

You're one of the few people with the experience and know how to take the product quickly to whatever direction the new owners will want to take it. That's worth money.

That would be the angle I would play if I were you.

How much it's worth is a trickier question. Personally I think it's worth a premium, but only if your company doesn't have lot of people with the same expertise and assuming they want to keep developing the product.

If it's a pure acquihire situation, the product and your equity in it has no value. Your value is what value you personally bring to the company.

JSeymourATL 2 days ago 0 replies      
> When, if ever, is it appropriate for me to ask to be included in negotiations with acquirers?

Assuming you have a cordial relationship with the founders & investors-- volunteer to help with the process. Instead of an auction; can you short-list any companies that would make a solid, strategic match? Why they make sense? Can you find out who exactly the appropriate contacts are at those companies to engage in a potential deal dialogue? Demonstrate that you've put some thought into this and want to help. You may find yourself with a seat at the table. The higher visibility gives you more leverage.

yaur 2 days ago 1 reply      
How did you find this out?I ask because in every case I'm aware of no one except key people was even aware that they had decided to sell until the deal was done. So either you are a key person or the founders don't know enough to keep this to themselves.
phamilton 2 days ago 0 replies      
Should a big buyer come along, I would recommend at least entertaining the idea of hunkering down post acquisition at some big company and just being an average employee. Find a new hobby, spend more time with your family during the week, disengage from your identity as a programmer.

If the acquihire is good there should be a nice retention package for you. Getting paid well to take it easy is not a terrible situation to be in.

joshjkim 2 days ago 0 replies      
As most people here point out, hard to say without more details. Here's the simplest practical advice I can offer: if you have any options vested and have not exercised, buy them immediately so that you become a voting shareholder. It will cost some $$ that you may never see back (tho hopefully very little, since angel-stage), but it will buy you some leverage. Even if it's a fraction of a percent, as a shareholder you can vote on the transaction and even though the founders / angels will have a majority and be able to push the deal through regardless, dissenting shareholders are always a major concern for buyer/seller in M&A, and so you can have some impact on the deal.

Most deals like this will be set-up to have key employees and founders work for buyer at least 18-24 months, and while I understand you don't want to do this the bottom line is in deals like this, developers like you, and your willingness to work on product integration, ARE the value so if you're unwilling to do that then there may be no deal, but more likely you just won't be able to realize very much of the deal's value since the buyer will set it up to make sure only people who stick around are compensated. Not much you can really do about that.

In fact, if you want to be machiavellian about it all, one play would be to make your founders and buyer believe that you REALLY wanted to work at buyer so that buyer got comfortable with putting more of the consideration upfront and not-tied to vesting - this would be somewhat dishonest IMO but people do it (I've seen it happen for $200M+ deals...). Contra, if you expose that you don't really want to work with buyer, they will certainly tie any consideration to vesting/earnout.

Best advice is be honest about what you want and ask for it (really the only people who can answer the rest of your questions are the founders and buyer - these are exactly the questions that get hammered out in deal terms), but also be empathetic and hear out why others might have different priorities - ultimately a deal like this is one team being absorbed by another team, all made out of people with divergent interests, so you just have to make compromises.

jackgavigan 2 days ago 0 replies      
> Angel-funded startup isn't going to make it to its series A... The software has real value, good market visibility, and actual sales.

If this is the case, I'm curious as to why they can't raise an A-round but that's kind of beside the point...

Most of your questions are hugely dependent on the type and complexity of the product. My contact details are in my profile - feel free to drop me an email if you want to get more specific advice on a confidential basis.

> Is there any likelihood of an acquirer being interested in purchasing the product but not its developers?

Doubtful, particularly if they plan to keep selling the product. Even if you've documented the code fully, they'll almost certainly want you for your knowledge/experience/familiarity with it.

My advice would be to sit down with the founders, make them aware that you want to be kept in the loop (I would gently but firmly insist upon it), and let them know what your preferences are in terms of the post-acquisition requirements.

I reckon that you should also expect to be treated substantially the same as the founders in any deal.

davismwfl 2 days ago 0 replies      
So many variables.

First, the software can be sold without an acquihire and is not an uncommon route by traditional enterprises outside of tech (an asset sale). However, in general even in those cases the acquirer wants at least 1-2 key employees to help them through the transition. I have been though a couple of these with Public companies being the acquirer and am familiar with it. Also, if this was the route the startup would likely be required to pay investors first from the sale, and the chance you or anyone else gets anything is fairly low (so you want/hope for an equity sale not an asset sale).

In the end, you aren't a founder so in reality unless the founders are including you on the discussions you won't know for sure what is happening or being discussed. If the founders are good people (but maybe bad business sense), hopefully they will be fighting for their team. You did mention you have a significant equity stake, if it is large enough you may be able to get a seat at the table, depending on if it is options or granted stock and what class of stock it is etc. Also, part of this all depends on how many people are in the company and what the skill set makeup is like. e.g. 6 people total with 4 being devs is different than 6 people with 1 dev when it comes time to be acquired.

If the acquirer is a large firm with in place development and product management the chances of you staying in control of the product are slim long term. Short term you might have some say, 3-6 months, but longer term you likely will not. That isn't to say you couldn't, but the odds are against it generally speaking. The smaller the acquirer is, the better the chance you get to stay in a more controlling spot.

As for what to do to protect you, don't try to sour the deal, but make sure that you negotiate what is fair to you. I'd stick out the acquihire if the deal was reasonable, you may have to stick around for 12 months or so but for that you may get a small amount of stock or cash. I have not ever done this part, so others here are probably a better source of information.

ScottBurson 2 days ago 0 replies      
> I know I need to get out in front of my management team before they make a deal I'll walk away from

I don't think so. Whether you walk away from the deal is not their problem; it's the acquirer's problem. The founders can't write a sale contract that promises that you will do X, Y, and Z; all they can sell the acquirer is the company's assets.

It's with the acquirer that you will have some negotiating leverage. If they're smart, they'll bend over backwards to make you happy. Alas, not all acquirers are smart; but if they're not, that's their problem, not yours, and not your founders'.

paulsutter 2 days ago 0 replies      
> Most importantly: how do I best stand up for my own interests here, without being the asshole that ruins the deal for everyone?

First figure out what you need to make it work, and then be up front about that with everyone. Be stable, straightforward, and stick to your position. Have a clear idea of your plan B (which could be 3 months of travel, for example).

Be polite but absolutely, positively willing to walk away.

As long as you stay stable and polite you won't be an asshole. This is your life, you don't have any obligation to be a "nice guy" and take a shitty deal just so that other people can make money or save face.

alain94040 2 days ago 0 replies      
Do not keep silent until after a deal is done, because by then, it will too late to change it.

Start talking to the founders now (they will be the ones negotiating). Communicate your "preferences" early. For all you know, they might be telling potential acquirers that "the entire engineering team is committed to seeing this product through at its new home, so no problem signing up everyone for another 4 years again". If that's not ok with you, they need to know now.

someear 2 days ago 0 replies      
What would be your title once you've been acquired (or if you went out and got a job)? Dev, Product Manager, or something else? And how many other engineers does your current team have?

As others of mentioned, the most valuable asset here is most likely the engineering team + founders (since you're headed into an acquihire), not the product/customers.

lmm 2 days ago 0 replies      
It's not like I have a lot of experience in this (and the UK may be different), but:

> what's the shortest transition-the-product-to-new-ownership period I can reasonably look for?

Whatever you can get away with, but a small number of years is what I'd call "normal".

> Is there typically any short-term payout for acquired employees or will everything be in salary and slow-vesting options?

The latter - the whole point is to try to get you to stick around, after all.

You can expect to get a good price for your (non-option) equity immediately though.

> Is there any likelihood of an acquirer being interested in purchasing the product but not its developers?

If the product is profitable, then yes, but they will certainly want the developers for a transition period.

> Assuming I do stick it out as an acquihire, what's the likelihood I'd be allowed to remain in charge of my product vs having to execute on someone else's vision?

How good are you at office politics? There will be people above you, unless and until you can get yourself promoted above them. Your working relationship with your boss is what you and they make it. By all means try to find and sound out the person who's going to be in charge of you, but realistically the acquirers probably don't know themselves who'll be running your division in 3 months' time.

> When, if ever, is it appropriate for me to ask to be included in negotiations with acquirers? Most importantly: how do I best stand up for my own interests here, without being the asshole that ruins the deal for everyone?

Honestly, any deal is going to be about the (monetary) interests of equity holders. The current owners have nothing to gain from treating the employees well and will not negotiate particularly well for the employees' interests (and why should they?). The acquirers will give the employees whatever terms they think are in their own best interests - which may include some form of slow-vesting golden handcuffs, but that will be determined solely by how much they (the acquirer) want you to stick around.

As an employee you don't even get a seat at the table - you get what's in your contract with your current company, plus whatever you personally negotiate with the acquirers. By all means negotiate that, but that's for after the sale is agreed, and treat it as what it is: an employment negotiation with an entirely new company. Remember you can always walk away.

As a shareholder, on the other hand, the board should be representing your interests as a shareholder. But that probably boils down to selling the company for the highest price possible, which is what they'll be aiming for already. So I don't see any real value in inserting yourself into that negotiation.

7Figures2Commas 2 days ago 0 replies      
> ...I'm kind of done working for other people at all at this point

> I have no idea what would be reasonable to ask for and what would get me laughed out of the room.

What's so bad about being laughed out of a room you don't want to be in?

justonepost 2 days ago 1 reply      
You call it your product? Did you meet with the customers? Did you build it in a complete vacuum? Is it completely unrelated to anything anyone else in the company was building? Did you pay your own salary? Probably not in all cases. You probably benefited from the context of the company that you're in. It's the company's product, not yours.

"Most importantly: how do I best stand up for my own interests here, without being the asshole that ruins the deal for everyone?"

Simple, don't try to ruin it for everyone as your negotiating tactic. Why would you want to do that? And absolutely no one expects you to be a slave or to accept offers sight unseen. That's ludicrous and weird if you expect that is what people are thinking.

If you don't like the offer, don't take it. If you like it, great. It is as simple as that. That being said, if you think that's a possibility I seriously suggest you have a great back up plan ready (another job offer, lots off ideas you want to pursue on your own and money in the bank, etc).

One thing you need to remember, is that while you are valuable as an individual contributor, the founders are valuable for being able to attract and lead individual contributors of your calibre. Believe it or not, the latter is far more valuable than the former.

This is why when you take a job, you really want to take a job working for people you really respect and admire, because they get a portion of credit for everyone that works for them. And there is nothing more soul destroying than someone getting credit for something you've done that they don't really deserve..

Ask HN: What happened to hnwatcher.com?
3 points by nodesocket  14 hours ago   1 comment top
dangrossman 8 hours ago 0 replies      
http://hnnotify.com/ does the same thing
Ask HN: How to negotiate startup salary as new-grad SE
3 points by whattheblog  15 hours ago   2 comments top 2
caseyf7 14 hours ago 0 replies      
Best bet: Get a better offer somewhere else and use it as leverage.

Other things: Get them to pay some of the expenses you would be paying for after taxes (like commuting, parking, phone, internet, etc). For each $100 of expenses, it's like earning an extra $150.

daodedickinson 15 hours ago 0 replies      
Try getting another offer from a more environmentally-sound and lower cost-of-living location, like a Missoula or Vancouver and then leveraging thatemphasize that you don't want to exacerbate the problem of about 4 million people living on a water table that can serve only about 2 million people without being able to pay suitable environmental reparations.

Obviously don't do this if the bosses aren't the stereotypical SF-hippie type but it works for a lot of us. Feel it out and use your best judgement with this food for thought.

Ask HN: Why do UK companies think that software development is cheap?
14 points by JamesReeves1988  1 day ago   22 comments top 15
frigg 4 hours ago 0 replies      
3K is not on the low side, it's at the bottom of the barrel. The project doesn't sound simple at all (on the contrary) and the time frame is short. Is 3K for each OS platform or for all three?

Assuming the latter and assuming you work 5 days a week 8 hours a day for 5 weeks, it amounts to 200 hours. You will be working for 15 pounds an hour.

audleman 1 day ago 0 replies      
The scope of this project sounds huge. I can't imagine that you'd be able to do it as a sole developer in 5 weeks.

Are they handing you wireframes and design files? E.g. has somebody already done all the work of thinking through the UX, come up with all of the pages, handed you the static assets, and all you have to do is program it? Because if not, that part alone can take months.

Are you prepared to develop on multiple phone platforms? That could take 5 weeks.

to3m 1 day ago 0 replies      

Look here: http://www.itjobswatch.co.uk/contracts/uk/developer.do

This isn't quite the same sort of work, but it will do as a rough guideline. Look at the average rate outside London: 350.

So, what does this work pay by comparison? 3000/25 days=120/day. Not enough! The page above suggests 300-400/day is a usual daily rate. So you could use that as a guide. 25 * 300=7,500; 25 * 350=8,750; 25 * 400=10,000.

This isn't the sort of work I normally do, so I'm not hugely familiar with what people tend to charge - but I think 10,000 might even be a bit low. There's possibly people who've done this before laughing at the very idea right now. After all you'll be shipping on 3 platforms with payment/videos/online shop, and in only 5 weeks. If you're going to need to pay somebody else to do anything (artwork, programming), that is going to eat into this sum at quite a rate. Don't forget hardware and software costs too.

Aside from the scope, there is also a good possibility that more people at the client end will want their fingers in this pie once it gets going, and that will delay things further.

(Apologies if none of the above is news to you. I just assume that if you're contemplating doing this for 3,000, then it's something you haven't done before.)

davismwfl 1 day ago 1 reply      
The scope seems way too large to fit in 5 weeks for 1 developer. Not to mention 3k doesn't even come close to being realistic. I do wonder though, are you talking a mobile responsive website or a native mobile application? The "with CMS" makes me question that as does the online shop etc. Either way, still way too much for the timeframe at money.

Realistically, in the US at least, regardless of web app or mobile app you are looking at likely multiple 10's of thousands of dollars to do it right assuming it is all new code and design work still needs to be complete etc.

As an FYI, I have seen a few companies make these wild type suggestions to find out who NOT to use. If someone even entertains it they know the person has no clue and so they won't work with them.

NumberSix 1 day ago 0 replies      
Couple thoughts.

If "got asked from a reputable university" means the client is a university, in USA at least universities and non-profit institutions tend to pay less than for-profit.

Generally, I avoid firm fixed price contracts and quote an hourly rate and a non-binding estimate of hours. The reason is it is usually very hard to accurately predict how long a software project will take. Sometimes if it is something very cookie-cutter that you have done several times before, you can make a fairly good estimate of how long it will take.

bbcbasic 1 day ago 0 replies      
Given the spec and the deadline, I would quote a ballpark 100k. Drop it to 50k if they can relax the deadline. Maybe to 25k if they can accept a list of caveats about what will and will not be included and off the shelf solutions where they will have to accept some limitations.
JamesReeves1988 1 day ago 1 reply      
Thanks all,

I have other contracts that pay above the market rate for my services. I did email the person back and said they would be able to get my services for one week for 3k.

I was interested in what people thought about the offer, as recently I've had a few offers in this bracket. (Which I've politely turned down).

avighnay 1 day ago 0 replies      
I would not blame the client, any industry's value is a direct reflection of how the industry projects the value of its produce.

We software engineers more often than not, project the 'I can build that easily' view (you can see that in this thread too). Many of us are too eager to put our engineering ego before business sense. We forget that it is one thing to demonstrate technical feasibility and quite another to build a finished product. Even the smallest piece of software needs real good effort to make it complete.

This is compounded by having substantial pieces of software available as open source and customers always read that as free as in free beer. It takes quite some effort to make them see otherwise.

When we say its easy, when many of us give our work away for free (even with good intentions), when we put engineering before business, we are steadily moving software in the path to being a cheap commodity.

All this is not even considering availability of software talent in countries where the skill set is available for much less...

sgt101 1 day ago 1 reply      
Will you be able to deliver to other clients in the same period? If not then you are working for ~28kpa which is low, and given you are freelance pretty unfair (because the reality is that you will be unlikely to get close to that on those rates.

Realistically if you have some experience you can expect (outside London) to earn ~40k pretty easily (and much more if you are good/prepared not to do the easy stuff) Given you are freelance my view is that you can ask for a 10% premium to cover sickness and fallow periods. So aim for 44k so I think that 4700 would be a fair quote (low end) for this job.

Of course this assumes that the work can be done in 5 weeks on 40 hr weeks. If in fact you will need to work 60hrs a week you need to be asking 50% more ~7k

onion2k 1 day ago 1 reply      
Just say no and move on. You'll make more money going after sensible clients than negotiating with a bad prospect to get the price up to something reasonable.
pyb 1 day ago 0 replies      
It sounds like they're just not very serious about getting this job done. In this business, it seems that a lot of potential clients are just fishing.
VOYD 17 hours ago 0 replies      
Way too low. Say No.
james1071 20 hours ago 0 replies      
Just say no.
flarg 1 day ago 0 replies      
Will it take you 5 weeks to build?
6d0debc071 1 day ago 0 replies      
The first offer is almost always low, especially if they're caching it in the normative terms most favourable to them - five weeks vs business value.
Ask HN: How to take personal care when you are in front of screen for 16 hours?
16 points by travis_bickle  1 day ago   25 comments top 19
onion2k 1 day ago 2 replies      
What have you done to measure your productivity?

I used to do something similar to you - 12 hours coding every day, with a couple of hours of Counterstrike, for about 3 years. I thought I was being very productive. But then I started to measure my effectiveness (purely out of interest rather than any belief I wasn't working well) - I measured my billable hours, lines of code, commits, issues fixed, etc. Over the course of about 3 months I found that I did less work when I was in front of the screen for 12 hours compared to 8 hours. Spending more time in front of my computer reduced my effectiveness. I put the reasons down to the fact I could do exercise, sleep better, have a social life, etc - by being healthier I work better. That said, my Counterstrike skills completely disappeared, so there were downsides.

My suggestion would be to take a few hours to build something that tracks how well you work, and then vary the hours you put in for a while. See what happens.

Regarding your eyes, try to make your screen brightness match the ambient level of light in your environment, sit at a distance where you don't need to actively focus (use glasses if necessary), and pick a theme for your IDE that's quite dark. The less work your eyes have to do the better.

gusmd 11 hours ago 0 replies      
Hey, I was feeling a lot of eye strain a few months ago while writing my dissertation. I went to an ophthalmologist, and he gave me a few tips that changed my life (no, serisouly):

- DO NOT have the monitor at eye's level as some people suggest. Our muscles relax when the eye is looking down. 45 degrees down is fine. See for yourself: Put your finger at eye's level and keep looking at it for as long as you can. Then drop it down to chest's level and see how much better it is.

- Get yourself a bigger monitor, in case you don't already have one, and stay further away from it. Also related to eye muscles strain: focusing up-close is really bad for you. Do this test: look at your finger really close to the eye, and then place it further away.

It puts a lot of strain on the eye's muscles to look up and focus up-close. Those were exactly my problems. Putting my chair a little bit higher and my monitors further back in my desk solved my problems.

edit: Make sure to use only your eyes to look down, and not your neck or back, otherwise you will replace one problem with another.

jkot 1 day ago 1 reply      
Had similar problem, now I can sustain 10 hours with no headaches. Here is what works for me.

- get your eyes tested. I have small astigmatism, not enough for glasses, but it was causing headaches. I got glasses anyway.

- Recheck your eyes every year. Eyes lens will flex once you wear glasses

- Buy large sound isolating headphones, not in-year.

- Play single song in loop

- Get a bigger screen, even cheap 20" will do. Laptop has horrible ernomomy

- Investigate ergonomic keyboards. Microsoft Natural Ergonomic Keyboard 4000 or Microsoft Sculpt are good starting choice.

- Try inverted colors. Most editors have colors schemes, try Solarized, Dark Vim etc..

- For browser most sites (github) can be styled black using Stylish browser plugin

- All operating systems (even Android) supports inverted color accessibility settings. Control-Option-Command-8 key combination on Mac.

- Reduce time spend in front of computer by improving your productivity. It is much less draining if you actually enjoy your work and see results fast.

boomlinde 20 hours ago 0 replies      
The obvious answer is not to spend 16 hours in front of a laptop screen at your desk. Scedule an hour of daily exercise, eat healthy and do those other things that you ought to be doing like cleaning, cooking, washing and sleeping.
mkagenius 22 hours ago 0 replies      
I use 1-hour-less principle. It is counter-intuitive but since I am not working for any company I can afford it.

Right before the work is about to finish, I realise that it will take me an hour to finish this - I call it a day.

The benefit apart from less stress is that tomorrow you are motivated for your next day's work, you know you can get something done right away without having to plan for anything.

And that 1 hour's work often takes only 30 minutes.

amarraja 21 hours ago 0 replies      
One of the firsts apps I install is f.lux [1]

I put it on the "slow" setting, and it gradually adjusts my screen during the day. I stopped noticing it, however whenever I look at a co-workers screen, it feels like I am staring into the sun!

[1] https://justgetflux.com/

h_o 21 hours ago 0 replies      
Start weightlifting to increase serotonin levels.

My eyes started twitching - I needed glasses so watch out for this.

When you use a screen, you blink less. Actually try to blink more. Also look away and focus on far away objects - the usual tips.

The last tip I find that works is close your eyes gently while sitting down, and tense your whole body, as much as you can. Even your glutes, activate as many muscles as you can while keeping your eyes as un-flexed stressed as possible.

My eyes feel much better after doing this. I think I read this some time ago, and your body is using energy elsewhere - while relaxes the muscles not needed (around your eyes) and it feels amazing.

Good Luck!

NathanKP 20 hours ago 0 replies      
- Get an external monitor if you can. Personally I can't use a laptop for an extended period of time because it really takes a toll on your body. I just use my laptop in clamshell mode with a large external monitor, and an external mechanical keyboard and mouse.

- Get up and walk around. I usually get up and stay up for 15-30 mins about once every two to three hours. Mid afternoon (the longest work stretch of my day) I get up, go down 12 flights of stairs and take a walk around a few blocks just to keep the blood moving.

- With regard to eyes use a dark background for everything. Bright light is what makes your eyes hurt. Alternatively make sure the difference between foreground and background isn't too great. A soft light behind your monitor can reduce the contrast between the blinding light coming out of it and the dark area behind. Also make sure to look away from the screen periodically. If there is a window nearby stand up every 15 mins or so, walk over to it, and look out at a distant object. This is good for both body and eyes.

brachi 17 hours ago 0 replies      
I read all the answers and they're very good. I'd just add something very important: keep track of how many days you go without doing exercise, eating healthy etc.All this advice is great, but it's very easy to have a 'bad period' where you just don't realize you're going back to your old patterns.Being more specific: implement some remainder in front of you that shows your progress over time. E.g.: a piece of paper showing you the dates you exercised in green, and the ones you didn't in red. Make it your first priority to complete that piece of paper. You can go fancier with web apps or even fit-bands, but the idea is the same: track yourself everyday. And be aware of when you stop doing what you need to be doing.
flarg 23 hours ago 0 replies      
FWIW I do this: gym 1 hour per day (improves health, skin condition, confidence - just don't run every day and do get good running shoes); plan my goals with GTD (listen to the original audio CDs - they are golden - online guides are usually missing huge chunks --- use paper or a simple note-taking app like Zim); Final Version (http://markforster.squarespace.com/final-version-faqs/) in a cheap notebook with side markers for context; Pomodoro to split up the working day.

All this has taken years to work out - and it will not click you to start with - but you'll eventually find yourself feeling less stressed and more satisfied with your day.

Whether you like it or not it's not sustainable to be in front of a screen for 16 hours a day - so make one of your life goals to get out of that situation as soon as you can.

ramtatatam 1 day ago 0 replies      
For your eyes - I recommend installing a software that will remind you to give your eyes a bit of relax (years ago when I was on WinXP the software was called EyeCare, when I google for it now there is a plethora of projects so you will need to test what suits you best)

For productivity - what helped me a lot was to block myself on my home router from accessing all distractive web pages I used to pop in every now and then (i.e. playok.com for just one chess game, linkedin, facebook, ycombinator :-) ) - I found that my brain loves to be distracted and it is not that simple to keep focused, blocking distractors helped. Having that said I was also allowing emails in certain hours in the morning and in the evening (no emails during the day).

Also I completely cut on my favorite games (even during the weekend) like HalfLife, CS, starcraft... Was hard to make this decision but in the end appeared to be a great time saver.

rhokstar 19 hours ago 0 replies      
Olympic weightlifting, gymnastics, plyometrics, running, some powerlifting, and stretching/mobility work (all CrossFit stuff). Doing all this is preventative maintenance to sitting at a desk for hours at a time.

I do this six days a week, 2 hours a day starting at 6am. When I'm at the computer, because my body is strengthened and limber, I can sit a lot longer but I inherently like to move around a lot.

Also, having a good workstation is key. Proper height for chairs, monitor at eye level, elbows are slightly above parallel to the keyboard. Stand up stations are also awesome and cheap/easy to create.

mark_l_watson 17 hours ago 0 replies      
I almost died 8 years ago from sitting at my desk too much. Without knowing it I developed a quiet form of deep vein thrombosis and then dropped with two pulmonary embolisms. I am fine now, but it was a close call.

My recommendation is to have a timer on your laptop to remind you to get up and walk around for at least a minute, every twenty minutes.

I also find it beneficial to do a few minutes of random Qi Gong exercises about once an hour.

jpmgoncalves 1 day ago 0 replies      
First of all, take care of your eyes. Use the 20 20 20 rule as previously said, check your eyes to avoid headaches.

If you use a laptop, get a stand and a separate keyboard and mouse, it'll help your posture. If you have a desktop, it'll be easier to maintain a good posture and relieve neck pain by looking to what's in front of you, not down to a laptop on a table.

Walk. Get up every hour or every 45min. Do this religiously.

Drink lots of water or tea. Stay hidrated. Don't eat garbage.

To have better sleep, install flux on your computer.

If you have some spare money, buy a really comfortable office chair that's not too sofa-y and not too hard. Buy a table that has the right height to you.

omginternets 1 day ago 0 replies      
Take breaks away from your computer.Get up and walk around during said breaks.

There is no substitute for this, and it represents 80% of the "cure".

(numbers pulled out of my descending colon)

kozhevnikov 23 hours ago 0 replies      
A pomodoro timer app [1] did it for me, although I have not bothered with the whole method/technique with all its bells and whistles, just the dedicated uninterrupted 25 minutes of work 'sprints' and short 5 and longer 15 minute breaks that I do not skip.

[1] http://rinik.net/pomodoro/

amanmaan08 1 day ago 0 replies      
Follow 20 20 20 rule

After every 20 mins look at a point that is atleast 20 feet away from you for atleast 20 seconds for your eyes.

nickjj 1 day ago 0 replies      
Every 3-4 hours just go outside and walk around for ~20min.
andrewstuart 22 hours ago 1 reply      
I go to crossfit.
Ask HN: Why is Flash so vulnerable?
14 points by zatkin  1 day ago   11 comments top 7
patio11 1 day ago 1 reply      
It's a ginormous codebase in a non-memory-managed language which was written back before the industry got serious religion on security. It is free, has a very wide install base, and in common deployments will execute code provided by any host on the Internet. This makes it a very attractive target.

Applications of similar complexity/surface area can swallow hundreds of millions of dollars of security research. Flash has not received this. (Windows/Office/etc have.)

ruraljuror 22 hours ago 0 replies      
I was listening to the Security Now podcast this morning. On episode 514, Tor's Astoria Client about the first 30 minutes of the podcast is spent going into extreme detail about how a recent Flash vulnerability was exploited.

I can't link to a page for the episode.

Here is the episode list:https://www.grc.com/securitynow.htm

The episode:https://media.grc.com/sn/sn-514.mp3

The transcript:https://www.grc.com/sn/sn-514.txt

I think most of the content is sourced (and credited) to this post from FireEye:https://www.fireeye.com/blog/threat-research/2015/06/operati...

bmm6o 19 hours ago 0 replies      
To me, it seems like a combination of several factors: * None of Adobe's products are particularly stable or secure - not even the ones they charge a lot of money for. * Flash's wide install base and the fact that it's easy to invoke on a target (via the browser) machine makes it an inviting target for hackers. * Flash is a fairly complex piece of software - after all, it's a language runtime. * They don't charge for the Flash runtime, so there's no direct return on investment for making it more secure. The main losses are reputational and until there's a mass revolt (which might be coming) it's hard to quantify any financial losses.
frozenport 1 day ago 0 replies      
I blame Adobe's culture, their culture discourages good programming and their other projects suffer the same problems. For example, bread winners like CS/CC frequently crash, I have a collection of Indesign files that will crash on demand but my concerns have yet to be remedied after 4 years. Internally, they rely on a custom widgeting kit designed to match the functionality found in their pre-OSX mac software (over 20 years!). Build times are said to be several hours.

Adobe is simply not competent at writing modern software, don't forget that if you cant get a flash zero-day you might get one for Adobe Reader!

nudpiedo 1 day ago 0 replies      
That is how big organizations work:

1. they feel flash is slowly dying or that it could be potentially be sold

2. No more investment in order to get the biggest money from the already existing market of customers, a future sale, or force migration to other products of the same company.

They do not understand that the image of the technology and the community is damaged; and that is a pity when I think in the haxe project and the open source community around it.

Now even an open source alternative to the binary flash would not safe the damaged image and HTML5 canvas is predestinated to overtake it.

EDIT: I think adobe lost a big chance in the market with flash by being too much closed and not understanding modern development/online communities.

ucho 1 day ago 0 replies      
I might be stating the obvious - it contains language interpreter. It is hard stuff to do and from the beginning the focus was on speed not the security. Now it is a high value target and it was probably checked for bugs more than any software in history.
forgottenacc56 1 day ago 0 replies      
A company that employees cheap programmers.
Ask HN: How do you come up with hobby projects?
13 points by DalekSall  2 days ago   17 comments top 13
ylg 1 day ago 0 replies      
I find my interest is most piqued by non-programming fields. So, for me the answer to this question has been: listen for opportunities in the communities around fun, non-programming fields. In my case, listening to a NASA Twitter account led to a weekend hackathon that showed the possibility of programming around live telemetry from space vehicles, which I've been noodling with ever since: https://github.com/sensedata/space-telemetry

Another idea I've been messing around with for ages is a mobile app to support bicycle wheel building; something else seemingly non-programming that I love doing and so looked at specifically to see if I could invent a way to a hobby project.

And, games are another arena that have worked well for me, i.e., programming around them is fun enough to keep me well enough engaged to learn and understand new things. Mods, play-support tools, and of course actual (mini) games. If this sounds interesting, I recommend finding a moddable indie game to start with; micro-studios can be very friendly and supportive of modders in ways that keep you coming back for more.

PS From the OP's context, I'm assuming the real question is "How do you come up with hobby, programming projects that keep your professional abilities fresh and varied?"

evandonaldson 23 hours ago 0 replies      
Everyday interactions present opportunities for further exploration. I get my projects from problems I encounter during my normal interactions with people. Then I try hack something together for fun. My most recent project is hacking a thermostat with a Raspberry Pi 2 and mobile app to notify small shop owners when their freezer temperature has risen above a certain temperature. This project came about from a interaction with my local grocer. I grabbed some Ben&Jerrys out of the fridge a few weeks ago and the shop attendant apologised. He couldn't sell the ice-cream because the freezer power was cut the night before when a cleaner accidentally tripped the power cord. The ice-cream had melted and was a write off. The shop owner had to leave the stock in the freezer until the insurance delegate arrived to confirm the write off. The shop owner gave me the idea of an app that would notify him if it ever happened again. He wanted to do it himself but didn't have the technical ability. I didn't either but that was an opportunity to learn on a real life problem. It doesn't matter that there are commercial alternatives available. It's something fun to program and I have a willing participant to trail it on. Keep your eye's and ears open. Real life problems are often more rewarding to solve than projects on hobby sites.
Porkyorc 2 days ago 0 replies      
I'm much the same, a lot of the time I find it hard to do things like Project Euler or redoing work in a new language because it's not interesting to me.

I have found that watching videos from things like GDC/TED talks about particular software techniques has given me motivation to try and copy them. Yeah, I'm not pushing the boundaries of human knowledge or making a killer app but it's a new piece of technology or technique that I've never done before.

Perhaps look to implement something that you haven't done before in a way you haven't done before. Personally, my current project is a Fiber based raytracer. Having never done either before, it's an interesting problem to solve when you don't look at anything but documentation on MSDN for functions.

jmnicolas 2 days ago 1 reply      
I don't think there is a method to it : as a developer you should see a lot of opportunities to automate things in your daily life. If not you probably need some hobbies outside the dev world.

I started coding about 10 years ago because I wanted to make a better bot for World Of Warcraft than what was available. Literally if it wasn't for WOW and an obnoxious coder that wouldn't share his bot code I wouldn't be a developer today !

Among more recent projects, I made a "green" script to encode videos at night while electricity is cheaper, a tool to extract, rename and classify rared / ziped nested ebooks (obtained from dubious sources ;-), another tool to analyze and optimize my chances at winning on football (soccer) bets (let me say it didn't work very well).

sideproject 2 days ago 0 replies      
I think it's ok. I've started, stopped, finished, paused, abandoned a plenty of side projects over the years. But I see them as more of a learning exercise and I suppose I learned much of my current skill set from these projects.

Having said that, getting the project done to a level where you can show other people is a good objective.

[shameless plug] - I run a site called sideprojectors (http://sideprojectors.com). Take a look at all those side projects people started and maybe it might inspire you to find something that you'll like!

themullet 2 days ago 0 replies      
Would say general brain storming and inquisitiveness, i.e. how does this actually work and can I improve on it.

As an example of this thinking, I looked at ghostery a while back and thought it could be cool to work out what I would have leaked and to which websites. "Would have been tracked" was born, though still got to get around to coding, feel free to take it you want.

As a few other high level project suggestions; cloning programs for different languages, play around with electronics (there's years there) or pick a few open source projects to contribute to.

iisbum 1 day ago 0 replies      
Hobby projects, usually solve a problem that I'm experiencing, the proverbial itch that needs scratching.

If I happen to be looking to try out a new library or programming language I give it ago, even if its not the best choice, because its just a hobby project.

I've done this with recently with: http://optionsworth.com/ and http://dailyriver.herokuapp.com/

edoceo 1 day ago 0 replies      
I'm on the opposite side. I've got dozens of hobby-code projects. I can't go a month w/o some idea. The idea comes first then I pick technology I'm not familiar with to build it as a method to learn.

I spend a bunch of non-work time mentoring/advising early tech-founders so there is constant ideation around me which keeps my imagination going.

kohanz 1 day ago 0 replies      
Mine are usually derived from my non-technical (non-computer) interests and scratching my own itch. For example, my need for a source for quick at-a-glance recap of NBA games (when I found myself with less time to follow sports) is what spawned Recapp'd (which was also my "learn Rails" project).

Shameless plug: http://recappd.com

onion2k 2 days ago 0 replies      
I talk to people. Pretty much every side project I've ever done has come from a conversation about something that someone finds annoying, or an idea that they think is brilliant, or that I think is brilliant. For me, the key to coming up with a project I won't abandon easily is to have other people involved pushing me to work on it.
lrvick 2 days ago 0 replies      
Shameless plug: I started the http://hashbang.sh network with this in mind. Show up, get a free shell, and work on the network itself. Plenty of people from all over the industry noob/pro alike hacking stuff out together and exchanging open project ideas. ;
jmkni 2 days ago 0 replies      
Hang out with people who run businesses and listen to their complaints about the apps/systems they use, should give you plenty of ideas!
d_luaz 2 days ago 0 replies      
I just think of stuff I would like to build, found interesting or useful. If you are the intended user, it's a lot easier.
Ask HN: Are there any startups targeting the credit reporting market?
5 points by davismwfl  19 hours ago   7 comments top 3
shopinterest 18 hours ago 1 reply      
As you said there has been a few tries but usually tied to the lender. Lenders like 'Prosper' and others use other criteria to make the credit decision (social contacts, other bill payments, etc...) There are several FICO scores for many financial products (e.g. your car FICO score, credit card FICO score) and the main one. I guess one way to disrupt would be a way to collect the data not usually compiled (payment history for utilities bills, rent payments, micro loan payment, medical bills) However, in any case your customers are not the people, but the institutions who check for credit, so find a need where someone needs to make a credit decision but doesn't want to use existing credit reports and scores.
halotrope 19 hours ago 1 reply      
Thats actually a very good idea. Here in Germany credit-reporting is done from one central institution called the Schufa and their methods of scoring as well as their practices are completely intransparent and can sometimes have quite a big impact on peoples lives (about even the most basic things like being able to have a cell phone contract or renting a flat) without any alternative for both creditors and debitors. This area could really benefit from some innovation.
tixocloud 16 hours ago 1 reply      
While not credit related, a startup here in Canada is trying to tackle identity verification at a global scale: https://www.trulioo.com/

Your last point about moving from another country to one where you don't have established credit is interesting. If there's a service where you can verify credit cross-borders, I think there might be something there.

Credit scores are great but the real problem is not the score itself. It's about knowing how likely the person is who they are claiming to be and how likely will they pay their bills on time - we use it as a proxy to score the quality of the customer. If there are alternative data points that can tell us the difference between a good customer and a bad customer, we would use it.

Ask HN: What's the mind hack?
2 points by cdsingh1001  17 hours ago   4 comments top 4
Nelyah 15 hours ago 0 replies      
Personnaly, when I feel like wandering off, i let it go. I stop working even if it has to be for 1 or 2 hours. Once I feel I had enough, I take a huuuge cup of coffee (or energy drink, your choice), then I get back to work.When I come back to it, I realize that I have a lot to do in a short time (since I did nothing for the past 2 hours), and the caffein is kicking in. That's when I'm the most productive, and how I manage to get things done.
kleer001 11 hours ago 0 replies      
A more succinct way of asking what you're asking is "How do I keep focus?"

Answer, it's a matter of discipline to attention. How to do those? Lots of practice and lifestyle changes. Reduce distractions and opportunity for distractions.

crispy2000 17 hours ago 0 replies      
One "hack" is the pomodoro technique. Do about 20 minutes of work, then take a five minute break. This avoids burning out trying to work for hours on end, finding that you've accomplished very little.
ljk 16 hours ago 0 replies      
there's browser extensions that you can block certain sites for a period of time(to go off from the pomodoro technique)
Ask HN: Good Clojure codebases to read?
21 points by elwell  1 day ago   5 comments top 5
sova 1 day ago 0 replies      

"CrossClj is a tool to explore the interconnected Clojure universe. As an example, you can find all the uses of reduce across all projects, or find all the functions called map. Or you can list all the projects using ring. You can also walk the source code across different projects."

juliangamble 1 day ago 0 replies      
Understanding Clojure's reader and eval builds your 'mental model' of how Clojure runs your code:

read: https://github.com/clojure/clojure/blob/clojure-1.7.0/src/cl...

eval: https://github.com/clojure/clojure/blob/clojure-1.7.0/src/cl...

sova 1 day ago 0 replies      
If you're trying to build a website I really learned a lot by looking at Xavi's noir-auth-app. https://github.com/xavi/noir-auth-app

Not really a code-base, but the clojure style guide is a nice glance over.. https://github.com/bbatsov/clojure-style-guide

zubairq 20 hours ago 0 replies      
A front end Clojurescript framework which uses alot of external libraries:


ortuna 1 day ago 0 replies      
https://github.com/yogthos/clj-pdf was one I looked at when I started and took a few tricks away from.
Ask HN: Why Does Most Forum Software Have Flat Commenting?
6 points by cconcepts  1 day ago   10 comments top 7
J_Darnley 22 hours ago 1 reply      
I like flat comments that are ordered by date in a forum. Nothing surpasses a vBulletin-style board in my opinion.

Forums are for a different style of discussion than what is done here on HN. I'm thinking of tech support or more general questions and answers where when a question has been answered the thread is over and it fall.

arh68 21 hours ago 0 replies      
Flat commenting structure allows you to reply to multiple comments at once. A flat structure also allows you to easily see the most recent posts.

Perhaps mailing lists are better overall, as the client software can sort messages hierarchically or chronologically.

frou_dh 12 hours ago 0 replies      
4chan threads have a nice linear system where people refer back to previous posts in the thread without duplicating them over and over (as typically happens with BBcode style quoting). This works especially well with mouse-hover viewports to the backreferences.
wmil 18 hours ago 0 replies      
Jeff Atwood has two posts on the topic that support flat comments. Personally I prefer threaded.



Terr_ 17 hours ago 0 replies      
Three theories:

1. Flat-commenting is easier to design, program, and moderate.

2. Assuming popularity is a power-distribution, the vast majority of all "comment sections" contain so few comments that there's no benefit to threading. Crowded places that need branching threads are less-common.

3. Sometimes it serves a design goal, like in ticketing systems: You want to force all participants to be in a single conversation with a shared chronology.

pluckytree 19 hours ago 0 replies      
I like hierarchical if I can collapse threads Im not interested in and comment volume is high. Ive always wished HN would let me do that. Staggered comments can get difficult to follow if there are many levels of indentation.

With flat, you can always quote someones post to make it clear what you are referring to and the time linearity can be compelling, especially if you want to go back and read comments that have arrived since your last visit.

codegeek 19 hours ago 0 replies      
Other than the fact that flat comments are easier to scroll through (for most i guess), I think flat comments allow you to comment overall in the forum which could mean your response can be applied to One or more posts at the same time. Usually a forum is meant for that. If you focus too much on one-on-one conversation, then may be staggered comments make sense.
How to prevent the breaking banner on the BBC News website
7 points by jsingleton  1 day ago   3 comments top 2
ch215 1 day ago 0 replies      
Thanks for this. I wouldn't mind the banner so much if it wasn't abused so often. Screaming "breaking news" at readers all day for stories like "Andy Murray gets married" is absurd and it devalues bona fide breaking news.
joosters 1 day ago 1 reply      
It's a really dumb website feature IMO. I don't want my news website to turn into some kind of 24 hour rolling news channel. What next? A scrolling message bar at the bottom of the screen?
Ask HN: Can community owned marketplace/exchange/protocol exist? Are there any?
4 points by brainless  1 day ago   3 comments top 3
shedletsky 15 hours ago 0 replies      
Depending on how cynical one is, you might view the real estate multiple listing service (MLS) as "community owned", at least from a game theoretic standpoint.

It is not a monolithic organization. There are actually 850 regional MLSs in the US. In some sense this is a P2P walled-garden marketplace. However, there is downward pressure from the national realtors association to standardize on things like listing formatting, so it is not entirely self-organizing.

I think owning the marketplace is valuable. Similar to various open source initiatives, once the free marketplace gets to a certain size, someone like Red Hat will come in, fork it, and set themselves up as gatekeepers. The resting dynamic of the system is a feudal kingdom.

My 2c

kasey_junk 14 hours ago 0 replies      
It's a fallacy to think markets exist only to connect buyers and sellers. Another giant consideration is mitigating counter party risk. This is a very complicated & risky problem. Solving it therefore requires incentives. Those incentives frequently push towards capturing transactions rather than making them open.
Communitivity 23 hours ago 0 replies      
You're not the only one. The OASIS attempt at a standard was called XDI, specifically the Link Contracts portion of XDI. It failed to achieve traction, in large part due to political opposition. If you want to talk more about this, and possibly another go at a standard, please tweet @BillBarnhill. I am working on something myself that attempts to take some of the core concepts I introduced to XDI (I was a co-chair for a long time) and apply them in a more de-centralized and async way, called ADDI (Async Data Discovery and Interchange).
Ask HN: Is iOS Shazam always listening?
2 points by dokalanyi  19 hours ago   2 comments top 2
halotrope 18 hours ago 0 replies      
Since Siri is now incorporating Shazam it might be possible. Otherwise the iOS watchdog would kill the listening App the sooner the later so it would not be possible without use of private API/Support from Apple. Also keep in mind that when recording apps in iOS get the red indicator bar on top of the app. Much more likely that you have been ML'd
gfosco 19 hours ago 0 replies      
This is not possible at all on iOS, just a coincidence.
Ask HN: How to reach out to hackers and CS students in India and Brazil?
9 points by tzgur8  1 day ago   15 comments top 14
motyar 1 hour ago 0 replies      
Why dont just ask them here.. Many of them are on HN.
starlord 1 day ago 0 replies      
One good way to start would be to add the url/details in this post as well.Next, as suggested in other comments Reddit is nice, then Quora is also big hangout for many of your target audience (at least in India).Would probably need more details on the product to suggest anything more specific.If you are willing to spend some money, make a fb page and get some fb ads with product details, beta tester incentives and target to specific universities/colleges/companies perhaps...
lnk2w 1 day ago 0 replies      
You can try to reach the usergroups we have here. Like https://groups.google.com/forum/#!forum/ruby-sp is the official group of Ruby Developers in So Paulo. You can also look for public universities, here in Brazil they have the best courses of CS and IT related in the country.
akshat_h 1 day ago 0 replies      
Post the link here as well. Some students from India/Brazil and other countries would be reading hackernews as well and can spread the word. As others have suggested, try posting in reddit groups as well.
nautical 1 day ago 0 replies      
Indian Myself : HN , Product Hunt , Quora are 3 imp places . hasjob.co is another platform check out if it fits your need .
maha_funk 1 day ago 0 replies      
Sites like this work fine. Also a post to /r/programming or /r/India /r/Brazil would work.

Btw, what is your product ?

rapphil 1 day ago 0 replies      
You could look for top universities in Brazil and India in google, and then look for Facebook and Linkedin communities among those universities. After that you can post a message in those communities looking for beta testers.
arkj 1 day ago 0 replies      
you can ask here on this HN clone <http://hackerstreet.in> too
nphyte 1 day ago 0 replies      
look up universities that offer cs there , and then find fb groups of those universities using fb graph search
pramodliv1 1 day ago 1 reply      
Quora is popular among Indian CS students.
amjd 1 day ago 0 replies      
Reddit is a good place as already suggested by someone.

Also, I'm an Indian CS student. PM me if I can help.

vishalzone2002 1 day ago 0 replies      
how and where did you get your US users? I wonder why would that channel not work for other hacker/cs people. programmer is a community of its own powered by internet so i would guess they would all use the same channel?. like stack overflow, etc.
rajdroid 1 day ago 0 replies      
I think HN is good but everybody doesn't use it at least in North India.
bra-ket 1 day ago 0 replies      
elance, freelancer etc. hire them as beta testers.
Ask HN: Should I go to college?
6 points by robotkilla  1 day ago   18 comments top 10
lsiunsuex 1 day ago 1 reply      
You sound exactly like me - same age, same skill set, same people telling you to goto college.

I prefer a full time steady job (and have one) but if your happy with contract work - great!

Every programmer needs to continue to expand they're knowledge - it's a constant learning process. For the longest time I relied soly on systems administration and PHP - I've expanded into Objective C and AngularJS most recently - trying to teach myself React now as JS frameworks seam to be the "wave of the future"

An example I always give and especially remind my godson who's 16:

My wife is a very bright person - went to a private school for high school, full ride. She then went to a great college, full ride also graduated with a 3.9 and magna cum laude in Phycology. Wanna know the job she held after she graduated from college and for 9 years after that? Secretary.

That's not to put my wife down; it's to explain that regardless of your education, it's all about your drive and motivation. Some people goto college and don't do much with it. Some of us didn't goto college; work our asses off and succeed anyways (I make more then both my brother and sister who both went to college and got they're MBA's)

Work hard; focus on your goal and don't worry about the degree.

(my wife is now back in school for dental hygiene - still with a 3.9 gpa)

Nelyah 1 day ago 1 reply      
I will take the point of view of someone who went to college. Actually I just graduated from my 5th year(I think it's master degree) and going to PhD in computer science. To understand what I want to explain, you need to know that I began college with 3 years of biology, and then switch to computer science. It is only in my 3rd year that I realised how much I loved computer science. I worked my ass off to get directly from 3rd year of biology to 4th year of computer science, so I basically learnt everything by myself too. In the end, I felt that every "practical" classes were pointless. I don't need someone to learn a new language, and it seems you don't either. But it is when I tried some theoretical courses that I realized how much I had to learn in this domain.

I never learnt anything about advanced algorithmic, or graph theory before, or language semantics. But in the end, by knowing all that I really look at a problem with a different point of view than before. I am able to imagine some new tricky algorithm etc.

All of that to say : It depends on what you seek going to college. You will be bored if it's just learning some new language, because you either know them already, or you will go faster than the course. But if you want to learn some more theoretical knowledge, you will learn some new stuff for sure. Then again, I don't know where you live, and college might be quite expensive in some country, so I can't tell if it's really worth the money (since you already have some years as a developper). But it is totally worth the time imo.

nmquirk 15 hours ago 0 replies      
I would say, save your money.

I'm 27, I've been programming professionally since I graduated with a BS. I've made it into a lead developer role after starting as entry level in 2010.

What I found after graduating and from trying to hire people, is that computer science degrees do not equip programmers for the industry.

CS seems to be better designed for people who want to stay in academia. My experience in school was only with languages like Java, C or C++. I had to take a lot of math. I had to implement a lot of algorithms and design patterns. Aside from learning the basics of programming, the only thing that has gotten me to where I am is my ability to understand and problem solve, that's it. Good programmers know how to learn and stay motivated, that's it.

When I left school with a BS, I would have struggled just to get a web server running on localhost. Now, I write business applications. In my spare time, I've learned about 10 languages. I've launch 5 website (all failures, but that's okay). Launched an Android app. Launch three games on the Play store. Tutored college kids on the side. Reviewed technical books for a publishing company.

The odd thing about all of this is that I'm going for my masters right now, BUT that's only because my employer is paying for it. I don't value the degree enough to pay for it myself.

In short, if you can get someone else to pay and all you have to put in is time then go for it. If not, take the tuition money and buy some books and video tutorials. It will be cheaper and require less time. The downside to that is you'll have to sell yourself more than the kid with the degree.

jklein11 23 hours ago 0 replies      
It sounds like you are perfectly capable of learning technologies on your own, and that your primary concern is having a degree as opposed to an education.

Have you considered going for a bachelors in a non-technical field like economics, or business administration, or engineering management?

Any bachelors degree and your work experience would probably be enough to get your foot in the door of any company if you wanted to step away from contracting and go for a corporate job.

brudgers 23 hours ago 0 replies      
There is no right answer. A college degree, in CS or anything else basically can provide three things: the college experience, vocational skills, social validation, and personal enrichment.[1]

Anyway, how these suss out for a particular individual at a particular point in their life varies. In the question, social validation and vocational skills are explicit. Personal enrichment feels implicit in the overall structure, by which I mean that there's a bit of "I wonder what I might learn if I took this risk" lurking breath the surface. If there weren't there would be little reason for a long question.

Your grandfather said what he said to give you permission to do something that is locally suboptimal and entails social risk. That's about as good as a grandfather can grandfather. Maybe you can talk some more with him. Probably worth doing regardless.

Good luck.

[1]: a college degree can provide FOUR things...

a3n 23 hours ago 0 replies      
Personal prejudice: I'd be very reluctant to give up earnings while in college, particularly as you're already very viable.

In tech, college is mostly a learning experience and certificate program for entry level workers. You're not entry level.

gesman 20 hours ago 0 replies      
Just to share: In my 20+ yr career no employer actually asked for any proof of degree. Whatever I have written on my resume was fine with 100% of employers.

They (rightfully so) care about my ability to deliver stuff vs. stuff printed on some paper.

Exclusions from this rule:

- Really large enterprises usually hire some sort of background verification services that would annoy you to no end to provide all kinds of proofs.

- US Immigration (to get TN or other working visa) does ask for proofs of your degrees.

saluki 1 day ago 1 reply      
I think it's good advice to get a degree in general. I would think about testing out taking a CS course and see if you enjoy it and is something you like. You'll never regret having a degree. That said at this point in your career I'm not sure how many more doors it will open for you and you'll have to weigh the time spent vs knowledge gained. Another option is maybe a BS in Science in something other than CS that you could do online that would take less time/focus, but CS would probably be the best fit for your skill set and future employment.

Grandparents are great and have lots of knowledge. The employment landscape has changed though, previously a degree was a ticket to a secure corporate gig till retirement. Now you have companies laying off employees in their 40s to hire lower cost employees, benefits are being reduced, etc. So I don't see a corporate gig as more secure than contracting or freelancing. Another option is to focus on leveling up to increase your salary/savings. Your grandfather would probably feel a lot better if he knows you have the skills to obtain contract employment easily and are making $50+/hr as a contractor. So maybe share how much you're making and that you have multiple offers when you are ready for a new contract position.

I would recommend leveling up to increase your earning power vs. a CS degree, unless it's something you would enjoy/want to have personally.

I don't think you'll learn video game development at university. That's something you would learn on your own making games.

Check out the startups for the rest of us podcast. It has good information on planning for your own products/businesses while working your day/contractor job . . . most of this will apply to making the leap to independent video game developer.

I would say open your options up . . . success in independent video games (Notch/Minecraft) is a bit like a lottery ticket. So this might be something you strive for but realize it might turn in to a nice hobby or niche with a small following with a chance of a billion dollar payoff or maybe a fulltime income or maybe just something you do for fun/side income.

You probably don't want to do contract work forever. So plan to launch your own products, maybe a SaaS app, some type of recurring revenue so you don't have to chase contracts/projects full time. This could also help give you more time to learn/run your independent video game development studio.

Check out everything by patio11 (lots of great articles/advice), http://startupsfortherestofus.com podcast (and previous microconf videos) and Amy Hoy's stacking the bricks video.

Good luck with the direction you go.

Good luck sounds like you're on the right track.

dudul 1 day ago 1 reply      
I have a masters degree and have been a developer for more than 10 years now. I really don't see what a successful professionals with 13 years of experience could learn in college.

It s unclear from your post why you even feel the need to go back. Have you been denied position because you didn't have a degree? Is it because you want to learn more?

tpeaton 18 hours ago 0 replies      
I'm a relatively new developer at 33, with about 2 years of experience now. I was in a different industry for 12 years, but always wanted to be a dev. I dropped out of CS about 13 years ago after I chose a bad (for profit) school that I didn't enjoy. I enrolled in a local state school a couple months before getting the job I have now. I'm half way through my degree, working full time and going to school about half time (6-9 credits per semester). I don't know if I would reccomend it or not. I only went back because I needed to take concrete steps to get myself on the career path I wanted. Now that I'm in it, it's a bit of a struggle to stay motivated for school.


-I'll have a degree at some point and will no longer have to have awkward conversations about why I don't have a degree. This is probably the #1 reason I'm doing it.

-It removes a way for employers to filter me without seriously considering me as a candidate.

-I'll be proud of my accomplishment at some point and won't feel bad every time I think about my relationship with college.


-Money. At a local state school, nothing crazy, I'll be about $35k in debt by the end of it with plenty of up front costs (books, etc).

-Time. It eats an incredible amount of time. Some classes require an hour or so of study time outside of class, but many require a ton. Depending on how polished your math skills are, you'll have a huge wall to climb here. I hadn't been in a math class in 13 years and then get tossed into calculus. Yowch. In addition to 5 or so hours of class time, I probably put in 10 hours a week of studying/homework just for that one course.

-Scheduling. Your scheduling needs might be different, but I work a pretty standard workday of 9-5. The university's latest CS courses start at 5:30 two days a week, which means if I am taking two CS courses simultaneously, I'm in class four nights a week. That means studying has to happen on virtually every off night. It also makes it very tough to take more than 2 classes at a time. Keeping a decent pace is key to actually finishing in a reasonable time. It'll probably take me 5 years total to get through it all.

-Content. The actual courses will drive you crazy. Professor's requirements are usually a clinic in what not to do in the real world. Your good habits will be punished in many circumstances. About half way through, I can't say I've learned anything invaluable that I couldn't have learned better on my own if I were sufficiently motivated. I'm hoping the upper class courses are more interesting, but so far it's been a bust.

-Bandwidth. You only have so many hours in a day. You'll be spending your time on things you have to learn instead of the things you WANT to learn. I'd love to spend my evenings getting more proficient with modern tech, but instead I find myself reading about anthropology or the like. My university is very Java/C/C++ heavy, which is not what I prefer. I'm happy to learn these things, but I don't see myself ever being a happy Java dev professionally.

So there are a lot more cons than there are pros for me, but I think the pros are still worth it. I'll let you know in a couple years. If you're looking to be indy dev, I doubt a college degree will help you get where you want to go. I'd spend that time and effort on a project of your own. By the end of it, you'll have demonstrable skills and a product you can show off.

Ask HN: Is it just me or do the no-reply email addresses really bug you?
15 points by titusblair  1 day ago   15 comments top 13
dangrossman 1 day ago 1 reply      
All mails from Improvely come from a real mailbox you can reply to. I send about 10,000 notification mails per day to users. As a result, I get up to several hundred useless auto-reply messages a day.

I set up filters in my mail client to trash them. If I were mailing tens of thousands or more people a day, then that might not be a workable solution.

The sole reason for no-reply addresses isn't that companies don't want to be contacted.

osipovas 1 day ago 0 replies      
I first really noticed how much this bugs me with the New Yorker's subscription reminder.

"We need to hear from you right away regarding The New Yorker holiday gift subscription you gave JANE DOE last year."

So, I kindly replied: when does it expire? Then seconds later I get a bounceback. It's a terrible customer experience.

mead5432 1 day ago 0 replies      
Was the email you're replying to connected to the issue you're discussing? If yes (e.g. Support Forum message), then no-reply is a bad UX and it absolutely should connect to an appropriate channel like posting the response to the thread. If not (e.g. Marketing email), you're probably trying to talk to the wrong person anyway. Besides, having a person in marketing sifting through all those emails to try and find relevant emails is imperfect and slow with the chances of signal getting lost in the noise highly likely.
gesman 1 day ago 0 replies      
Automated notifications/confirmations/instructions that imply that no humans is sending this email.

Although many such email do contain instructions on how to contact someone relevant.

Expecting "thank you for your purchase" from amazon to come from jeff.bezos@amazon.com is unreasonable.

superuser2 1 day ago 0 replies      
The reason for this is that a very large number of automated emails (even if a very small percentage) will bounce back. The person-hours to sort through all of that noise are just not worth it in most cases.

There are some cases where you can reply to an automated email, but typically it's where the notification is only ever sent to real people with active email accounts - a receipt, not a newsletter.

evandonaldson 1 day ago 0 replies      
no-reply emails are typical of companies like Paypal. It is a terrible customer service experience. But the worst UX is when you have to complete a web form to make an enquiry but don't get a email receipt of your enquiry. So there is no proof you submitted an enquiry and unless you copied the text to another file you have no copy of exactly what you submitted. If you are lucky enough to hear a response it's from a non-reply email address. I experienced this exact scenario recently. I thought it was blatantly cynical.
BjoernKW 1 day ago 0 replies      
Same here.

I get that those emails aren't sent by a human but if I have an issue with the sender's product or service or a question regarding the content of the email being open to replies not only is polite but it also signals that you care about the recipient.

If you want to create customer delight being responsive to emails is a particularly low hanging fruit.

colinbartlett 1 day ago 1 reply      
It's also an indicator that email isn't the best communication mechanism for everything. A lot of these messages you refer to are simply one-way notification style message that really are better served in a push notice style format: Short, one-way, and ephemeral.

Can we supplement email with some other open standard communication mechanism that fits better for notifications?

27182818284 1 day ago 0 replies      
When they first started getting popular, I enjoyed them because it clued me in that my email would be bounced before I took the time to draft an email.

Now the fashion trend has changed and I feel annoyed that I can't reply to it and get some type of something. Whether it be an update in a ticketing system or a real human.

flooq 1 day ago 0 replies      
I think they're okay for mass communication (product updates, etc) but not in reply to a customers email.
teaneedz 1 day ago 0 replies      
I get why email senders do it, but it does create unnecessary UX friction. Yes, I dislike it too.
6d0debc071 1 day ago 0 replies      
Yes, but largely because they generally don't include an email address for if you wanted to talk to a real person about the issue. Doesn't have to be the same one.
briandear 1 day ago 0 replies      
I find them obnoxious. You want to communicate with me, but I can't communicate with you? It's ridiculous.
Ask HN: Good Perl codebases to read?
6 points by latenightcoding  1 day ago   3 comments top 3
christofosho 1 day ago 0 replies      
raiph 16 hours ago 0 replies      
These aren't codebases but 1-100 LOC solutions to 700+ programming tasks:

Perl 5: http://rosettacode.org/wiki/Category:Perl

Perl 6: http://rosettacode.org/wiki/Category:Perl_6

drallison 21 hours ago 0 replies      
Check the Comprehensive Perl Archive Network, http://www.cpan.org/.
Ask HN: Good ALGOL 60 codebases to read?
10 points by jasondecastro  1 day ago   3 comments top 2
drallison 21 hours ago 1 reply      
The ACM published algorithms in ALGOL in the Communications of the ACM beginning in the 1970's and continuing on from there until the feature moved to theACM Transactions on Mathematical Software. Programs intended for the Burroughs 5000 and 6000 series machines were mostly written in ALGOL 60, as was the operating system. The Computer History Museum has been collecting programs for historical purposes. See, for example, http://www.softwarepreservation.org/projects/ALGOL/source/nu....
dalke 1 day ago 0 replies      
Here's "An ALGOL 60 compiler in ALGOL 60 : text of the MC-compiler for the EL-X8" http://oai.cwi.nl/oai/asset/13069/13069A.pdf (starting at page 29 in the PDF), with context at https://repository.cwi.nl/noauth/search/fullrecord.php?publn... .
Ask HN: What happens to the founders of startups that fail?
9 points by cgoodmac  1 day ago   18 comments top 7
nostrademons 1 day ago 2 replies      
After my first startup, I got a job at Google. After my second startup, I just founded another startup.

Part of becoming an entrepreneur - probably the most important part of becoming an entrepreneur - is realizing that the rules are just guidelines. People will give you all sorts of career advice - "never leave a job without another one lined up", "make sure you get a good raise every time you switch jobs", "don't call yourself a programmer" - but they're just telling you what worked for them, and in some cases it didn't even work for them. The guiding principle you should follow is "I'll deliver things of value to other people, and in return, I'll ask for things of value to myself."

beatpanda 1 day ago 0 replies      
They go to a farm upstate. They're real happy there, with lots of room to run around.
minimaxir 1 day ago 4 replies      
They write melodramatic postmortems on Medium which fail to identify why exactly their startup failed.

Afterward, they either a) do another startup or b) join an established company, depending on how jaded they are from the experience.

dalerus 1 day ago 0 replies      
I went and worked full time at a company. Spent time with my family and enjoyed the fact that every two weeks a paycheck would be in my bank account.

After that, I started another company.

kluck 1 day ago 0 replies      
They try to justify their next startup by claiming to have identified the reasons why their previous startup failed. (irony)

Actually if they learnt something, they did not fail. Their startup just ceased to exist.

PaulHoule 1 day ago 1 reply      
Ever wonder where the homeless people in SF come from?
informatimago 1 day ago 0 replies      
This is what happens to them:



Ask HN: Good JavaScript codebases to read?
8 points by joshux  1 day ago   5 comments top 4
thorin 1 day ago 0 replies      
Derek recommends Backbone and Underscore - at least they can be found nicely annotated here:




panorama 1 day ago 0 replies      
I'd personally love to see a frontend-heavy codebase that is using relatively new tooling (for example, ES2015 with Babel, React on a significant scale, etc.) if anyone would like to share :).
bzalasky 1 day ago 0 replies      
I'd start with the repos for the libraries/framework(s) you've been using lately. Or for something a little different, take a look at Babel's codebase (https://github.com/babel/babel).
bigtunacan 1 day ago 1 reply      
While it might bring a few boos or hisses these days, there are a lot of lessons to be learned from reading the jQuery code base.
       cached 18 July 2015 12:05:04 GMT