LIGO and Virgo announce the detection of a black hole binary merger - <AUTHOR> https://www.ligo.caltech.edu/news/ligo20171115 <comment><USER2> > Dubbed GW170608, the latest discovery was produced by the merger of two > relatively light black holes, 7 and 12 times the mass of the sun, at a > distance of about a billion light-years from Earth. The merger left behind a > final black hole 18 times the mass of the sun, meaning that energy > equivalent to about 1 solar mass was emitted as gravitational waves during > the collision.

I wonder if one would experience any macroscopic effects from the gravitational waves if one were close enough to the black holes during the merger. Or would one have to be so close that tidal effects from the black holes' gravity would mask any of those effects?

I ask because one solar mass worth of energy sounds like ... a lot. At least to me as an astronomical layperson.

<comment><USER3> Apparently from 1 AU you might just be able to _hear_ it! Even that close the stretching and squishing would be on the order of micrometers but the eardrum might be able to pick it up. The frequency would be comfortably in the audible range as well. [1]

[1] [https://www.reddit.com/r/askscience/comments/45n0sz/how_clos...](https://www.reddit.com/r/askscience/comments/45n0sz/how_close_to_gw150914_the_black_hole_merger_would/)

<comment><USER2> Huh. IIRC, black hole mergers are also a likely source of short gamma ray bursts. So I suspect at 1 AU, one would need a lot of shielding to not get fried by the gamma rays.

EDIT: What I meant to say was: It would probably be quite awesome to experience such an event up close, provided it is possible to do so safely. ;-)

<comment><USER4> I believe that black hole mergers are dark in the entire electromagnetic (EM) spectrum. This is why the recent binary neutron star merger was so groundbreaking -- it emitted both gravitational waves and a broad spectrum of EM waves.

Indeed, though, it would be awesome to witness the collision and resulting gwaves personally, if such a thing was possible :)

<comment><USER5> That's assuming they are "naked" and not surrounded by rotating disks of gas and dust.

<comment><USER4> AFAIK, only supermassive black holes at the center of galaxies have disks of material that is falling inward (and emitting significant amounts of light in the process). Even then, they only actively feed in that way for a short period of time -- I think something like 10k years.

All of the LIGO observations have been of more basic stellar mass black holes merging together.

<comment><USER6> > AFAIK, only supermassive black holes at the center of galaxies have disks of > material that is falling inward

Stellar binaries are extremely common, and there is a reasonably large supply of binarys where one star has become a compact object. Their companion stars often drop lots of matter onto them, resulting in a reasonable supply of black holes. Diskoseismologists and others working on Swift have catalogued hundreds of stellar mass black hole accretion disks.

Examples from Swift:

[http://adsabs.harvard.edu/abs/2013ApJ...769...16R](http://adsabs.harvard.edu/abs/2013ApJ...769...16R) [https://arxiv.org/abs/1112.2249](https://arxiv.org/abs/1112.2249) (preprint version)

Swift also spotted ASASSN-14li which was a star being shredded by an SMBH and forming an early accretion structure. The event has been followed up by other observatories (notably Chandra and the European very long baseline interferometry network). ASASSN-14li is an easy google search term (the trick is knowing the term in the first place :-) ), hopefully you will enjoy some of the hits. :-)

<comment><USER4> Ah, interesting. That makes a lot of sense. Would it be correct to say that if both objects in a binary pair are SMBHs, they would very likely not have an accretion disk, as the companion would be unable to send over any material?

<comment><USER6> > if both objects in a binary pair are SMBHs, they would very likely not have > an accretion disk, as the companion would be unable to send over any > material

BH's don't let what's in the horizon out unless outside is verrrrrrrrrrrry cold (the universe will have to keep expanding for a long tine before it's cold enough for even isolated stellar-mass BHs to lose net mass to evaporation) or the BH is very small.

On the other hand, SMBHs will typically be found in galactic centres, where there is a lot of dust and gas.

So each of the mutually orbiting SMBHs may well have a substantial accretion disk. They may interact, or they might not (the disks might not be in the same plane, for instance).

Given the number of intensely active galactic nuclei we see in the sky, I don't think it's terribly unlikely for a central black hole to have an enormous accretion disk.

However, the Milky Way doesn't have an active galactic nucleus the central parsec is relatively quiet. The dense object in the central parsec is also pretty low-mass compared to that in many galaxies. [https://www- xray.ast.cam.ac.uk/xray_introduction/AGN_intro.h...](https://www- xray.ast.cam.ac.uk/xray_introduction/AGN_intro.html)

<comment><USER4> Hmmm. I wouldn't have guessed that! I suppose it does make sense that SMBHs in galactic centers could have relatively significant accretion disks. Thanks for the informative response.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Six black hole merges observed in ~2 years! That's quite interesting. More observations will make for some useful statistical study.

I wonder if this would give us any insights w.r.t. matter and its distribution across the Universe, and/or help us better understand/estimate dark matter/energy.

<comment> T-A Dark matter, quite possibly:

[https://astrobites.org/2017/08/31/could-dark-matter-be- black...](https://astrobites.org/2017/08/31/could-dark-matter-be-black-holes/)

[http://aasnova.org/2017/09/27/can-ligo-find-the-missing- dark...](http://aasnova.org/2017/09/27/can-ligo-find-the-missing-dark-matter/)

<comment><USER8> [http://resonaances.blogspot.com/2016/06/black-hole-dark- matt...](http://resonaances.blogspot.com/2016/06/black-hole-dark-matter.html)

[http://4.bp.blogspot.com/-jnY74NBc7ic/V2UcuCswL-I/AAAAAAAAB7...](http://4.bp.blogspot.com/-jnY74NBc7ic/V2UcuCswL-I/AAAAAAAAB78/vWC7nOxV53ALFy5YiXQRYrYxP631PrJDgCK4B/s1600/blackholedarkmatterconstraints.png)

The odds are still very low on MACHO's as a source of most dark matter.

</comment></comment></comment><comment><USER9> A 1 kg block of plutonium 12,000km away has ~5 orders of magnitude stronger gravitational field than a solar mass at 1 billion light years.

Presumably a sudden mass-energy conversion of said kilogram would generate a sharp gravitational wave. Assuming someone went back through LIGOs algorithms to fine tune them for such a detection, doesn't it seem plausible that it would be able to do so? And presumably even locate it?

<comment><USER10> Only a small percentage of the plutonium's mass gets converted to energy during fission.

<comment><USER9> Indeed, this site says it's about 46g per megaton: [http://www.jick.net/hr/skept/EMC2/node4.html](http://www.jick.net/hr/skept/EMC2/node4.html)

Still, 1kg has a field strength that's 5 orders of magnitude greater than a solar mass a billion light years away...10mg would be in the neighborhood.

If i didn't screw up the math, that's ridiculous.

</comment></comment></comment><comment><USER11> > ...meaning that energy equivalent to about 1 solar mass was emitted as > gravitational waves during the collision.

Damn. That's something like 179 100 000 000 000 000 000 000 000 000 000 000 000 000 000 000 J

That's an insane amount of energy. It's equivalent to what you would get if you converted the entire mass of the sun into pure energy.

<comment><USER12> Well, yea - that's what they mean when they say "1 solar mass".

<comment><USER11> You and I might know that but not everyone has studied physics.

</comment></comment></comment><comment><USER13> One question I've had about gravitational wave detections that I haven't yet been able to find an answer to is what is the mechanism by which the mass of an orbiting black hole pair converts its mass into a gravitational wave? Presumably the mass of the black holes is comprised of matter (in whatever form that may be) and kinetic energy. Is the gravitational wave energy while the two objects orbit purely a conversion of kinetic energy to gravitational wave energy or is some of the mass lost too? What about when they finally collide? If in this case 1 solar mass of matter was converted into gravitational energy then by what process?

<comment><USER14> When an apple falls to the earth, by what process is its potential energy converted to kinetic energy? Gravitational processes alone.

Apple-earth collisions primarily radiate apple sauce, black hole mergers primarily radiate in gravitational energy.

Minor nit: In general relativity black holes are not actually comprised of matter---they're entirely warping of spacetime. Whether that remains true in a quantum theory of gravity is unknown.

<comment><USER13> None of this actually answers the question. The question is by what process does energy in the binary black hole system get converted into gravitational wave energy?

<comment><USER14> The answer is "by the processes of general relativity". When things fall "down" their potential energy is lowered, so they get faster. When mass-energy accelerates it emits gravitational waves, in much the same way when an electron accelerates it emits electromagnetic waves. If you're satisfied that a radio works by sloshing electrons around, you should be satisfied that a black hole merger emits radiation by sloshing mass around.

Where did the photons "come from"? Well, they weren't stored "inside" the electrons. By what process were the photons generated? Electrons accelerating radiate. That's essentially the answer. You can "math it up" if you want. It's not exactly an axiom, but it's pretty close to the bottom.

<comment><USER14> Maybe I should be more clear: at least in the generally relativistic conception of gravity, all of the mass of the black hole "comes from" the warping of spacetime already. That's why I keep dancing around the question of whether it's "really" the kinetic energy or the mass or a mix that gets converted---it's hard to distinguish and may not be meaningful to distinguish the pieces from one another, especially if I go to a co-rotating frame.

<comment><USER15> > all of the mass of the black hole "comes from" the warping of spacetime > already

No, it's the other way around. The warping is due to the mass

But the other answer hinted at the source: accelerating mass turns into gravitational waves as an accelerating electron turns into EM waves (remember rotation and things stopping abruptly also means acceleration)

So yeah, it's the potential energy that turns into (less than Newtonian amounts of) kinetic energy because some of it is turning into Gravitational waves

And you can imagine something as big as black holes spinning around each other at a frequency measurable in Hz how much energy they can give in that process then add the sudden merger deceleration.

<comment><USER16> Certainly normal matter (like the earth) has mass and warps spacetime. But a black hole is a purely gravitational object, there need not be any normal matter involved.

The mass of a black hole is something that's really only defined from a distance away. If a planet of 1 earth-mass orbits it at the same speed & circumference as we do the sun, then we say the black hole has 1 solar mass.

<comment><USER15> > But a black hole is a purely gravitational object, there need not be any > normal matter involved.

There's no "purely gravitational object" it only "looks like that" from behind the event horizon

We know the escape velocity > c and that's pretty much it, for GR it's a singularity (which usually means the theory is incomplete in that circumstance) and we don't know how QM work when squeezed harder than a Neutron star

> The mass of a black hole is something that's really only defined from a > distance away.

If you mean "we can sense the gravitational field of something having mass X at a distance D larger than the event horizon" I agree.

But I'd rather say "we don't know what happens there" instead of "singularity" (which is what the current theories say it's inside and from the point of view of Relativity they're not wrong)

<comment><USER14> > There's no "purely gravitational object" it only "looks like that" from > behind the event horizon

It depends on what framework you're working in. If you're working in general relativity, there's a singularity and absolutely nothing else---no matter at all. If you're talking about the "real world" you can ask: Is GR reliable for these situations, especially in light of quantum-gravitational puzzles? I think you agree that we don't know the answer. But we can say what the GR answers are.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Posting this whenever there's a new detection! Dr Roy Williams who's part of the LIGO team has put the notebooks used for analyzing the data online for anyone to check out & run:

[https://notebooks.azure.com/roywilliams/libraries/LIGOOpenSc...](https://notebooks.azure.com/roywilliams/libraries/LIGOOpenScienceCenter)

Click Clone to get your own copy, then edit/run/etc.

</comment><comment><USER15> Interesting

This was a couple of days days before Virgo got online AND one of the Ligo detectors was undergoing a noise modelling test (its mirrors were being vibrated at the time)

<comment><USER18> So no second opinions then, it could just as well be noise?

<comment><USER19> No, because the noise modeling test in the second LIGO detector (LIGO Hanford) was being wobbled at a very different frequency to that of the gravitational wave they were able to filter out the test motion and were still able to detect the merger.</comment></comment></comment>


Osama bin Laden came within minutes of killing Bill Clinton - <AUTHOR> http://www.telegraph.co.uk/news/worldnews/asia/philippines/6867331/Osama-bin-Laden-came-within-minutes-of-killing-Bill-Clinton.html <comment><USER2> (2009). That explains the statement that Hillary Clinton _said earlier this month that it was important to capture bin Laden_.</comment>


Ask HN:  What's the best first business book for a programmer? - <AUTHOR> I'm a programmer and I don't know much about business but I'd like to start my own venture.  What are some good resources (books, websites, etc.) for learning the basics of business? <comment><USER2> "Founders At Work" by Jessica Livingston

[1] [http://www.amazon.com/Founders-Work-Stories-Startups- Early/d...](http://www.amazon.com/Founders-Work-Stories-Startups- Early/dp/1590597141) [2] <http://en.wikipedia.org/wiki/Jessica_Livingston>

<comment><AUTHOR> Thank you. I have that one already and it's top-notch.

</comment></comment><comment><USER3> The E-Myth (the E stands for Entrepreneur): [http://www.amazon.com/E-Myth- Revisited-Small-Businesses-Abou...](http://www.amazon.com/E-Myth-Revisited- Small-Businesses- About/dp/0887307280/ref=sr_1_1?ie=UTF8&s=books&qid=1258509013&sr=8-1)

Derek Sivers has a good collection of his notes (and many other biz-centric books) here: <http://sivers.org/book/EMythRevisited>

His opening line nails it: "Everything needs to be a system. Think of your business as a franchise prototype. You should be able to hand the "how-to" manual to just anyone, to do it as good as you."

<comment><USER4> > The E-Myth (the E stands for Entrepreneur): [http://www.amazon.com/E-Myth- > Revisited-Small-Businesses-Abou...](http://www.amazon.com/E-Myth-Revisited- > Small-Businesses-Abou..).

A thousand times yes. I make everyone I'm going to work with read it before working with them. It really gets to the heart of what businesses do right and wrong, and how to build an organization correctly based on systems instead of based on personality. Very important.

<comment><USER5> Absolutely yes. Really makes a huge difference to think about things in the Entrepreneur/Technician/Manager frame, and things make a lot more sense.

</comment></comment></comment><comment><USER6> I really think you might be best to start off with something like 'Small business kit for dummies' - not because I think you're a dummy, but because you say you don't know much about business. Instead of books about motivation, leadership, negotiation and so on, you probably need something more down to earth - what your legal options and obligations are, basic accounting and economics, contracts and ownership of intellectual property, and so forth.

Not to say the other things aren't valuable or important, but it's often the seemingly obvious stuff that can end up causing you expensive headaches. The Small business Administration (www.sba.gov) is not that focused towards startups (because on a national scale, a 'small business' is anything with < 500 employees) but they do have all sorts of handy information on their website, and it's all free.

</comment><comment><USER7> I would go for 4 steps to the epiphany, it gives you practical steps to follow to avoid that process of sitting down as a programmer and deciding magically what everyone wants. (then being dissapointed when you spend x time coding it and finding out they dont)

</comment><comment><USER8> Three of my favorites are _How Much Should I Charge_ Don't remember the author, but she reinforces the point that most small businesses are undercharging for their product/service _and_ shows how to solve the problem.

 _The E-Myth Revisited_ kinda starts where the above one ends in that it points out the tragic flaw in many entrepreneurs: they want to practice their "craft" to the detriment of the actual business.

 _Growing A Business_ my copy of this disappeared over 10 years ago, but I still consider it one of the most important business books I've ever read.

And pick up one of the many editions of _The Portable MBA_ at a used bookstore. Good, basic foundations in Finance, Accounting, Marketing and HR.

</comment><comment><USER9> Getting to Yes: Negotiating Agreement Without Giving In ISBN-10: 0140157352 ISBN-13: 978-0140157352

<comment><USER10> And when you are ready for something more in depth but also research-based, go with The Mind and Heart of the Negotiator: [http://www.amazon.com/Mind-Heart- Negotiator-Leigh-Thompson/d...](http://www.amazon.com/Mind-Heart-Negotiator- Leigh-Thompson/dp/0131407384)

 _Getting to Yes_ and _Mind and Heart_ were the two required texts for a class I had on negotiation. Both are excellent books.

</comment></comment><comment><USER11> Jeff Bezos once said his favorite business book is Built to Last ([http://www.amazon.com/Built-Last-Successful-Visionary- Compan...](http://www.amazon.com/Built-Last-Successful-Visionary- Companies/dp/0060566108/)). You can still hear him use language from that book in recent interviews.

</comment><comment><USER12> Nobody mentioned 'How to Get Rich' by Felix Dennis yet? It is an absolute must!

</comment><comment><USER13> I'd recommend "Crossing the Chasm" by Geoffrey A. Moore. It almost perfectly describes the lifecycle and challenges faced by the two software-product-based startups that I've worked for.

<comment><USER14> +1 The examples are a bit dated but this book still nails it!

</comment></comment><comment><USER15> If you are a philosophy person like me, this one is for you:

Classic Drucker: Wisdom from Peter Drucker from the Pages of Harvard Business Review.

It shows you what and how a pioneer in the field of business thinks of business itself. Learn from his thinking and learning pattern. They are just like common sense for business (like DStruc and Algo in programming).

</comment><comment><USER16> I haven't read all of it yet, but so far Peter Drucker's "Innovation and Entrepreneurship" is an excellent read.

It talks about how to think differently, to turn situations to your advantage -- beneficially refactoring your views.

It's not really a starter kit, but I don't think I'd want to operate a business without having read it.

</comment><comment><USER17> [http://www.amazon.com/Buffett-American-Capitalist-Roger- Lowe...](http://www.amazon.com/Buffett-American-Capitalist-Roger- Lowenstein/dp/0385484917)

This is the best business book I've ever read. Buffett is methodical, implacable, and brilliant -- but too smart to overthink anything.

The nice thing about Buffett is that being a little more like him will make you a little more money (unlike emulating, e.g., Gates -- if you want to be like Gates, you have to be _completely_ ruthless and smart; 90% won't do.)

</comment><comment><USER18> What kind of business are you interested in?

If internet/tech... read TechCrunch and Mashable. Watch "This Week in Startups" by Jason Calacanis.

Watch some picthes from TC50. (Click the logos to see their pitch): <http://www.techcrunch50.com/2009/>

Business Week and Money magazines are decent, but less tech related.

That said, you'll still learn the most by experience. That is, trying things, making mistakes, and learning from them. There is a learning curve involved, but if you have the determination you'll be fine.

Good Luck

<comment><USER19> I second this. In addition, +1 for Eric Sink.

Also check out "The Knack" by Norm Brodsky and Bo Burlingham.

In the end, though, no book can prepare you for starting up,

</comment></comment><comment><USER20> I'm going to go ahead and recommend "4 Hour work week" by Tim Ferris, BUT - you have to take that book with a big grain of salt. Some of the stuff he's talking about is fluff, and he's gotten some fair criticism over it - but he has some invaluable, very practical advice on automation of certain areas of a business, passive income streams, etc. Personally, I found it very helpful in moving from "full time job, but want to start my own business" stage to geting there and doing it full time.

</comment><comment><USER5> Great question.

Firstly, the more I've gotten involved in business over the years, the more I've come to realise that for any kind of sale requiring human contact, personal relationships are absolutely paramount.

This is fairly straightforward, but it bears repeating. People will buy from people who they like. In a situation where a customer can choose between Vendor A and Vendor B who have similar products and prices, they will choose the likable Vendor A who is friendly and who they enjoy getting a call from. This is 100 times more powerful than Vendor B who has 3 additional features that are really great, but who has made no attempt to establish any kind of relationship with the customer.

As such, the first book I would recommend would be the classic "How to Win Friends and Influence People" by Dale Carnegie.

Once you've got a handle on that, "Ready, Fire, Aim" by Michael Masterson talks about the value of moving quickly, selling quickly, and figuring out the finer details as you're moving along. This was invaluable for me, since I used to want to have everything pretty much perfect before moving. This was negative because it took a long time to get anything to market, and also because theory rarely survives direct contact with reality - the adjustment period in the first stage of operations is critical to the overall success of the project. This book also has plenty of enjoyable personal stories and business anecdotes that make it very readable.

I second "Made to Stick" as a great study on what makes things popular, and how they become popular.

It's really hard to narrow down more book recommendations actually - I've read hundreds of books over the years on a variety of topics. What I found I needed to do, was continuously seek out good books and learn about topics as they arose.

Generally when it comes to book learning and business, I would recommend this : figure out your basic plan, and get started.

Once you encounter your first problem, seek help (ideally from both a mentor and some books).

For instance, you've built a product, now you want to sell it. You hop on Google Ads and put down $400. You've got a solid click through rate, and 2 weeks later, zero sales.

Time to learn about marketing. Seek out some good marketing books (Your Marketing Sucks is very good), buy them, read them, and ask your mentor about them.

Now you're making some sales, and a Sales guy approaches you. He bought your product, and he likes it. He's interested to become your salesperson. Next you need to find some good books on negotiation (Getting To Yes). Of course, you're also going to need to get some advice from a lawyer or a mentor to ensure that the deal you do is fair and economically sustainable.

Different books will provide all sorts of different benefits and insights depending on the stage of your business and your level of experience. Book selection should be a continual process.

Hope this is helpful and best of luck. Please feel free to contact me if you need anything else.

<comment><AUTHOR> Thank you for taking the time to write this up. It was very helpful!

</comment></comment><comment><USER21> My introduction to the way that businesses work was an "Engineering Economics" course. It is about how accounting works, i.e. "financial accounting" vs. "management accounting", the time value of money, what the numbers on a quarterly report mean, &c. If you find a course syllabus online you can see what topics are covered, and a find textbook.

Also when I was seeking this type of knowledge, I read chapters 2,3,4 of <http://pmbook.ce.cmu.edu/> , which I found by looking at a MIT opencourseware course on project management. The textbook is _about_ construction but the important aspects transfer to anything.

I think the most important thing is to learn the nuts and bolts. When you get comfortable with all that, then you can start to think at a higher level.

</comment><comment><USER22> Made to Stick <http://www.madetostick.com/>

</comment><comment><USER23> Guy Kawasaki's books are pretty ace for learning the 'silicon valley' style of business, big picture, etc. I think the first real book I picked up was something more down to earth though like the Beermat Entrepreneur (UK- specific) that outlined the whole process quite well from what to incorporate as to accounting and sales.

</comment><comment><USER24> <http://www.netmba.com>

</comment><comment><USER25> One more book for the list .....

The Business of Software: What Every Manager, Programmer, and Entrepreneur Must Know to Thrive and Survive in Good Times and Bad

Author: Michael A. Cusumano

ISBN-10: 074321580X ISBN-13: 978-0743215800

</comment><comment><USER26> MicroISV

Anything by Eric Sink

</comment><comment><USER24> <http://personalmba.com/recommended-business-books/>

</comment><comment><USER27> Founders at Work

</comment><comment><USER28> Growing a Business by Paul Hawken

</comment><comment><USER29> "Bootstrap" by Kenneth L. Hess and "The Knack" by Norm Brodsky and Bo Burlingham.

</comment><comment><USER30> Secrets of Consulting - Gerald Weinberg and 48 Rules of Power - Robert Greene

</comment><comment><USER31> Hackers and Painters by Paul Graham ;)

</comment><comment><USER32> Pick up a copy of the tried and true, "How To Win Friends & Influence People". The rest of the fad business books come and go, but this one is a great start to learn how to interact with people when you're trying to sell them on "something".

<comment><USER33> Here is the most important thing about the book. The basic motivation for all people is to feel important, you can influence people by making them feel important.

<comment><USER34> But also hint at your ability to withdraw that confidence in someone if they don't live up to your expectations. Talk up someone's abilities while showing your high hopes in them are conditional on their actions.

</comment></comment></comment><comment><USER35> <http://ycombinator.com/lib.html>

</comment><comment><USER36> Most of the books I read are usually business profiles/bios of founders/companies.

1) iCon Steve Jobs: The Greatest Second Act in the History of Business

2) The Google Story

3) The Perfect Store: Inside eBay

4) Paypal Wars

5) Barbarians at the Gate (not tech-related but one of the best business books of all time)

<comment><USER37> You might also like "The Qualcomm Equation" by Dave Mock. It is the story of a few engineers in San Diego who got together and used CDMA to transform the industry.</comment></comment>


Darwinian selection continues to influence human evolution - <AUTHOR> http://www.sciencedaily.com/releases/2012/04/120430152037.htm <comment><USER2> What I found most surprising was learning that controversy surrounds the assertion that we are still evolving! The alternative hypothesis -- that technological and social _innovation_ have arrested genetic evolution -- seems fantastical to me. The sun does not revolve around the earth; evolution does not bow to mankind.

<comment><USER3> Think of all the people you know who couldn't function without glasses or medication, and imagine a world where they all died. Evolution does not bow to mankind, but we've thrown sand in the gears for sure.

<comment><USER2> It's like squeezing a balloon. We haven't alleviated the pressure of evolution, we've only shifted it. While science and medicine have ameliorated many of our biological weaknesses -- genetic or sporadic -- other cues have taken there place. What is (temporally) being selected for is a more interesting question.

<comment><USER3> Evolution can be increased or decreased easily. Natural selection is a result of death. More death means more natural selection, and less death means less natural selection. We've reduced death tremendously, and hence reduced natural selection.

 _Sexual_ selection is quite a different animal, but we can't take as a given that sexual selection increases as natural selection decreases. It might; I just don't know any reason that it would. And there are reasons that even sexual selection would diminish--for various reasons, I don't think anyone today could have nearly as many children as Genghis Khan did.

<comment><USER4> No, natural selection is a result of differences in reproductive success. We've lowered death, but does that somehow ensue that everyone has exactly the same number of surviving grandchildren? 30% of german women never reproduce. Among female graduates, the figure is 40%. From an evolutionary standpoint, they might as well never have lived.

<comment><USER5> _From an evolutionary standpoint, they might as well never have lived_

There is the distinct possibility that they affected the chance for others to reproduce or survive. So you are right about their individual evolution, but they were likely part of group or species evolution.

In bees and other hive insects this effect is most pronounced, as there are only only a few individuals in the hive that _can_ reproduce. But with only them, the hive would die out, so the rest is useful from an evolutionary standpoint.

</comment></comment></comment></comment></comment></comment><comment><USER6> Reprinted from a news release at [http://www.shef.ac.uk/mediacentre/2012/darwin-evolution- natu...](http://www.shef.ac.uk/mediacentre/2012/darwin-evolution-natural- selection-lummaa-courtiol.html), but still no actual data.

It would be nice to know what current selection effects actually are; otherwise, it seems like kind of a "well, duh" announcement. After all, everyone knows that some people still have more grandkids than other people do.

</comment><comment><USER7> I'm surprised this is considered news and that it made the front page. Of course natural selection is still at work. Anyone who finds that surprising doesn't really understand evolution theory.

</comment><comment><USER8> In other news, gravity continues to work, but geometry takes a tumble when a regular polygon is discovered that has four and a half sides...

<comment><USER9> You stole the snark right out of my comment :)

<comment><USER8> "Just the place for a Snark!" the Bellman cried, As he landed his crew with care;

Supporting each man on the top of the tide By a finger entwined in his hair.

"Just the place for a Snark! I have said it twice: That alone should encourage the crew.

Just the place for a Snark! I have said it thrice: What i tell you three times is true."</comment></comment></comment>


How I accidentally got into someone else's gmail account - <AUTHOR> http://warambil.wordpress.com/2012/07/19/how-i-accidentally-got-into-someone-elses-gmail-account/

<comment><USER2> It still makes absolutely no sense to me why security questions are used. They're effectively a second alternative password to access your account -- a "password" that's really really easy to guess (especially if you know who the account belongs to).

You might as well just replace "username and password" with "enter your username and what's your favorite food?" or "enter your username and where'd you grow up as a child?"

Pretty secure, huh?

<comment><USER3> I agree. I put random garbage in the security question answers, a password so hard to crack that even I never remember it. ;) In other words, I opt out whenever I get the chance.

<comment><USER4> Some sites use those as surprise 2-step verification. Your method would be very painful in that case!

<comment><USER3> It is. :( I have few accounts on the net, so I have rarely run into this except on sites I do not care much about. However, I understand others differ in habit. It is hard enough to remember one password per account.

<comment><USER5> I just use random gibberish for all passwords and security answers and store all of that in a password database with a notes field.

The classic security questions are bizarre because of the premise that any person (family or otherwise) who happens to know a bit about you has your complete trust.

<comment><USER4> Sounds like a valuable database...

</comment></comment></comment></comment></comment></comment><comment><USER6> Wow, the author of this article should be the poster child for wh Google's 2 factor should be de rigeur for anyone who actually cares about the contents of their email.

</comment><comment><USER7> This guy remembered so little that I wonder if it really was his account to start with and he just couldn't remember receiving all those previous emails he found.</comment>


Show HN: MockREST – REST APIs from JSON Text - <AUTHOR> http://mockrest.com/ <comment><USER2> It's not a REST API if it does not enforce a Hypermedia format. Plain JSON has never and will never be a REST API. It's called an Ad-Hoc API with your own made up rules.

</comment><comment><USER3> I wouldn't necessarily call it a REST api but it's definitely useful for some quick testing. I've got a few notes:

\- Could you clarify the difference between update and refresh \- GET, POST, PUT and DELETE are industry standard terms but it's always good to clarify what these operations will do anyways in the docs. \- Need docs \- What about multimedia?

I get that it might be an MVP but still worth considering the above. Well done overall and I've bookmarked it!</comment>


Ask HN: Laser eye vision correction? - <AUTHOR>

I've been considering doing PRK laser eye surgery but haven't found much data on the risks and outcomes. Was wondering if any hackers have had this procedure, researched it, or hacked any meaningful data on its worthiness. <comment><USER2> I researched this for myself a couple of years back and found a couple of things but only speak from my personal account: 1\. There are a couple of different options, the first being done completely without surgery, and the second where they cut the lens and 'flap it up' (literally) and then do the laser surgery. Obviously, the second option is more complex and as a result can result in more problems. 2\. A lot will depend on how thick your lens is. I was looking at it and they said that as I had a thin lens, it drastically changed my options. It also raised the risk as they only had one chance (if you have a think lens, they can do follow-up laser surgery to fix mistakes - no such luck with me). It must be said, that overall the chances of anything going wrong are less than 1% or something insignificant and in most cases you will just have the same or slightly worse vision. I just wasn't willing to take the risk given I had no chance for fixing it if they went wrong. Sorry it's not data - just my personal experience a couple of years back.

<comment><AUTHOR> Surgery without surgery? Whats that? The second option I believe is standard LASIK. Since I do sports, I'd be at risk of having a flap dislodged, so I have to do PRK, where they remove the cornea by brush and the cells regenerate on their own.

<comment><USER3> "Surgery without surgery?" That's PRK(Photorefractive Keratectomy) that the OP mentioned. I had PRK about 8 or 10 years ago and am very happy with the results. PRK is the older technology where they just laser the surface of your eye rather than cutting a flap and peeling it up before lasering. The risk are the same but different. That is to say, roughly the same (low, <2% if memory serves) chance of making your vision worse but with PRK it'll be caused by infection/poor healing of the epithelium, while with LASIK it'll be caused by complications due to cutting the flap. LASIK is(or at least was) more dependent on doctor skill/mistakes, while PRK is pretty much all computerized and juste depends on your cleanliness and immune system. The other big difference is healing. With LASIK it's zap, done, perfect vision, drive home and enjoy...just don't get poked in the eye for a couple months. With PRK it's zap, hay I can kinda see, have someone drive you home while the pain kilers wear off, oh god it hurts, I can't see anything, lay on the couch crying for 3 days, and then watch your vision get slowly better over the next month or so till eventually it's perfect. That's why LASIK is considered an improvement, because burning the skin off your eyes isn't a lot of fun(think onions under your eyes), and it takes about 3 days to grow back and another month to heal to the healthy smooth state required for 20/20 vision. Still it was worth it. Personally I chose PRK because I was doing MMA at the time so LASIK would have required taking 3 to 6 months off training to make sure I didn't damage the flap, whereas PRK on a friday let me continue training next week. Think I had to take monday off work 'cause I was still in pain, but by Tuesday I was OK. Driving was a bit hairy for a month or so. OK during the day but at night when your pupils dilate I'd have quadruple vision and major star-bursting from headlights, but not so bad I couldn't drive, but kinda freaky. After about 4 or 5 weeks that all faded and I had 20/15 vision. Totally worth it.

</comment></comment></comment><comment><USER4> Just a personal experience: I had LASIK 15 years ago (the flap one). This was the best decision I made. I haven't needed glasses since then.

Initially, I faced dry eyes after the surgery for about six months and I still have high tendency to get dry eyes and red eyes in drier climates. During driving at night, I did experience halo around the lights but got used to it soon. Doctor most probably will advise you to lay-off swimming and sports for a few weeks/months after the surgery.

Make sure you get the detailed eye mapping done before the LASIK surgery. In the future, if you need cataract surgery and artificial lens in the eye, the eye mapping before the LASIK surgery will help accurately determine the power of artificial lens that need to be installed in your eye.

Also, just because you had LASIK surgery, it doesn't mean that you no longer at higher risk of eye related issues (example: retina detachment) that people with glasses/contact lens have.

<comment><AUTHOR> What was the strength of your eye prescription before that?

<comment><USER4> I don't remember exactly but it was pretty high myopia. I think -6 to -9 range.

</comment></comment></comment><comment><USER5> I have been researching / follow vision correction surgery for a long time; however I never took the plunge as the contact lenses kept getting better and better every year.Now they can be worn for a week. Remember surgery is irreversible. Good Luck to you !</comment>


Can I name my company after a computer science algorithm? Like YC - <AUTHOR> How YCombinator did this? Does anything in the law prevent it? Do you have to take permission from the creator of the algorithm? <comment><USER2> Why not? You could name your company after a fruit if you wanted to (as long as there isn't already a company in your industry with that name).

<comment><USER3> Who would name their company after a fruit anyway?

Oh wait, never mind

</comment></comment><comment><USER4> trademark database

[http://tmsearch.uspto.gov](http://tmsearch.uspto.gov)

you should also check the state you live in. Secretary of state usually manages fictitious trade names

checking domain names is a good proxy also. if no one cared to buy xyz.com then they probably didn't trademark it, etc.

</comment><comment><USER5> I believe there is a big difference between Y combinator and Dijkstra. In the former case, it could be harder.

<comment><AUTHOR> Can you elaborate more on this? It is harder to name?

<comment><USER6> I think the issue is using a generically named algorithm name versus using a persons name that the algorithm is named after could be a different story. In the example, Dijkstra is a surname, ycombinator is essentially just a made up name. So it could be conceivable that the estate or a living person could take issue (legal action) with you using their name. If I really wanted that name, I'd check with an attorney and probably get a release from the estate or living person to utilize their name in my company name, just to avoid any issues.

</comment></comment></comment><comment><USER7> Yes but I think it would then be harder to trademark. .

<comment><USER8> Trademarks can be industry specific. One could trademark a fruit or algorithm name in the context of a company.</comment></comment>


Are WhatsApp and Instagram down at the moment? - <AUTHOR> <comment><USER2> Yeah, partially at least, see [https://downdetector.com/status/facebook](https://downdetector.com/status/facebook)</comment>


Impedance mismatch with CouchDB - <AUTHOR> http://brehaut.net/blog/2010/couch_impedance

<comment><USER2> Arc90's "Readability" to the rescue, it seems.

Seriously, who in the world thought that site's color scheme was reasonable?

<comment><AUTHOR> On Windows, Mac, or Linux? I don't find it too bad, but I suspect it's one of those color schemes that is greatly monitor/OS/color-calibration sensitive.

<comment><USER3> I disagree. For any form of long-form text, black on white or black on grey is generally the best way to go. Focus on the writing, not the color scheme.

</comment></comment></comment><comment><USER4> Some good points in here about the tradeoffs you make with Couch. One I didn't quite understand:

"For instance I cannot have a view that filters out fragments that have publish dates in the future."

Isn't this as simple as ?startkey=0&endkey=[now] ?

<comment><USER5> That requires date information to be in the keys of all the views. Some of my views are not chronologically keyed, but i would still like them to have items that i intend to have be published in the future not accessible. I would like to avoid that sort of accidental complexity.

The other issue is that it splits the 'is this a visible fragment' logic across the db and application code boundary. I now have to ensure that all the appropriate checks are in place in two layers rather than one.

<comment><USER6> isn't this the kind of thing that filtered replication is designed to handle?

<comment><USER5> I've not looked into that at all. Thanks for the pointer

</comment></comment></comment></comment><comment><USER7> "Views only operate on the original pool of documents, and are not able to be a view of views."

The inability to chain map/reduce calls is the biggest thing holding CouchDB back, particularly w.r.t. CouchApps that don't have the luxury of an easy workaround. There is a bug <https://issues.apache.org/jira/browse/COUCHDB-249> however no progress has been made recently.

By allowing views on the output of other views, more "normalized" document structures could exist that would still be transformable into useful outputs.

<comment><USER8> Cloudant has a very cool couchdb fork that uses a dynamo style k/v layer that then uses couchdb as its storage engine. They implement chained map/reduce with the caveats that A) the chained m/r is generated async, so it is always out of data a bit and B) I never got it working in their hosted product. I checked them out for the chained M/R but was really wowed by the scale out capable with their system. The dynamo layer takes care of sharding, migrating shards, re-reducing parallel queries etc.

</comment></comment><comment><USER9> "On the up side, you don't ever have to manage indexes; Couch is smart enough to determine these for you." and "In place of the familiar queries, Couch supports the definition of Views."

Views aren't really synonymous with queries; they're conceptually closer to indexes: They rearrange the data in such a way that allows certain types of queries to be fast.

So in reality, you are forced to manage your indexes (views) in CouchDB.

</comment><comment><USER10> Red text on yellow background. I wish HN had a downvote button.</comment>


Atomo (programming language): giant 0.4 release - <AUTHOR> http://atomo-lang.org/notes/0.4

<comment><AUTHOR> The link is to the release notes, which has the documentation embedded - <USER2> Getting Started at the right if you've never heard of Atomo (which is very likely).</comment>


A Celery-like Python Task Queue in 55 Lines of Code - <AUTHOR> http://www.jeffknupp.com/blog/2014/02/11/a-celerylike-python-task-queue-in-55-lines-of-code/ <comment><USER2> For an alternative, check out RQ: [http://python-rq.org/](http://python- rq.org/)

We use it in production and it's been rock-solid. The documentation is sparse but the source is easy to follow.

<comment><USER3> It's great but as far as i can remember doesn't support P3. Also, it'd be nice to use it with Mongo instead of Redis.

<comment><USER4> Actually Py3-support landed 6 months ago [https://github.com/nvie/rq/pull/239](https://github.com/nvie/rq/pull/239)

</comment></comment></comment><comment><USER5> I'd recommend looking at alternative serialization formats. Pickle is a security risk that programmers writing distributed systems in Python should be educated about.

<comment><USER6> I understand the risk is basically because you're evaling when unpickling. What formats are safe then?

<comment><USER7> Pickle doesn't really use eval, but there is still the potential for users to execute arbitrary code[1]. JSON, YAML, MessagePack, etc are safe in this respect (assuming a well-implemented parsing library) because all the parser does is convert the data into simple data structures.

[1] [http://lincolnloop.com/blog/playing-pickle- security/](http://lincolnloop.com/blog/playing-pickle-security/)

<comment><USER6> I was just using eval loosely. The eval I particularly meant is that an __init__ is run for classes with a .__getinitargs__ method defined [1]. And I guess json et al. is the reasonable answer I should have expected. I was hoping for something that mimicked the functionality of pickle but maybe signed the information so that it would be safe to use across a network.

[http://docs.python.org/2/library/pickle.html#object.__getini...](http://docs.python.org/2/library/pickle.html#object.__getinitargs__)

</comment></comment></comment></comment><comment><USER8>
        Having a way to pickle code objects and their dependencies is a huge win,
        and I'm angry I hadn't heard of PiCloud earlier.

That's a nice use of the cloud library, without using the PiCloud service. Unfortunately, the PiCloud service itself is shutting down on February 25th (or thereabouts).

<comment><AUTHOR> Ah, I'm sorry to hear that. Hopefully, they make their library code more readily available before closing their doors.

<comment><USER9> Looks like the PiCloud team is joining dropbox but according to their blog post "The PiCloud Platform will continue as an open source project operated by an independent service, Multyvac ([http://www.multyvac.com/](http://www.multyvac.com/))."

Source: [http://blog.picloud.com/2013/11/17/picloud-has-joined- dropbo...](http://blog.picloud.com/2013/11/17/picloud-has-joined-dropbox/)

<comment><USER8> Yes, the Multyvac launch has been delayed until February 19.

They are supporting much of the PiCloud functionality, but not function publishing, which I used quite a lot. (That was a way you could "publish" a function to PiCloud, and then call it from a RESTful interface. It was a nice way to decouple my computational code from my website, which has very different dependencies.)

I fear it is more oriented toward the use case of doing long running scientific jobs, rather than short Celery-like jobs. I hope for the best.

</comment></comment></comment></comment><comment><USER10> Although Celery can use it, why is Amazon SQS treated as a second class citizen in python background worker systems?

I've yet to find/see a background worker pool that played nicely (properly) with SQS.

</comment><comment><USER11> Thanks Jeff. As someone else mentioned, I love these little projects that demonstrate the basics of what the big projects actually do. Makes it much easier to understand the big picture.

<comment><USER12> Absolutely. I'm always pleased when documentation includes some pseudocode for what the system generally does, without the overhead of configuration, exceptional control flow, etc. It's not always possible with large systems, but makes it a lot easier to see the forest, not the trees, in even mid-sized code bases.

</comment></comment><comment><USER13> [http://docs.python.org/2/library/multiprocessing.html#sharin...](http://docs.python.org/2/library/multiprocessing.html#sharing- state-between-processes)

Why don't anyone build Celery _and_ Redis alternative using this?

<comment><USER14> Celery uses `billiard`, which is a fork of multiprocessing.

That doesn't help with communicating with a distributed worker pool, though.

</comment></comment><comment><USER15> I scratched an itch in this space to create, in Python, a web hook task queue. I wrote it up here [http://ntorque.com](http://ntorque.com) \-- would love to know if the rationale makes sense...

</comment><comment><USER16> Are there any non-distributed task queues for Python? I need something like this for a tiny web application that just needs a queue for background tasks that is persisted, so tasks can resume in case the application crashes/restarts. Installing Redis or even ZeroMQ seems kind of excessive to me, given that the application runs on a Raspberry Pi and serves maximum 5 users at a time.

<comment><USER17> My suggestion is to just use RabbitMQ. It's written in Erlang, it uses a BerkeleyDB-like backend for message storage. It's non-distributed, "durable", and optionally with persistent and non-persistent messages. It has a web interface to examine messages. Second suggestion is to use JSON for your messaging format, although it's possible for basic tasks to put all the info you need in the headers.

<comment><USER18> I have personally found RabbitMQ one of the most bonkers, overengineered and painful to manage services I've ever dealt with.

</comment></comment></comment><comment><USER19> I like these one-off projects that Jeff is doing, but it would be particularly instructive to see one, or a combination, make it to 'real' status.

<comment><AUTHOR> Checkout sandman: www.sandman.io or www.github.com/jeffknupp/sandman</comment></comment>


Odd Comments and Strange Doings in Unix - <AUTHOR> http://cm.bell-labs.com/cm/cs/who/dmr/odd.html <comment><USER2> It's fun that this talks about an address as "777302". That doesn't look like an address to slightly-more-modern eyes like mine. It's probably octal, where 7 is like 0xf in hex.

So, converting it to hex gives 0x3fec2, which is 318 bytes from the top of the first 256 KB (256 * 1024 is 0x40000), and thus sounds likely as a peripheral I/O address.

<comment><USER3> Yeah, octal was the convention on PDP-11 UNIX(TM). As I recall it wasn't until the move to 32 bit computers like the 68000 and no doubt the VAX preceding it that UNIX moved to hexadecimal.</comment></comment>


10 billion Android Market downloads and counting - <AUTHOR> http://googleblog.blogspot.com/2011/12/10-billion-android-market-downloads-and.html <comment><USER2> I'm dubious about that graph.

It's suspicious that it's a graph of cumulative downloads. Cumulative graphs always go up nicely. But what matters is downloads per month. Someone with good monthly numbers will rarely resort to showing cumulative ones.

It's particularly suspicious the way the number for December, which we're only 6 days into, lines up exactly where it would if they were seeing hyperlinear growth. You'd have to time your post almost to the day to make it look so neat.

I would be very interested to see an ordinary graph (i.e. without graphic tricks to make it steep) of downloads per month. That would show us what's really happening.

I wouldn't be surprised if what that graph showed was linear growth (which is bad, because it means a decreasing growth _rate_ ), followed by a massive spike in December due to a special promotion.

<comment><USER3> It looks like the December bar (yellow) is actually for November if you take each bar as a month (which lines up with the rest of the marked points). The labeling on the graph is wrong (the yellow bar should be slightly below 10 billion and labeled as November). I'd like to see the downloads per month (and especially see the paid downloads per month), but as a marketing tool, I'd bet that 10 billion downloads sounds better than whatever their current downloads a day rate is.

</comment></comment><comment><AUTHOR> Personally, I think the 10-cent sale is _brilliant_. 10 cents motivates you to put in your credit card number if you haven't - and then the difference between 10 cents and 99 cents for other apps later is pretty trivial psychologically.

I wonder if they are compensating these partners beyond the 10 cent price?

<comment><USER4> I fully agree. Apple has externally boasted about how many apple accounts that have associated credit cards. I image they follow this number closely internally. I think Google is now starting to realize the importance of this metric. Google should make getting customers to pay something a priority for every product/division.

<comment><USER5> A much better approach might be to make a deal with the carriers and simply have app store purchases show up on your phone bill. This way they get around the whole credit card problem and the phones come ready to shop right out of the box with the end user having to do anything.

<comment><USER6> The Android Market already does this for some carriers, for example T-Mobile.

<comment><USER7> And Sprint.

</comment></comment></comment></comment></comment><comment><USER8> For a little perspective - the App Store passed 15 billion downloads back in July [1]. Google seems to be catching up.

[1] [https://www.apple.com/pr/library/2011/07/07Apples-App- Store-...](https://www.apple.com/pr/library/2011/07/07Apples-App-Store- Downloads-Top-15-Billion.html)

<comment><USER9> In October they apparently updated this figure to 18 billion at a rate of 1 billion / month.

[http://www.knowyourmobile.com/smartphones/smartphoneapps/New...](http://www.knowyourmobile.com/smartphones/smartphoneapps/News/1079564/18_billion_apps_downloaded_from_the_app_store.html)

</comment></comment><comment><USER10> So... I'm curious to know what app market veterans think of this kind of thing. Are fire sales like these actually helpful for fledgling apps or is it really just a blip of sales and then back to business as usual?

I often lament that Google won't let me temporarily drop my Radar Livepaper app to $0, but perhaps I'd be shooting myself in the foot by doing so.

<comment><USER11> I've been selling for almost 2 years in the Android Market, have had millions of downloads of my free apps, and tens of thousands of paid app sales.

P.S. I have not been invited into this special $0.10 club. I'm guessing because my apps don't scale well for tablets at the moment.

Lowering my price in the Android Market has done nothing for me personally. Running a sale may increase the download rate, but it seems to even out or lose me money in the end. It doesn't increase enough to convince me to leave my apps at a lower price.

HOWEVER, I feel that if I had the opportunity to go all the way down to, say, $0.25, I would get tons of sales.

I probably won't run a sale again. The bottom line is that I make more money when my apps are priced higher even though I sell less copies. So, being that I'm in this as a business, and not a hobby, I have to stick with higher prices.

<comment><USER12> Don't forget that even if you do make more money on the sale, you're also massively increasing your customer base, and therefore your support costs, so any extra money you make must be worth the increased support overhead for it to be a worthwhile tactic.

<comment><USER7> Also potentially massively increasing the world of mouth marketing channel though.

</comment></comment></comment></comment><comment><USER13> I wish you could actually price your apps at $.10

</comment><comment><USER14> Offtopic - Any idea how to make a graph like that (sure doesn't look like Excel!)?

<comment><USER15> you could take that graph out of excel by cut & paste, this makes it WMF format I think on the clipboard? anyway, it is some kind of vector format, and then paste it into illustrator or inkscape or something. i'm sure open office can create clipboard data that is vector.

<comment><USER14> Thanks! I'll try it in Inkscape.

</comment></comment></comment><comment><USER16> why 10 cents? why not make those apps free, for those 10 days?

<comment><USER10> My guess is $0.10 might be cheap enough to motivate people to jump the "pain in the ass" bar that is entering credit card data.

The fact that Apple forces iTunes sign-up before you can use the iPhone gives paid iPhone apps a huge advantage over Android Market apps.

<comment><USER17> And it works... I just updated my Wallet account with my new credit card number. It's been months that I was like "Oh... no I'm not buying that 2$ app... I'm to lazy to update my credit card". And well, now I have 10 new great apps I bought for 1$ ! And ready to buy more.

Damn... I'm being manipulated and actually liking it :-).</comment></comment></comment>


Vancouver uses 2010 Winter Games to promote itself as a Digital Media Hub - <AUTHOR> http://www.techvibes.com/blog/digibc-announces-launch-of-vx-2010-showcase-and-directory

<comment><USER2> I chose Vancouver over moving back to the Valley. While I concede that it's no Silicon Valley, I enjoy my life outside of work so much more here than I did in Palo Alto. I'm also a Canadian citizen, so coming from Waterloo it was a lot easier to come to BC given no Visa and same banking system. It may have a rainy winter, but it's preferable to anyplace else in Canada, and the summers are to die for.

I think it's easy to convince people to move here, but the tech scene really isn't as developed as TO aside from the video game industry. Other local successes include Crystal Decisions (which was bought by business objects, and then SAP), Metrolyrics, and Plenty of Fish(take that one in what sense thou wilt).

</comment><comment><USER3> I think Vancouver is a great place to build an Intrenet company - tons of engineering talent and many local success stories like Flickr, Club Penguin or AbeBooks.

<comment><USER4> AbeBooks is Victoria, and Club Penguin is Kelowna. For those with a SF reference frame, those are roughly equivalent to Sacramento and Sonoma, respectively. But yes, Vancouver is still a great place to do a startup :)

</comment></comment><comment><USER5> Too bad the website is terrible, and that lame people from Vancouver keep submitting bad stories.

<comment><USER4> Boris, I don't even see where there are stories on the VX site - or did you mean techvibes?</comment></comment>


Employees are faster and more creative when solving other people's problems - <AUTHOR> http://www.telegraph.co.uk/finance/businessclub/8527500/Daniel-H-Pink-employees-are-faster-and-more-creative-when-solving-other-peoples-problems.html <comment><USER2> I've witnessed this phenomenon at work when asking other people for help with problems. My coworkers come up with more creative solutions than I did, much faster. The only problem is that when I'm asking for help with stuff, it tends to be tricky stuff with lots of edge cases. My coworkers' solutions tend to not actually work...

Which is not to say that there isn't value in asking them. Sometimes their solutions that don't work can be modified into something that does; or their crazy non-solutions can spark some inspiration on my end.

My theory as to what's going on here is that when you are responsible for the solution, you spend a lot of time thinking about what could go wrong, so your thinking gets constrained. When you are solving a problem for someone else, you're thinking is much freer, because frankly you don't give a damn. You are much more likely to come up with a unique, novel solution. You are also much more likely to deliver a solution that is actually disastrous.

My point being: I think there's room for both associated and disassociated thinking. This article seems to think because there was one series of studies showing some benefits of disassociated thinking that disassociated thinking is just straight up better.

<comment><USER3> I've seen this as well. Other peoples problems offer an escape from my own. There isn't any pressure to solve them so there is definitely a different feel to them. There is also choice, if I hear about 5 other peoples problems, I may have insight into one or two but not the others and I can devote my spare cycles to the promising ones.

One approach for getting your own work done may be to think of your future self. That's who you're doing it for. This also gives less immediacy to the problem in addition to distance. "Older me is going to really appreciate this 3 months from now."

<comment><USER4> It also gives you the advantage of putting yourself in a different mindset. For that, I usually use "3 AM me" as the comparison. Any API that is usable by fully-conscious daytime me, but is prone to errors by "3 AM me" is one that needs to be improved. If an API can be used by "3 AM me", along with all the stress and pressure that led to late-night coding, then it is sufficient.

</comment></comment></comment><comment><USER5> I discovered this as a trick when I was a teenager. I realized that when the guy ahead of me in Math class asked me to explain something, even if I wasn't sure my ego kicked in and my brain automatically went in overdrive to try and help him solve the problem, or perform an explanation.

I actually now use this trick: when I am blocked on a hard problem, or I find myself losing motivation, I imagine someone I would want to impress asking me the exact question, and spend 10s visualizing the scenario. It works!

</comment><comment><USER6> Most of the article is copied from this [http://www.danpink.com/wp- content/uploads/2013/07/FLIP-Manif...](http://www.danpink.com/wp- content/uploads/2013/07/FLIP-Manifesto.pdf)

<comment><USER7> Well, he is the author of both.

Your link is a more in depth version of his position. Thx!

</comment></comment><comment><USER8> I love to solve other people's problems! You can only gain:

\- If you succeed, they will be thankful.

\- If you fail, well, it's not your problem.

Also, you can let them do the obvious/boring stuff, like bureaucracy.

</comment><comment><USER9> This seems like one of those marginal results that the experimenter planned to find before starting the experiment that won't replicate. Also, cutting a rope in half probably won't work, and one man's creative drawings and innovative gifts are another man's silly drawings and stupid gifts.

Did we discover that people are more likely to try to sell solutions that probably won't work if they know that they won't be responsible for actually carrying them out?

<comment><USER10> I had the same conclusion reading about the alien story part. If I have to write a story about an alien, I'm going to be thinking about what it's motivations and experiences are -- distinctly human things -- but if I have to describe an alien for someone else to write about, I'll have no trouble spewing out a stream of self-contradictory, unrelatable junk. So I'm left wondering why anyone would think the second is more "creative" than the first, given that the first was designed to solve problems and the second to create them. I wouldn't think that's the kind of creativity you'd want to measure and optimize for.

</comment></comment><comment><USER11> I noticed a similar phenomenon in my days at school.

When solving problems on my own I was reasonably successful, but in class when I found out - or someone mentioned - that a particular problem was extremely difficult and/or no one had managed to do, I do exceptionally well in it.

As for an explanation to this, I have no idea. It maybe has something to do with the fact that if I fail at the difficult problem then a lot of people have seen me fail at it, but that's just guesswork.

</comment><comment> cool-RR Hmm, I don't think that the rope would hold up to being cut lengthwise.

<comment><USER12> He doesn't say "cut", he says "split". A twisted rope can be split into two parts without damaging either.

<comment><USER13> Er, no. You're both substituting in the word from your mental model.

"Yet he _divides_ the rope in half, ties the two parts together..."

<comment><USER12> Er, no. From the article:

> Which leads to one final question: how exactly did the prisoner with the > insufficiently long rope manage to escape? The answer: he split the rope > lengthwise, tied the two halves together and shimmied to freedom.

<comment><USER13> That's not the proposition, that's the reveal.

<comment><USER12> So what?

</comment></comment></comment></comment></comment></comment><comment><USER14> My job is to help my clients get better at making software. I've done this with great success, but I couldn't ship something on my own if my life depended on it.

</comment><comment><USER15> Isn't this essentially why consulting firms exist?

</comment><comment><USER16> This is reality interesting and reminds me of a real life anecdote. Imagine a customer who has a small trivial request where the correct response was "no, we won't do that and you will not need it" but without a manager's permission, the sales guy and an engineer stopped working on their mission critical projects to snipe in this tiny request in a non reusable way. It was already extremely low benefit to high cost (labor + opportunity cost). Management finds out half a lost day's work later and is really pissed off.

</comment><comment><USER17> I don't know if I am more creative when helping my co-workers with their problems, but strangely I do feel more motivated to find a solution when it is for someone else's work. Weird.

</comment><comment><USER18> I absolutely agree with the premise that solving somebody else's problem or getting an outside opinion is highly beneficial because it allows you to approach a problem with a beginner's mind.

That rope example though clearly shows a caveat with that approach. In an ideal, abstract world that solution would work. However, in the real world this solution obviously doesn't work because you can't cut a rope lengthwise without the rope coming undone.

</comment><comment><USER19> Here's a link to the original paper: [http://www.rotman.utoronto.ca/FacultyAndResearch/AcademicAre...](http://www.rotman.utoronto.ca/FacultyAndResearch/AcademicAreas/Marketing/-/media/Files/Programs- and-Areas/Marketing/papers/PolmanEmichPSPB.pdf)

</comment><comment><USER20> Observed it myself. While at work, I designed sophisticated ops / workflow automation systems, with continuous integration, Docker, test reporting and whatsnot.

For my own development? Nah, too much work, I'll do it manually (and I happily wasted huge amounts of accumulated time).

Irrational, but true.

</comment><comment><USER21> A rationale approach to problem solving is usually the best. Others have less baggage and fewer emotions invested so they certainly can help.

Before organizing a whole enterprise around this however it is worth considering how much of our work actually fits into the solvable problem category.

</comment><comment><USER22> No intrinsic motivation. [http://researchnews.osu.edu/archive/inmotiv.htm](http://researchnews.osu.edu/archive/inmotiv.htm)

<comment><USER23> That's an interesting article you linked to, but how is motivation (intrinsic or otherwise) relevant to the topic of problem solving?

</comment></comment><comment><USER24> They say that solving someone else's problem helps you think abstractly . But why do you have to use tricks to think abstractly ? why not just do so on purpose ? intentionally ?

<comment><USER25> The mind isn't as rational or straightforward as we would perhaps prefer. You can look at phenomena like split-brain studies to see just how bizarre it can be.[0] I'm not saying the split-brain stuff is comparable or useful in this particular situation. It's just the first concrete example of surprising, non- intuitive mind behavior I thought of.

Figuring out what tricks work can help us leverage these behaviors in ways that are useful. And maybe we'll learn how to get the benefits in a more direct manner, intentionally.

[0]: [https://en.m.wikipedia.org/wiki/Split- brain](https://en.m.wikipedia.org/wiki/Split-brain)

</comment></comment><comment><USER26> It's a source my procrastination, I'm much more motivated to reflect on other's issue rather than my own. I even consider this a psychological issue.

</comment><comment><USER27> This is deeply unsurprising. If you can put aside your ego head game, I find that I can get a LOT more done.

</comment><comment><USER28> We use our UX designers as rubber ducks just for that, it usually helps more than anticipated.

</comment><comment><USER29> i know many IT guys who turn this on its head

</comment><comment><USER30> Remote work is dead :(

</comment><comment><USER31> I think it's partly about risk/anxiety/blame.

If it's not my problem, I'm not preoccupied with the emotional component.</comment>


Destroying the reputation of Freelancers everywhere - <AUTHOR> http://www.lesliebarry.com/blog/destroying-reputation-freelancers-everywhere/ <comment><USER2> Great example of the type of client who has no understanding of the web development business model. I can't blame him though, it's not on the client to understand, it's on the service provider to educate as needed. The client did nothing wrong in this case, but that he thought these things were positive is what shows his lack of understanding. To me, these things show a lack of experience and professionalism on the part of the provider.

> The platform is built on Ruby on Rails running on MySQL and the fantastic > Elastic Beanstalk from Amazon Web Services. Not too complex, but enough to > challenge the average freelancer.

So, here he assumes that freelancer is on the low end of the scale of technical ability? Perhaps this is true for the freelancers he has picked up. If your freelance developer is challenged by a Rails projects which is "not too complex" then perhaps you should keep looking. A freelancer should be an expert at the services provided. Hourly rate in this case is often irrelevant, see also "10x" developer.

> Late nights spent debugging issues, 30 minute response times day or night, > challenging questions about some of our design or dev decisions, a constant > awareness of us being in startup mode with suggestions on affordable options > to deploy various bits of tech and then two unforgettable incidents.

This isn't a freelancer, this is an employee. But it's not really an employee either, because this person doesn't get any of the perks of being an employee. Not that it really matters, I think those perks are largely imaginary anyways. Nobody really has job security.

A good freelancer has other clients and a life. Work which encroaches on that life (and elevates priority over my other client work) had better make it worth my while in terms of payments. Clearly, from the rest of this article, this isn't something the author is thinking about. For me, the squeaky wheel doesn't get the grease. The money wheel gets the grease and the squeaky wheel gets dropped.

> The first time I knew this was going to be a great relationship was when 'N' > dialed in for our usual Monday evening call and started the conversation > with "I was thinking over the weekend that a good way to optimise the user > experience would be xx which would positively impact YY in the business".

See the above items about other clients and a life.

> 'N' said: "I've been thinking that the right thing to do here is give you > 50% off my last bill (around $700 USD discount) given the situation. I value > our relationship and I'm choosing the right thing vs the right business > decision. I'm sure we'll work together again and believe in what GetViable > is trying to do."

As a client, this would be a red flag. This would be the sort of thing which would make me do a face-palm. What would Steve Jobs do? ;)

Here are some bullet points to help supplement my above points.

\- I'm not a freelancer, I'm a business providing a service.

\- As a business owner, my job is to maximize the money coming into the door. I don't give discounts and I seek the maximum rates I feel the market can bear. If I left money on the table, I screwed up.

\- If I don't own part of your business, then I'm not your partner. Reaching your expectations that we both laid out is important, beyond that, the success of your business is none of my concern. I do wish you the best of luck though.

\- Don't judge me on my willingness to slave myself to your business. Judge me on the strength of my own business. If I'm successful, it's because I'm more effective than my competition. Jones and Brothers plumbing service which has been in business 40 years has been in business that long because it's run well. Joe Blow freelancer who has been in business for a year and is making the above business mistakes probably won't be around for long. Or eventually will learn from those mistakes.

\- It's important to understand that my business model is different from yours. If I'm a solo developer then the money I can bring in the door for my development services is limited by the number of hours that I can work in one day. I can't scale beyond those hours. I can hire another developer, but that developer is bound by the same constraints. I have to maximize every hour that I'm working. Your business model is different. It can scale beyond the available working hours in your day. Don't expect me to discount my rates at the detriment of my business so that you can more easily bootstrap yours.

\- You need to be paying your freelancers well. Money is the lifeblood of any business, even if a freelancer is acting more like a sort of plug-in employee rather than a business owner. If that lifeblood isn't flowing well, then the business is going to run into problems and ultimately that's going to affect your project.</comment>


Show HN: PyTricks, unpopular built-in Python features - <AUTHOR> https://github.com/brennerm/PyTricks

<comment><USER2> A lot of these are Python 3.* specific - would be good to see a compatibility grid vs Python 2.* which is still in use in great number of places</comment>


Show HN: KinoHunt – a movie price tracking iOS app - <AUTHOR> http://www.kinohunt.com Apologies for reposting as URL, still new to HN and learning :)
We are a team of developers passionate about movies trying to solve a problem:
- Watches a lot of movies at home, but find fewer and fewer good new movies on Netflix
- Redbox is the most economic alternative, but still not as convenient as downloading the movie from iTunes and Amazon. However, iTunes and Amazon are relatively more expensive.
- iTunes and Amazon movie frequently change prices, but there's no easy way to track them
Hence we created KinoHunt, an iOS app https://itunes.apple.com/us/app/kinohunt-price-tracker-to/id837941930?ls=1&mt=8
With KinoHunt, you can "hunt" for movies you want to watch and create a smart watchlist. We track the prices of these movies in your watchlist and inform you whenever the prices drop on iTunes or Amazon.
You can also set a price filter and check out what good movies are available given your budget.
Would love to see if this is something others would use, also any feedback on the UI is appreciated.
Thanks for your time! <comment><AUTHOR> Hi, We are a team of developers passionate about movies trying to solve a problem:

\- Watches a lot of movies at home, but find fewer and fewer good new movies on Netflix

\- Redbox is the most economic alternative, but still not as convenient as downloading the movie from iTunes and Amazon. However, iTunes and Amazon are relatively more expensive.

\- iTunes and Amazon movie frequently change prices, but there's no easy way to track them

Hence we created KinoHunt, an iOS app [https://itunes.apple.com/us/app/kinohunt-price-tracker- to/id...](https://itunes.apple.com/us/app/kinohunt-price-tracker- to/id837941930?ls=1&mt=8)

With KinoHunt, you can "hunt" for movies you want to watch and create a smart watchlist. We track the prices of these movies in your watchlist and inform you whenever the prices drop on iTunes or Amazon.

You can also set a price filter and check out what good movies are available given your budget.

Would love to see if this is something others would use, also any feedback on the UI is appreciated.

Thanks for your time!</comment>


Web Development: Rust vs. Haskell - <AUTHOR> Hi All,
This will be yet another Rust vs haskell question.
I have wanting to use Rust/Haskell for a couple of components for an internal tool (analysis of customer tickets, HR portal etc) for my company (Mostly because of the strong type system).
I have been through quite a lot of blogs & discussion where they discuss on the pros and cons for both.
Can anyone give me pointers on where all they used Rust or Haskell? And how was the experience as in:
1. code readability
2. libraries support
3. developer productivity
4. jump start time to producing some value.
5. documentation
6. build time
7. journey in learning them
My concern here is Rust is advertised as system's language and Haskell as a higher level language.
1. Will going with Rust be an overkill as we won't be doing any really low level stuff?
2. We would be basically writing a server, bunch of API and playing around with DB. I'm mainly well versed with Node.js so will choosing haskell be an overkill for it in terms of developer productivity, build and tooling?
3. Also if anyone is using GraphQL with Rust/Haskell?
I had posted this question in /r/rust and /r/haskell. And there has been quite some good comments.
https://www.reddit.com/r/rust/comments/an11l9/webdevelopement_rust_vs_haskell/
https://www.reddit.com/r/haskell/comments/an2rt8/web_development_rust_vs_haskell/ <comment><USER2> Honestly you may want to consider TypeScript + Node for this. I'm a huge fan of Rust, but learning a new and still-niche language for this project seems like a poor tradeoff for your business at this point. I could be wrong of course.

<comment><AUTHOR> I have learnt Rust(Just by the book) and haskell I have been doing on and off for some time. Maybe I should try a project in both of these and then decide on them.</comment></comment>


Most of Us Suck at Multitasking - <AUTHOR> http://bits.blogs.nytimes.com/2010/03/30/only-a-few-can-multi-task/

<comment><USER2> The NY Times article is a bit sparse, here is the full paper:

[http://www.psych.utah.edu/lab/appliedcognition/publications/...](http://www.psych.utah.edu/lab/appliedcognition/publications/supertaskers.pdf)</comment>


Statically-typed error handling in Python using Mypy - <AUTHOR> https://beepb00p.xyz/mypy-error-handling.html <comment><USER2> Here's my opinion, having written many thousands of lines of mypy code.

* Third party libraries are still not typed, which sucks

* Inference is weak. Sometimes an 'if' statement narrows accurately, sometimes it doesn't.

* Generics are extremely confusing, moreso than any other typed language I have used. Any Generics are even more confusing.

* Fundamentally, Python is structured such that the concept of interfaces are coupled tightly to implementation of classes, which is severely limiting. As an example, a module A can declare a class, a module B can declare an interface (Protocol), but module B can not implement that interface for A (without modifying A's code).

* Errors from mypy are still very very light. There are very few "Try XYZ to fix it", and it's just a single line of read text that amounts to an assertion.

* Still weak support for JSON (use Dict[str, Any])

* Slowly improving but still not amazing support for Self types

I could go on.

Mypy is awesome but it still feels very immature, and as it should since it's pre 1.0. It does not come close to matching the experience of other languages with static types.

<comment><USER3> * Still weak support for JSON (use Dict[str, Any])

Python 3.8 added TypedDict which finally helps this particular shortcoming.

<comment><USER4> I was surprised to find out that MyPy will throw an error if you use a variable to access a key ([https://github.com/python/mypy/issues/7178](https://github.com/python/mypy/issues/7178)).

Optional keys are also a nuisance.

<comment><USER5> How are optional keys a nuisance? I find that using the patterns:

        if "optional_key" in my_dict:
            do_something_with(my_dict["optional_key"])

Or:

        optional_value = my_dict.get("optional_key")
        if optional_value:
            do_something_with(optional value)

Works as expected. Nested optional keys can be a bit annoying, although:

        my_dict.get("optional_parent", {}).get("optional_child")

seems to work.

<comment><USER4> I was referring to defining optional keys.

If you have a dict with some keys which are optional, you need to create a separate subclass (with `total=False`) just for those optional keys.

With TypeScript, I can just use `key?: type`.

[https://mypy.readthedocs.io/en/latest/more_types.html#mixing...](https://mypy.readthedocs.io/en/latest/more_types.html#mixing- required-and-non-required-items)

</comment></comment></comment></comment></comment><comment><USER6> Having recently found myself switching between Python and Scala, I've come to value IntelliJ's type hinting and red squiggly prompts, not to mention compile-time errors.

While mypy and type hinting support in PyCharm and VSCode is great, it's not the seamless experience as with typed languages and the lack of (optional) runtime typing still allows all sorts of bad things to happen. A "safe" mode for Python, where typing and perhaps some other stuff is checked at run-time, might be an interesting advancement for those in the community building larger or mission-critical systems.

<comment><USER7> My opinion is that python shouldn't be used for mission- critical systems anyway.

<comment><USER2> People are gonna dogpile you, but if you'd said this about JS they wouldn't have blinked.

<comment><USER8> Coz there's a difference between "dynamic type system" and "type system that's thrown together with bits of string and rubber bands":

[https://www.destroyallsoftware.com/talks/wat](https://www.destroyallsoftware.com/talks/wat)

<comment><USER2> Python has is own 'wat' stuff, especially Python 2.

[https://stackoverflow.com/questions/3270680/how-does- python-...](https://stackoverflow.com/questions/3270680/how-does- python-2-compare-string-and-int-why-do-lists-compare-as-greater-than-n)

"CPython implementation detail: Objects of different types except numbers are ordered by their type names; objects of the same types that don't support proper comparison are ordered by their address."

<comment><USER9> > _objects of different types always compare unequal, and are ordered > consistently but arbitrarily_

Seems like a completely reasonable thing to do?

<comment><USER2> > When you order two incompatible types where neither is numeric, they are > ordered by the alphabetical order of their typenames:

????????

<comment><USER9> That's entirely an implementation detail. The thing that matters for programmer experience is the specification of behavior: There's going to be _an_ arbitrary order. You certainly can argue that you think it would be less surprising if trying this just failed, or that promising a stable order ties down implementations too much, but I don't think providing an order is that surprising.

None (as far as I remember) of the common "wat" examples about JS are interpreter implementation details, but specified behavior.

I'm mildly curious why CPython chooses to implement it this way, but if I had to guess: I'm assuming it is to provide a stable order between objects of different classes with the same hash() value. Hash-value being what I suspect is what the quoted answer misrepresents as "their address" (the address being in CPython the default fallback for objects that do not implement a hash() function), and being a good candidate to establish an arbitrary order.

<comment><USER2> Sorry, I'm not sure I understand at all the difference between this and the 'wat' stuff.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I think in the long run, python, ruby, js, etc are all bad ideas. You are solving high level problems with these languages, correctness should be the main priority.

Realising that type checking is a good thing, then bolting it on, I feel is a crappy solution, when you should just use something designed better from the start.

I completely disagree that there is a "productivity toll". If you dont know how to speak a language then obviously it seems difficult. I think you save time in the long run not dealing with all the type errors.

<comment><USER11> >> " I think you save time in the long run not dealing with all the type errors."

Have you written and deployed production code in the languages you mention above? Did you encounter a substantial number of type errors?

<comment><USER2> There is no good definition of a type error. It certainly goes beyond TypeError(Exception).

Is a '.close()' method being called twice a type error? It is in a language that can express states in the type system.

Is SQL injection a type error? It is when you use refined types in your sql library interface.

The vast, vast majority of errors I run into are errors that, with effort and the right type system, I could turn into type errors.

The point being that asking "would those be type errors?" is a really big question that is, when answered simply, "yes".

<comment><USER12> There aren't any mainstream languages that have the ability to detect the ultra high-level errors you describe. Maybe typescript is getting better.

Pyflakes and unit tests will detect the great majority of potential errors. Mypy gets you closer to zero.

<comment><USER13> There are very usable, well-supported languages out there right now that do have such type systems. Saying they're out of consideration because they're not mainstream is a circular argument.

<comment><USER14> > _Saying they 're out of consideration because they're not mainstream is a > circular argument._

No, it's a pragmatic argument. There's no circularity it.

If they're not mainstream, then they're neither "very usable" or "well- supported" to any extend that a mainstream language would be.

<comment><USER13> Here's the circularity:

\- There are no mainstream languages with powerful and convenient type systems

\- But there are less mainstream ones

\- But I won't use those

\- There are no mainstream languages with powerful and convenient type systems

<comment><USER14> That's circularity alright, but not as in a "circular argument" though. It's a feedback loop.

That's however a totally legitimate engineering choice.

Engineers picking on a language shouldn't bet on less mainstream incomplete environments with less tooling and libs and options and devs, just so that they can raise them into the mainstream.

That might be a "tragedy of the commons" thing, but it's not an engineering obligation to be an early adopter.

<comment><USER13> They're not _obligated_ to by early adopters, but then you hear comments like:

> There aren't any mainstream languages that have the ability to detect the > ultra high-level errors you describe.

And it's like, well there are great languages that can do that, but if you restrict yourself to that tiny 'mainstream' subset, you'll never know it.

And moreover I think engineers (or rather, companies) are way too conservative about this stuff–picking 'mainstream' tech can be a touch-and-go proposition at any time. Just because something is mainstream, doesn't mean it's the right choice for your project.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Hi, I'm the author! Happy to answer your questions here!

<comment><USER16> Hi, thanks for featuring my result library!

Regarding your criticism that `result.ok()` returns `None` if the value is not an `Ok` type: That's what `result.unwrap()` and `result.expect(msg)` are for :) (There's no unwrap_err and expect_err so far, but PRs are welcome.) The lib is strongly inspired by Rust (see [https://doc.rust- lang.org/std/result/enum.Result.html](https://doc.rust- lang.org/std/result/enum.Result.html)), that's why `result.ok()` returns something option-ish.

I like your `isinstance` approach btw! Will have to think about it a bit more. Reminds me a bit of Typescript as well. Does mypy have type guards ([https://www.typescriptlang.org/docs/handbook/advanced- types....](https://www.typescriptlang.org/docs/handbook/advanced- types.html#type-guards-and-differentiating-types))? Maybe that could be used to create helper functions that check for success/failure and which help mypy to derive the correct type.

<comment><USER17> > Does mypy have type guards?

not yet, maybe in the future. might be possible to emulate some use cases with Literal Types. tracking issue:

[https://github.com/python/mypy/issues/5206](https://github.com/python/mypy/issues/5206)

</comment></comment></comment><comment><USER18> Appreciate how in depth this is, looking at all the possible ways of handling the issue. Makes the final result more interesting knowing the journey it took to get there.

</comment><comment><USER19> Has anyone evaluated libraries like Pydantic ( [https://pydantic- docs.helpmanual.io/](https://pydantic-docs.helpmanual.io/)) and Encode Typesystem ([https://www.encode.io/typesystem/](https://www.encode.io/typesystem/)) versus MyPy as a real life thing ?

<comment><USER20> These are completely different objects: data validation libraries.

I think naming the latter "Encode Typesystem" is misleading (and your question is an indication that I am right).

<comment><USER19> why is it misleading ? didnt understand. i just didnt want people mistaking "typesystem" as a word rather than a project name by Encode.

its a very common name.

</comment></comment></comment><comment><USER21> I maintain a library for doing exactly this in C# ([https://github.com/mcintyre321/OneOf](https://github.com/mcintyre321/OneOf)). I tried to replicate it in Python as I'm writing it at the moment, but couldn't quite manage it. Can you have a multi generic typed Union in python?

<comment><USER22> Do you mean something like this?

      T1 = TypeVar("T1")
      T2 = TypeVar("T2")
      GenericUnion = Union[T1, T2]

<comment><USER21> Yes I can't quite remember why I couldn't get it to work. I want to make something where this is valid, but couldn't manage it:

        def foo() -> OneOf[Bar, Baz]:
          if blah():
            return Bar()
          return Baz()

       def bar_to_blah(bar:Bar) -> Blah :
         ...

       def baz_to_blah(baz:Baz) -> Blah :
         ...

       one_of_bar_or_baz = foo()
       blah = one_of_bar_or_baz.match(bar_to_blah, baz_to_blah)

but the critical thing is to get a type error if you add another case to foo's return type, or change the generics to different types.</comment></comment></comment>


Starters Guide to iOS Design - <AUTHOR> http://taybenlor.com/2013/05/21/designing-for-ios.html <comment><USER2> The biggest thing of all, I believe, is actually testing your design on a device. Text you think looks good when you're in Photoshop has a tendency to be too small or too large, or too gray or not enough saturation on a device. So, if you're designing - and can't get a build to your phone to actually play with - email yourself an exported PNG of correct resolution and open it up on your phone. You should be able to see and "play" with it as best as you can for absolutely no money.

It seems like this was written for the designer, not developer, so I would also like to add one more thing. If you're a designer and tasked on working with a developer to make an app happen (or vice versa really), then work side by side as much as you can with that person and have regular discussions. You'll both drive each other toward a better project than just piecewise doing things in a more waterfall-esque approach.

<comment><USER3> A nice tool for doing this, fyi, is xScope which lets you mirror your clipboard on your phone over bluetooth.

<comment><USER4> ..or LiveView or Skala. Either of which are great for live streaming content from you computer's screen to your iphone/ipad.

<comment><USER5> Or Briefs or Preview

</comment></comment></comment></comment><comment><USER6> This is a very good guide. The only part I found odd was the advice to design at 1x rather than 2x. My strategy, is design in 2x, but everything must have even dimensions. For the iPhone I just downsample the assets and don't even bother to check if they look good. For iPad, I will touchup 1x assets if needed.

<comment><USER7> I've found that the best reason to design at 1x is because the coordinates match the coordinates for the developer and also because sometimes the 2x size won't split nice and evenly if you don't keep it in mind. For instance 15px for a gutter.

<comment><USER6> That is what I actually meant by even dimensions. I meant divisible by 2, not balanced.

It just seems impossible to take something with texture at 1x, and then scale it up. I often pick subtle textures for 2x, and then just drop or re-zoom the texture in the 1x version. How many people really have non-retina devices these days?

<comment><USER8> iPad mini is non-retina. Maybe 2/3 of new ipads so maybe 15 million last quarter compared to around 45 million retina devices.

</comment></comment></comment></comment><comment><USER3> If you use Sketch to draw your interface, you get @2x exporting and slicing is built in. It hurts my head to think about what I would have to do if I was using Photoshop.

<comment><USER6> If you use PaintCode, you get CoreGraphics c code output. If you deliver your designs to a developer in CG code, their jaw will drop.

<comment><USER3> what's the point, exactly, to doing this (serious question)

<comment><AUTHOR> Things like:

      * Scalability - you can resize a button and get the correct look
      * Simplicity - you don't need to create 1x and 2x resources

Downsides are that it can be slow and it muddies up your code base.

</comment></comment></comment></comment><comment><USER9> Question for designers: how do you share your designs with clients/team, in order to explore both design & workflows? (this would be at Photoshop stage, no coding started yet. An example: the series of Instanote mockups from the article)

Do you do this as a series of images in any order, or do you use some tool such as Invision, to build interactive prototypes?

</comment><comment><USER10> Our app PaintCode can really help with pixel-perfect, Retina-ready graphics. It is a vector drawing app that instantly generates Objective-C code.

<http://www.paintcodeapp.com>

</comment><comment><USER11> > A point can be represented by many pixels (normally one or four).

This is a distance vs. area mistake, right? I thought that a point is used as a one-dimensional (distance) unit, and is generally one or two physical pixels.

<comment><AUTHOR> I've personally seen points used as an area measure, but I think you're more correct. I'll update the article later tonight.

</comment></comment><comment><USER12> I use fieldtestapp.com to test my prototypes. Super easy to work with.

<comment><USER13> Thanks, but what does this have to do with the post?</comment></comment>


How to get MORE WORK DONE within a week: 5 Ideas That Work - <AUTHOR> https://oyestartups.com/blogs/how-get-more-done-week-5-ideas-that-really-work <comment><USER2> Setting intentions in the evening for the next day can really set a productive mood.

<comment><AUTHOR> yes, we should make a list of everyday night, i follow that and get most of my work get done in next day</comment></comment>


Is this doable? - <AUTHOR> http://i.imgur.com/QJuYWSH.jpg Someone posted that on reddit and it looks fake to me. I've never had the luck on dabbling with emails, but i know they are super restrictive enviroments. Would something like this be doable? If so, how? <comment><AUTHOR> The image shows the email "with and without" images. I'm having trouble buying that... If you were to specify the with and height for each cell, then wouldn't that result on a malformed email with images? Thanks.

<comment><USER2> Photoshop slicing gives you a table. Simply set the background color of each cell and set the borders and padding to zero.</comment></comment>