You Can't Force Innovation - <AUTHOR> http://techstartupgame.com/2011/09/22/you-cant-force-innovation/

<comment><USER2> The epitome of process is CMMi/ISO-900x. I think of this in terms of a trade- off graph:

Vertical axis: How many _different_ items you can build

                ^
                |
      Thousands |\
                | \
                |  \
                |   \
                |    \
                |     \
                |      \
                |       \
                |        \
                |         \
                |          \
              1 +---+----+--->
                1  1e3  1e6

Horizontal axis: How many _identical_ items you can build.

The limit as process "strength" goes to infinity is that company can only build one thing (but millions of that one thing).

The limit as process "strength" goes to zero is that the company can build anything anyone can dream up, but cannot make a second identical thing.</comment>


Ask HN: What Hackers do for Programming Contests? - <AUTHOR>

Programming contests have become something like a way to pass time and keep ourselves away from boredom for me and my friends. Having tried lots of easy problems... we are getting stuck at the tough ones. Fellow Hackers what do you suggest for improving our skills gradually? Suggest great texts, problems, algorithms, approaches, mindsets and your personal views at programming contests in general. For a person who hires, is programming contest style recruitment really fruitful? <comment><USER2> Why don't you create a product instead of frittering away time with (IMO) meaningless contests? It can be open source if you just want to learn. Or help out with some existing open source product.

<comment><AUTHOR> well let me tell you my real experience... this time i tried to do something google code of summer... now as for open source projects... frankly if I don't get involved exclusively into one... all of them seem to be just another different different worlds in themselves. Besides why dig so much to fix a small problem and understand big piece of software for long time to improve it by a nanosec. What rush we get by programming contest problems is the "ACRush" as my friend puts it... its amazing to see your fast code getting accepted "AC" by an online judge.. and then amazing to see how a faster program gets you a better rank... these joys arn't there in world of freely contributing to open source... this joy is like a high.. which makes us crave to be able to solve MORE and MORE :) anyways forget that my point is won't it be amazing if fixes/problems of opensource projects are also converted into programming contest style problems and you get to get the fastest and the best code for open source projects and we get the RUSH as we call it ? and later you can always pick us up for a job ;P

</comment></comment><comment><USER3> try topcoder.com

<comment><AUTHOR> yeah thats the big boss of programming rush!</comment></comment>


Curve – Www.imaginecurve.com – London, UK – Onsite – FinTech – Salary and Equity - <AUTHOR> Curve is growing - join our adventurous startup! We believe that the next generation of banking will be a single mobile platform that enables payment anywhere with any card from any account, and connects people in a simple way with the best technologies and financial offers - putting them back in control of their finances.
Our team of award winning (just voted leading startup at the EPAwards'16) entrepreneurs, product-builders and customer-focused marketers are developing a ground-breaking product with the customer at the core. Technical complexities; scalability, security & real-time transactions are all part of the day-to-day challenges; the near future will include a public API, fraud engine, machine learning & big data.
If you like to be intellectually stretched, your capabilities tested and want an opportunity to have a real voice, input and impactful contribution, then we're offering that in abundance.
You bring your expertise; we'll give you the platform to flex your talent!
For more info about our jobs, check out: https://curve-1.workable.com Or email Anney our Talent Lead on email@example.com We're currently eager to hear from naturally curious software, mobile and BI&Analytics Engineers who want to make a difference!
Our process will include a developer challenge and 3/4 conversations….but we don't dither when deciding and can turn offers around very quickly! <comment><USER2> Job solicitations are probably better suited for the monthly "whoishiring" threads. They are automatically posted 11AM Eastern time the first weekday of each month. The next one will be Monday, July 3.

<comment><AUTHOR> thanks!</comment></comment>


Ask HN: What do you listen to while coding? - <AUTHOR>

A few days back, a HN post mentioned the headphones people used while hacking (http://priceonomics.com/headphones/#headphones-for-hackers). But one thing i wanted to know: what are those headphones connected to mostly, and what do you use to listen to music? For me, i have iPhone head phones, plugged into my laptop, using Spotify to stream music... What about ye lads? <comment><USER2> A while back I wrote a post about what I listen to: <http://pileofturtles.com/2010/12/music-for-programming/>. tl;dr Electronic Music / Podcasts.

After listening to music while programming for so long now, I actually find it hard to program without music.

<comment><AUTHOR> I tried listening to podcasts before, but get distracted... i need to listen to the podcast and try considerately on code... Electronic music and dance is good... but as a follow up question: what do you listen to this on? iPod, Computer, phone, other?</comment></comment>


I built a Twitter bot that entered–and won–1,000 online contests for me - <AUTHOR> http://qz.com/476914/i-built-a-twitter-bot-that-entered-and-won-1000-online-contests-for-me/ <comment><USER2> Earlier discussion: [https://news.ycombinator.com/item?id=10001364](https://news.ycombinator.com/item?id=10001364) (1 week ago, ~100 comments)</comment>


The Supreme Court tells politicians how to take bribes without going to jail - <AUTHOR> http://www.economist.com/blogs/democracyinamerica/2016/07/wink-wink <comment><USER2> Pathetic, truly pathetic. Such fine-grained parsing of the law is always indicative of some sort of hand-waving going on. The older I get, the more I understand of the true meaning of "if you're not a conservative after 40, you have no brains". Society fundamentally runs off power and money; ideals are a smokescreen and anyone with any sense understands this.

Full disclosure (i.e. my ranting): I recently have had to deal with a situation involving a non-profit sort of outfit I was involved in. The PR/media person on the BoD who has always been the public face of the organization deliberately drove the rest of us nuts with his abuse for months, resulting in one of volunteers quitting (even though she wasn't the target). In response the rest of us resigned in some attempt to make this guy see reason. (Mistake 1: never empathise with the psychopathic, we all thought he was under stress due to some personal stuff of his)

Later I found out he'd accepted kickbacks from a commercial company the org had promoted to its members and now he has a personal financial interest in the companies the org 'promotes' as part of its work around medicinal cannabis. Kids' Company writ small, to be honest. And the law is badly equipped to deal with such shady stuff - and now the Supreme Court has essentially ok'ed such practices... This fool is threatening to sue me and another director for nonsensical reasons because he's been thwarted and his ego desires have not been fulfilled.

It was all the same sort of nonsense that one sees all the time in start-ups and companies in general. I met someone who had a lot more experience in the NGO type space after this and she told me it is a common story - people's egos and power tripping being more important than carrying out the goals. I really am starting to loathe humanity at some level; all these ideals that are blathered about are not that hard to achieve once you let go of the ego and power/dominance factor. But capitalism at its core nowadays is corrupt....</comment>


Tmuxomatic: completely different tmux session manager - <AUTHOR> https://github.com/oxidane/tmuxomatic <comment> git-pull Author of tmuxp [1], a session manager also in Python.

I like the project. I consider it more in the "different" category as opposed to "better".

> Other tmux session managers require pages of documentation for basic use,

[http://tmuxp.readthedocs.org/en/latest/quickstart.html](http://tmuxp.readthedocs.org/en/latest/quickstart.html)

> and define windows using a complicated nesting of pane splits.

[http://tmuxp.readthedocs.org/en/latest/examples.html](http://tmuxp.readthedocs.org/en/latest/examples.html)

The syntax for tmuxp was heavily inspired by tmuxinator and teamocil.

Normally, window layouts in tmux don't get too fancy.

> tmuxomatic is so easy that anyone could use it after just one example.

I think the idea has potential - already being used to using teamocil/tmuxinator configs, it feel its a tad unorthodox at first.

I don't see what benefit it gives over constructing the tmux via your client and saving the layout. The `tmuxp freeze` command exists for this.

> Yet tmuxomatic is more flexible and more powerful than other tmux session > managers.

[http://tmuxp.readthedocs.org/en/latest/quickstart_python.htm...](http://tmuxp.readthedocs.org/en/latest/quickstart_python.html) \+ [http://tmuxp.readthedocs.org/en/latest/api.html](http://tmuxp.readthedocs.org/en/latest/api.html)

You can't get more powerful and flexible than having an API that basically runs at a parity to tmux's data model and commands.

That said, anything that spreads the word about tmux and makes it easier for people to use is a good thing. I think the real pain point in CLI is even with modern (neo)vim/emacs, we don't have anything close to an Atom or Intellij suite for "just works" completion. If you've had better luck with completion - I'm happy for you.

[1] [https://github.com/tony/tmuxp](https://github.com/tony/tmuxp)

<comment><USER2> Hi, author of tmuxomatic here.

My personal use of tmux includes windows with 10+ panes. It's not easy to define these layouts using other means, and often making simple modifications is a big hassle.

I didn't want to be an expert in tmux to maximize my use of it. I wanted something so simple and intuitive that documentation is virtually unnecessary.

For those who only ever use simple 1 or 2 split layouts, a traditional manager may suffice. But even in these cases, tmuxomatic is much easier to deal with. Definitions in tmuxomatic are readable at-a-glance, and the flexibility afforded by windowgrams make layouts clear and unambiguous.

As for the tedium of ASCII, there's the Flex command set that's being added to tmuxomatic 2.x. Using a handful of basic commands, virtually any layout is possible without doing any ASCII art at all.

I'd say this qualifies as better.

Of course it's different, it has to be.

</comment></comment><comment><USER3> I like the idea here, but I don't really see how drawing ASCII art is easier than running:

        tmux list-windows

I do agree that it's nicer to read the ASCII art version, but making edits seems like effort. The list-windows syntax isn't fun to look at, but it's simple to manually make changes to the current layout and export it in the native tmux syntax.

<comment><AUTHOR> Further down the page is a mention of Flex, which was designed to address the concerns you mention:

        "Windowgrams are a neat way of arranging workspaces. For simpler
        layouts, a windowgram can be typed up quickly. But if you need
        detail, you may find yourself doing a lot of ASCII art.

        In tmuxomatic 2.x, flex was added to automate the construction and
        modification of the windowgram itself.

        Flex is an object-oriented windowgram editor. It is visually
        expressive, naturally worded, logically ordered, minimal, and
        powerful. Its short command set may be combined to make any
        conceivable windowgram -- likely more quickly and more easily than
        crafting by hand. Flex is intended for power users who desire
        detailed windowgrams without the tedium of manual entry."

There are some examples further on of how quick and easy it is to use flex for edits.

</comment></comment><comment><USER4> Looks neat.

Is there any way to load a layout from tmuxinator, modify the layout in tmux itself, and then save the modified layout back to the tmuxinator windowgram? As long as I haven't deleted/removed panes from the layout, it seems like tmuxinator could figure out the modifications I made.

<comment><USER2> You probably meant tmuxomatic, not tmuxinator.

What you describe are the "synchronization features" that are planned for a future version. I'd like this to be a real-time synchronization between the tmux session and the tmuxomatic session file, a change to one will update the other.

Development for 2.x is centered around Flex. Look for synchronization (in whatever form) in 3.x or 4.x.

<comment><USER4> Oops, yeah, I did. And glad to hear it!

</comment></comment></comment><comment><USER5> Cool project but this comment seemed like a late April Fools joke. "Other tmux session managers require pages of documentation for basic use" Um... I spent all of 2 minutes reading Tmuxinator's Gtihub readme and then set it up. The same amount of time reading this readme had me scratching my head.

<comment><USER2> It's intended for non-trivial layouts.

To contrast, take a look at the configuration files for some simple layouts in another popular session manager: [http://tmuxp.readthedocs.org/en/latest/examples.html](http://tmuxp.readthedocs.org/en/latest/examples.html)

The same layouts in tmuxomatic are going to be very easy and obvious. Though the unorthodox nature of tmuxomatic may require some getting used to.</comment></comment>


Show HN: A site creating automated Spotify playlists of the music about to play - <AUTHOR> https://whatwasplaying.com/ <comment><AUTHOR> Hey guys, that's an app I created for myself first. It will save tracks that played in a playlist so you don't have to do it. Let's say you're having friends over and you start playing cool songs, you can have the list ready for you in Spotify. Road trip? Everyone is asking to play something, you can save it all and have it to remember the ride without having to add each track manually. I would love to add more features!</comment>


Braintree launches instant underwriting - <AUTHOR> http://pandodaily.com/2012/10/01/a-new-twist-in-the-three-way-payment-wars-braintree-finally-offers-instant-underwriting/ <comment> jim-greer "A recent acquisition of digital wallet company Venmo gave it another key arrow in the quiver: The promise to extend one-click payments across its entire portfolio. In other words if you've ever purchased an Uber cab– or anything else on a Braintree powered site– you can now make a quick one click purchase on any of its other sites."

I don't see any mention of this sharing of one-click payment info on Braintree's site. Can anyone confirm this is really coming?

<comment><USER2> Yes, we do have a universal checkout product in the works with the Venmo team. We'll provide more details as we get further with the product but expect to see more from us on this soon, and the Pando article captures the essence of it. We want to take the seamless checkout experience that we've enabled for companies like Uber, HotelTonight, Fab and thousands of others and make it available across every merchant that uses Braintree and every consumer that uses Venmo.

-Kristi from Braintree

<comment><USER3> One step away from a braintree wallet!

</comment></comment></comment><comment><USER4> This is a big win for Braintree as it opens up the door to a lot of great opportunities they didn't have previously. For example, when starting up a new idea, I never would go with Braintree simply because I wasn't guaranteed I'd sell enough to be worth the monthly minimum. I'd rather take the no risk approach and pay a higher fee per transaction.

I'm sure I'm not the only one who looked at Paypal, Amazon Payments, or Stripe for that reason alone.

</comment><comment><USER5> Loving the competition in the payments space. More innovation and companies (developers in particular) win.

</comment><comment><USER6> Reading about all these innovations in the payment market is great, but unfortunately for most of us in Europe, PayPal is still the only option that makes sense most of the time, unfortunately. :(

<comment><USER5> Would love to hear some of the reasons for that. Lack of credit card usage? rates? I'm curious and I bet companies in the space would love to hear some of the reasons why.

<comment><USER7> Can't speak for Braintree, but generally US-launched financial services take some time to expand internationally for two reasons: 1) tons of compliance and regulation unique to each country, and 2) having to interface with the specific payment technologies in that country.

PayPal is one of the best international payment options because it's had more time and money to throw at these problems than almost anyone else.

</comment></comment></comment><comment><USER8> Signed up & was told I'd be contacted in ~24 hours -- not much different from my previous attempts signing up.

<comment><USER2> Most valid applicants will be approved instantly. There are some circumstances, such as the specifics of your business model, that may require a brief manual review. At most this will take 1 business day, but many reviews will be much quicker - as fast as 20 or 30 minutes.

The difference between Braintree and others is that when we say yes, we mean it. That means your business is good to go from day one and you won't have to worry about paypal-like shut downs.

Kristi from Braintree

<comment><USER9> 20-30 min also for all the international countries?

</comment></comment></comment><comment><USER9> Their sign up form seems to be only for the US, so is the instant underwriting news absolutely correct or is the instant thing for only one of the 200 countries in the world?

At least just a few days ago the international forms and documentation they asked for to sign up was miles long.

<comment><USER2> @jkalkundi - Kristi from Braintree here.

Currently, the instant underwriting process is only available to our US based merchants. We've made underwriting for merchants outside the US easier than many of the current international alternatives. But we're still working hard to make sign-up instantaneous for merchants based outside the US and expect to be there soon. As you probably already know, international banks can often be much more risk averse.

<comment><USER10> Also, any plans for latin-america (I'm from Colombia). Paypal open here and then close, and I can't get out the money (except buying stuff). Now I'm with fastspring but wish to have options...

<comment><USER2> We're working on it, but no timeline. You can sign up to be notified when we become available in Latin America here: <https://www.braintreepayments.com/tour/international>

</comment></comment></comment></comment><comment><USER11> I don't understand how instant underwriting works. I thought the the reason it normally takes a while to get set up to take credit cards is because your merchant account provider is liable to the credit card providers for chargebacks, even if they can no longer collect that money from you because you went under months before.

Who assumes the risk for chargebacks in the instant underwriting scenario? How does that party control their risk?

<comment><USER2> Kristi from Braintree here.

We wrote our own underwriting software that connects our online signup process with years of data and experience underwriting tech companies. That combination of better software, years of data and more experience with tech companies makes us way more efficient than traditional payment providers.

As for who assumes the risk: the merchant is responsible for chargebacks first. If the merchant fails to cover those chargebacks, the risk then typically sits with the payment provider. If the payment provider is not able to cover the risk, the bank then stands behind the payment provider.

<comment><USER12> pretty sure you are just an aggregator. Visa & MC are making this more 'feasible'

<comment><USER2> Kristi from Braintree again.

All of our merchants get their own merchant account during our onboarding process.

Admittedly, it's a complex process behind the scenes. We know that a lot of people are interested in how we do this, and we want to be completely transparent about our business practices. We plan on putting out a blog post explaining it all in detail in the coming weeks.

You can subscribe to our RSS feed at <http://feeds.feedburner.com/braintree> for updates.

<comment><USER11> I've tried on occasion to figure out all the players involved in processing a payment, and their relationships and responsibilities. It is complicated because (1) so many companies offer multiple services (gateway, merchant account, etc) and their documentation blurs the distinction, and (2) some companies use different names for the same thing.

Here was my best attempt: <http://news.ycombinator.com/item?id=2445866>

If your blog post could cover all the components I tried to cover there--but without the errors I probably made and with the gaps filled, I and many others would be grateful and ecstatic.

</comment></comment></comment></comment></comment><comment><USER13> I'm not sure if this is comparable to Stripe's signup process.

I just tried signing up from: <https://apply.braintreegateway.com/>

At the end of it, my application for queued to be manually reviewed (~24 hrs) by an underwriter. Am I missing something here ?

<comment><USER13> UPDATE: My application was approved within 30 minutes.

<comment><USER2> That's great! Not sure if you saw this answer to @davidandgoliath where I elaborate a little more on our process:

Most applicants will be approved instantly. There are some circumstances, such as the specifics of your business model, that may require a brief manual review. At most this will take 1 business day, but many reviews will be much quicker - as fast as 20 or 30 minutes.

The difference between Braintree and others is that when we say yes, we mean it. That means your business is good to go from day one and you won't have to worry about paypal-like shut downs.

Kristi, Braintree</comment></comment></comment>


Ask HN: What's up with this @newsycombinator tweet used in 140proof ad? - <AUTHOR>

I was using echofon today when I noticed this "ad" from 140proof in my stream.
Screenshot here: http://skitch.com/robotdeathsquad/detjm/echofon
It looks like it's representing itself as a @newsycombinator tweet, but links to a MaximumPC article that doesn't seem to be on the front page of news.ycombinator.com.
What's up with that? <comment><USER2> The bot tweeted it last week: [http://www.backtype.com/page/www.maximumpc.com%2Farticle%2Ff...](http://www.backtype.com/page/www.maximumpc.com%2Farticle%2Ffeatures%2F10_things_android_does_better_iphone/conversations?page=28)

<comment><AUTHOR> Interesting, I wonder why it would get picked up in an ad today though?</comment></comment>


Alzheimer's: The News Is Not Getting Better - <AUTHOR> http://pipeline.corante.com/archives/2011/07/26/alzheimers_the_news_is_not_getting_better.php

<comment><USER2> Am I the only one who thinks that 99% chance of cerebral vascular edema is STILL preferable to 100% chance of late stage Alzheimer's?

This is absolutely how I feel. I may not take this kind of treatment in the early stages of the disease, but as soon as feel that I might be losing myself, I'd roll the dice without blinking.

<comment><USER3> After losing a family member to Alzheimer's (a process which lasted almost a decade), most of my family appears to have independently decided that they would rather quietly off themselves (pills, etc.) than slowly have their brain melt away - myself included.

It's hard to describe unless you've watched a loved one go through it.

<comment><USER4> Agreed. I have tried to express this to others after my father started to really change. Most people were shocked and assured me that I wouldn't think that way if I actually had the disease. My only response to that was to say that I hope this is cured by that point.

</comment></comment></comment><comment><USER5> _The News Is Not Getting Better ... There have been reports of an unexpected side effect (vasogenic edema) in several trials, for drugs that work through completely different mechanisms._

It sounds like we could be on the verge of understanding something fundamental about alzheimers. I'd say that's _fantastic_ news in the long-term.

<comment><USER6> That's what it _sounds_ like… Unfortunately, we've been on the verge of understanding it for decades now and we're still spinning in place. Long-term good news is no help to those of us who are watching our loved ones die before our very eyes today. It is a grim subject to research… so much work has gone into it and yet we still cannot even reliably diagnose it.

Not trying to be hopeless here: just remember to thank your local Alzheimer's researcher, the job has not been that rewarding to date.

</comment></comment><comment><USER7> "The ketogenic diet also may function in a neuroprotective fashion in Alzheimer disease "

<http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2898565/>

\--

"Neuroprotective and disease-modifying effects of the ketogenic diet"

<http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2367001/>

\--

" Study of the ketogenic agent AC-1202 in mild to moderate Alzheimer's disease: a randomized, double-blind, placebo-controlled, multicenter trial"

<http://www.biomedcentral.com/content/pdf/1743-7075-6-31.pdf>

\--

[http://scholar.google.com/scholar?q=alzheimers+ketogenic+die...](http://scholar.google.com/scholar?q=alzheimers+ketogenic+diet)

</comment><comment><USER8> Alzheimer's is such a horrible disease. The prognosis for cancer has improved incredibly over the last few decades; it would be nice to see some funding re- prioritised for Alzheimer's.

</comment><comment><USER9> I'll just leave this right here:

<http://www.ncbi.nlm.nih.gov/pubmed/20731659>

</comment><comment><USER10> I kept looking for the Google Translate button while reading this.

</comment><comment><USER11> Tin foil hat time, but: The W. Bush administration basically made it illegal for cattle producers to test for mad cow desease (small organic beef producers wanted to be able to test, and the Big Food Corps had their lacky, also known as the President, have his administration ban reliable and cheap tests).

Anyway, is it a stretch to think that some mad cow cases are being mis- diagnosed as Alzheimer's desease? It seems like it is at least a possibility.

BTW, I don't think that the Obama administration has lifted the ban on testing. One lacky president is as good as another.

<comment><USER12> As far as I know the progression of Alzheimer's is _far_ slower than v/CJD. It would become fairly obvious fairly rapidly that you were dealing with something else.

<comment><USER11> I thought that v/CJD takes about 10 years, right?

A friend of my parents in California died several years ago from mad cow desease (v/CJD) and it took many years.

Anyway, this is outside my area of expertise - my wife however spent a lot of time looking into this and she very much believes that mis-diagnosis is common.

<comment><USER12> My understanding is that the average progression for _variant_ CJD, from early symptoms until death, is just over a year.

For "regular" CJD it's closer to half that.

Long term progressions are known to happen but are rare even given the rareness of CJD, so your friend was quite the outlier.</comment></comment></comment></comment>


Pronouncing SQL: "S-Q-L" or "sequel"? - <AUTHOR> http://patorjk.com/blog/2012/01/26/pronouncing-sql-s-q-l-or-sequel/ <comment><USER2> Neither:

"Squeal"

Which I found a while back, somewhere or other on the web.</comment>


A 25% chance of success - <AUTHOR> http://www.economist.com/node/21643344/print

<comment><USER2> This is linked to a 'print it!' page, which is pretty annoying.</comment>


The End Of Online Anonymity - <AUTHOR> http://www.readwriteweb.com/archives/the_end_of_online_anonymity.php

<comment><USER2> I think there is another possible outcome than forcing everyone to "be on their best behaviour" all the time.

Many things are today regarded as inappropriate that are really not that important. Who cares whether such and such intern (or even CEO) once dressed up as a woman at a party. Only bigotry keeps people turning up their nose at such trivial nonsense.

As behaviour that was previously hidden and taboo becomes more and more visible, there are two possible outcomes:

1) (proposed by the article) the behaviour is eliminated because it cannot be tolerated. This would likely be the case for disastrous behaviours such as child abuse and conjugal violence, which, as they become more visible, are unlikely to be tolerated.

2) Social norms evolve and learn to tolerate that behaviour.

I think it is not unthinkable that in the near future many behaviours which are today still looked down upon will be accepted as normal and irrelevant to most considerations. In the inevitable collision between outdated laws/social norms and the huge masses of people who do the forbidden anyway, history tells us that the huge masses of people win.

(of course, do whatever you need to ensure you don't become roadkill on this march...)

<comment><USER3> Yes the huge masses win. The mob will win because it will be the mob that decides what is actually 2) and what is 1).

Minorities lose because their (our?) behaviour may be suspicious to the masses. The judge is replaced the mob.

But that's not all. Since the mob doesn't have a clear picture of everyone's actions, someone has to do the data integration and run algorithms to compute a simple number to express how suspicious someone's behaviour is.

HR managers will no longer personally google for applicants. The whole thing will be outsourced and those affected will never know why they didn't get that job or that bride.

Something suspicious, nobody will know what. The algorithms might use heuristics and random factors so nobody can ever find out why a particular decision was taken other than that the suspicion factor was too high.

<comment><USER4> > someone has to do the data integration and run algorithms to compute a > simple number to express how suspicious someone's behaviour is. HR managers > will no longer personally google for applicants.

I think this is unlikely. If this 'simple number' was not an accurate measure of likely job performance then companies who relied on it would be at a huge disadvantage. Companies (and by extension their HR departments) who ignored it or incorporated their own information would tend to prevail.

<comment><USER3> You're implying that there is an inverse correlation between this number and job performance. That's not necessarily the case. And of course this number won't be the only factor in the decision making, but if there's a risky candidate and a less risky one in terms of that number, why would anyone choose the riskier candidate, everything else being equal? There's only one reason and that is salary. People with stained public profiles will earn less money and will be out of a job for longer.

<comment><USER4> > You're implying that there is an inverse correlation between this number and > job performance.

No I'm not. I'm suggesting that if others actually believed this figure then it would tend to push down the wages of those who had a higher number and they would represent better value for money. Companies who essntially ignored the number and hired based on other factors would tend to get better employees and would flourish. This would tend to reduce the 'wage gap' down to whatever its true predictive power was.

Of course as you have mentioned this whole notion of one all-powerfull number is unlikely.

<comment><USER5> Let's hope we'll have enough competition to enforce tolerance.

</comment></comment></comment></comment></comment></comment><comment><USER6> Once again we see the misbehavior of the few encroaching on the freedoms of many. Of course none of us want to see bullying online, but to create a situation where breaking TOS agreements for web services can be used in court to CRIMINALIZE behavior is a ridiculous precident. Essentially what the court said was that because the defendant violated the terms of service, the was guilty of fraud. Can you imagine how hard it will be to find new users for a service when they must treat your TOS as a document that will open themselves up to criminal prosecution is breached?

</comment><comment><USER7> I have never felt a need to mask my identity while online, even when I was younger and stupider than I am now. Hell, up until this year I didn't even bother to censor anything I said online. Unfortunately, now that I have the reputation of a business to worry about I have to be far more careful, but it's still not that big of a deal.

Life is about trade-offs. You trade some anonymity for some convenience or a useful service. Being anonymous on the Internet, in the sense of nobody knowing your true identity, hasn't really gotten any harder. Sign up for whatever you want, just don't use your real name. Pick some kind of innocuous handle and use it for all the inter-connected services you need and make sure those services don't also connect that ID with your "real" one.

</comment><comment><USER8> Four very different thoughts here...

1.There is precedent for criminal convictions of pretexting as part of some larger criminal social engineering act. Personally, I think bullying is a stretch. It's a feature of the Internet, and if a person can't shrug off anonymous Internet bullying then that person has deeper psychological problems.

2.Should go back and re-examine (and possibly overturn) all criminal cases in which pretexting and/or false identities were used by the authorities? If there is precedent that this behavior is illegal, then we need to reinforce that law enforcement tactics are not above the law.

3.The shell of anonymity is only safe when it is perfect -- leaks create the opportunity for blackmail. In many situations it is more important that you are not in a position to be blackmailed, than to disclose any 'undesirable' behavior or association.

4.How could this case stand on appeal? Didn't the judge essentially interpret breach of contract into criminal law? MySpace obviously granted Ms. Drew's account -- her access to the system could not have been "unauthorized" as claimed in the wire fraud charge. Most contracts and TOS have pretty clear terms about what happens when one party breaches, so this should have been a simple case of "you broke the TOS, we closed your account, as stated in the TOS." In my opinion, the more serious crime here is that the judge decided he could usurp the legislature's power and turn random contract text into criminal law.

</comment><comment><USER9> This article seems to draw some big conclusions from seemingly little research. If the author had used Yahoo's OpenId IDP they would know you can log in as "yahoo.com" and then choose a site specific anonymous OpenId.

That and the charges in the court case being reffered to was just an upholding of the TOS. Hardly a landmark hearing.

</comment><comment><USER6> Are there any other articles that detail exactly how this ruling makes it 'illegal' to have fake identities online? I have my doubts and at the very least would like to read more.

<comment><USER10> And the other, related question: just how do "they" propose to stop us? Did I commit a criminal act when I signed up to HN using "m0nty" rather than my real name? Am I in fact trying to impersonate the other HN user "monty"? Does the fact that my real name is also shared by a moderately well-known UK politician mean I am, de facto, impersonating him?

As your question implies, I think it's the bullying, not the anonymity, which was the issue in the court case.

<comment><USER6> [http://www.marketingvox.com/watershed-ruling-in-myspace- suic...](http://www.marketingvox.com/watershed-ruling-in-myspace-suicide-case- may-criminalize-fake-net-personas-042175/)

This link would seem to indicate that it was not, in fact the bullying but the false identity that they convicted the defendant of.

<comment><USER10> I still think the bullying was the issue. There was much talk when the story came out that (in point of law) an actual offence might not have been committed. So I think this represents the court casting about for _some_ reason to convict, on some grounds, owing to public clamour. But does this set a precedent which will lead to the death of online anonymity? Not in itself, and it will be interesting to see if any other cases follow on from this one.

</comment></comment></comment></comment><comment><USER11> I wonder what makes them think that online anonymity still exists for 99% of users.

</comment><comment><USER12> Long live 4chan.

Anonymity and a lack of taxes & bureaucrats is what makes the internet wonderful...and sometimes awful.

<comment><USER13> Yeah. I don't see 4chan and its ilk disappearing any time soon.

You can't have wonderful things without awful things. Things that would make one hard make the other hard as well.

<comment><USER12> I hope you're right.

Agreed. And I think the wonderful in this case far outweighs the awful.

<comment><USER13> There was a comment from Reddit from a kid who grew up with 4chan. It fascinated me. And it showed me just how different my generation will be from any one before it.

[http://www.reddit.com/r/self/comments/7f8x3/hey_reddit_whats...](http://www.reddit.com/r/self/comments/7f8x3/hey_reddit_whats_the_creepiest_thing_youve_ever/c06imuu), if you want to read.

<comment><USER14> Saw it coming from a mile away, before it came near. Nobody can write that much about 4chan without doing it.

<comment><USER13> Somehow, it came across as sentimental to me. This was somebody reminiscing about a place that he saw the decline of. Then, I find the oddest things sappy.

</comment></comment></comment></comment></comment></comment><comment><USER15> Why don't we wait and see how people react to these new changes?

Also, just as long as I can view all the data "they" have on me, then I'll be cool with it.</comment>


Why Housing Is About to Eat the US Economy - <AUTHOR> http://csen.tumblr.com/post/145455151989/why-housing-is-about-to-eat-the-us-economy <comment><USER3> This article misses the forest for the trees - the question of why we have a housing deficit in the first place. And it's not because thousands of coastal cities forgot to build housing and only the author noticed. It's because they're mostly run by NIMBYs who've spent decades actively opposing new housing construction near existing jobs centers. So I don't know how the author gets from "we have a deficit" to "therefore there will be a construction boom." As long as the city governments remain controlled by NIMBY homeowners, there will be no housing boom in coastal cities.

</comment><comment><USER4> This blog post sounds too simplistic.

Firstly there is no shortage of housing, there is a shortage of housing in _relation_ to where people work.

The housing crisis that this person speaks of can be solved if there was much more infrastructure that allows business to thrive in other parts of the US. Sensible Law, access to capital, access to good transport network, access to good educational institutions . .

You just do not put programmers in a room to generate software - <USER2> are there to improve their real life just like everyone else.

<comment><USER5> It seemed that this was implied. People are increasingly more educated and jobs requiring educated workers are concentrated in a handful of cities as those cities benefit from network effects.

<comment><USER6> From what I've seen, most companies are pretty stubborn about remaining in those coastal cities. As long as they can keep finding employees there, they don't have too much incentive to move to better areas with greater supply of labor. Instead, they'll just lobby congress for more H1Bs.

</comment></comment></comment><comment><USER7> So the opportunities here are a) make house construction less labour- intensive, and b) bring more women into construction work.

Part a) sounds like a call to make building more modular, with larger and larger things made in factories rather than on-site. For part b), maybe training programs. Have them women-only so they're less intimidating to women looking to enter a very male profession, and make them cheap or free up front, with tution payable only by those who actually find relevant work.

<comment><USER8> I'm all for diversity but specifically targeting people who are smaller on average for employment in a physical labor job seems just plain dumb.

Construction labor isn't "lift a ~50lb 3U chassis by yourself from time to time" Several times per day you'll lift objects that are 50lb or heavier, unwieldy and might have to be in an odd/precarious position to do, plywood, packs of shingles, bags of concrete, bathroom fixtures, etc come to mind. Some days you won't do anything too strenuous, other days you'll spend 4hr unloading packs of laminate flooring. Not that individual women can't do that stuff but at a statistical level they're working harder to do so and it manifests itself as increased wear on equipment (workers). Sure you can carry a cord of wood in a Tacoma and it gets the job done but if you have a fleet of Tacomas and F150s carrying cords of wood day in and day out you'll eventually crunch the numbers and go with all F150s because for a given amount of work the bigger truck holds up better, people are no different except that it doesn't cost more up front to get the bigger truck when they self select for the job.

</comment></comment><comment><USER6> I think another thing this article points out quite noticeably, is the coming Educational Bubble. There's a whole lot of people running around with fancy degrees and seemingly not enough blue collar workers. One would hope we could innovate our way out of that by automating these jobs but I don't think technology is the limiting factor there.</comment>


NextRadio App now utilizes built-in FM Radio chips in over 200 Android devices - <AUTHOR> http://nextradioapp.com/supported-devices/ <comment><AUTHOR> ... including the Samsung Galaxy S7. The submittal link is the device roster; here[0] is an article about Samsung joining the fray.

I just installed it on my Galaxy S7, and I'm _very_ impressed so far. The only permission it prompted me for is location (which I disable anyway), but you can Deny that -- it then prompts you for zipcode.

It gives you a menu of FM stations in your area (with some odd duplication and some confusion of icons) from which you can build a favorites list.

It also has a "Basic Tuner" mode so you can tune like a regular digital tuner. This is valuable if you want a station not in their menu (my own immediate need for this is for the low-power FM transmitters for TVs at the gym).

You can select "FM Only" mode to completely avoid streaming and use only the FM tuner (to save mobile data).

I have no affiliation with these people; I was completely unaware that the long-present but unusable FM chip was being liberated at all until 15 minutes ago. My last Android with usable FM was my old HTC from 7 years ago.

[0] [http://www.androidpolice.com/2018/01/10/samsung- smartphones-...](http://www.androidpolice.com/2018/01/10/samsung-smartphones- will-fm-chip-enabled-us-canada-partnership-nextradio/)</comment>


How often to update third party libraries? - <AUTHOR> How often do you update your third party libraries? I have found that where I work we are a few versions behind on some python libraries.
As a follow up question, how do you ensure that there will be no unintended consequences? We have a ton of unit tests, but are there any additional recommended tests to do?
I am primarily using python, but I assume the same issues apply regardless of the language. I did some research and found a few things from over 5 years ago, so I wanted to see how the hacker news community solves this issue. <comment><USER2> I mostly program Java but I think the issues are similar with Python these days.

I try to keep libraries up to date pretty regularly, probably checking for new versions every one or two weeks, particularly when any area of the system comes to my attention.

The worst problem, I think, is third party libraries that depend on other third party libraries.

Last Friday, for instance, I was writing an AWS Lambda function and I found that the libraries for writing a Lambda function depend on a certain version of the SDK for Java core library that is three minor versions behind the latest.

If you use another SDK for Java library that is at the wrong version, you're going to end up with a mismatch between the core library and one or more of the libraries that depend on the core library and this causes the serialization system to fail at run time.

Another case is that the code for HDFS is stuck around Guava 11.0.2 whereas Guava is at 19 these days. Updating things like that in the Hadoop code is nasty since Hadoop is a house of cards that is barely held up by unit and integration tests. Overall I find Guava, Jackson and Http-Commons are responsible for the lion's share of breakage.

So I keep a list of libraries that I know are high risk and likely to have problems.

As for "unit" testing, it depends what kind of tests you are writing. Strictly speaking, the purpose of "unit" tests is to test your own code, not test your dependencies. In fact, it's not unusual for unit tests to mock the dependencies -- that is, test that your code calls the dependencies as specified and that it reacts properly when it gets the responses from the dependencies that you expect. This kind of test won't catch problems caused when the behavior of the dependencies change.

Now a true "unit" test should run fast and not have a lot of baggage so there is a case for it, but what does catch problems caused by version mismatches are "integration" tests that typically are more of a pain to write and will run a lot slower.

</comment><comment><USER3> I wrote a function in Fabric that upgrades one package at a time to the latest version, commits it on a dedicated branch, and pushes to the git server.

If the unit tests pass, we continue with it and do additional manual testing as might be necessary. The manual testing is pretty library specific, but for example, upgrading requests I might check that SSL seems to be working fine; upgrading pytz, I might check for weird timezone edge cases. It's nice to have a dedicated QA / staging server that you can do this on. The best advice I can give is to do it frequently. Small upgrades are easier than big jumps, also, not every package uses semantic versioning, so while breaking backwards compatibility is rare, I'd say it happens with 10–15% of libraries in my experience (mostly building APIs and web apps).

<comment><USER3> It might be useful for me to add a polar opposite perspective here too — I have one (senior engineer) friend who, for personal projects, does not pin dependency versions at all. In other words, his requirements.txt looks something like:

        django
        requests

Instead of:

        django==1.9.9
        requests==2.11.0

I can't recommend it for production projects, but it is a curious way to force yourself to live on the edge.

Still, I would encourage pinning specific versions when you go from local environment to prod.

</comment></comment><comment><USER3> Another point on upgrades is to make sure you're actually running the latest subversion of Python 2.x / 3.x on your server(s).

</comment><comment><USER4> I use Dependency CI [1]. But to be honest, I have yet to benefit from alerts on vulnerabilities in packages, etc…

[1] : [https://dependencyci.com](https://dependencyci.com)</comment>


New things in clang land (5.0.0) - <AUTHOR> http://www.productive-cpp.com/new-things-in-clang-land-5-0-0/ <comment><USER2> Hmm, the first example kind of bugs me. I get why they are doing it, but I feel like there should be a better solution. Instead of cramming as much optimization into undefined behavior as you can, maybe don't allow the undefined behavior in the first place? I think if I had something like this accidentally in my code then I would want it to tell me that something's wrong instead of just giving bizarre results.

<comment><USER3> But it might not be undefined behaviour at compile-time. Consider if instead of just 'f(nullptr)', the call in the main() function had been 'f(getchar() == 'x' ? nullptr : &x)' (where x is some variable in scope). It cannot be known until run-time whether a NULL pointer is being dereferenced, but since the pointer inside of 'f()' is being dereferenced, the compiler can assume that it will not be NULL.

<comment><USER2> Sorry, I was referring to the program as a whole. I get why it did the optimization for that one function in particular, but in this case, it can be proven that the function call will result in undefined behavior and (in my opinion, not necessarily the way the C standard works) it should be flagged or not compiled.

<comment><USER4> Do not put your faith in whole program optimization. If it can be proven that the function call will result in undefined behavior, the compiler will assume that the function will never be called. If it can be proven that it will always be called, the compiler is free to assume that the program will never be run, and optimize the whole program down to nothing.

That is, undefined behavior propagates not only forwards (if you dereference a pointer, from them on you can be sure that it's not null), but also backwards (if you dereference a null pointer, that's a contradiction since null pointers can't be dereferenced, and the contradiction can only be resolved if the statement is unreachable).

<comment><USER5> > If it can be proven that it will always be called, the compiler is free to > assume that the program will never be run, and optimize the whole program > down to nothing.

Does that happen when the compiler assumes you'll never take branches that lead to UB, and then finds a path through your branches that more or less does nothing? Or can it happen even if you're not branching at all?

Also, say my program is

        int main() {
            printf("hello world\n");
            do_some_UB();
        }

Is the compiler really allowed to produce a program that doesn't print?

<comment><USER6> > Does that happen when the compiler assumes you'll never take branches that > lead to UB, and then finds a path through your branches that more or less > does nothing? Or can it happen even if you're not branching at all?

Yes and yes. How far it will propagate these backwards depends on the compiler.

> Is the compiler really allowed to produce a program that doesn't print?

Yes. A program which contains UB is illegal, there are no guarantees about any of its behaviour, including behaviour which precedes any possible actual invocation of UB, this is pointed rather clearly by the standard:

> However, if any such execution contains an undefined operation, this > International Standard places no requirement on the implementation executing > that program with that input (not even with regard to operations preceding > the first undefined operation).

<comment><USER5> Good heavens! :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> actually address sanitizer has been ported to gcc, so it is no longer a clang only thing. last time i checkted it did not not support stack switching (cooperative scheduling). Is there any change in this area?</comment>


Efficient Tabular Storage - ah- http://matthewrocklin.com/blog/work/2015/08/28/Storage/

<comment><AUTHOR> It looks like the NYCTaxi dataset is here:

[http://www.andresmh.com/nyctaxitrips/](http://www.andresmh.com/nyctaxitrips/)

Some background on this data:

[http://chriswhong.com/data- visualization/taxitechblog1/](http://chriswhong.com/data- visualization/taxitechblog1/)

And data for 2014 directly from the city:

[https://data.cityofnewyork.us/view/gn7m-em8n](https://data.cityofnewyork.us/view/gn7m-em8n)

</comment><comment><USER2> Vertica has all those performance enhancements, great DB can't recommend because of pricing :(

<comment><USER3> kdb+ answers same description.

And it's a 300KB executable with no dependencies (other than glib/MSVCRT).

</comment></comment><comment><USER4> How do databases like MySQL store data efficiently for querying? It seems like something like protobuf would do well here, though you'd need to generate code for each dataset.

<comment><USER5> Typically they use row-oriented binary storage, optionally with individual columns or subsets of columns duplicated into indices for fast querying. Have you tried protobufs? How many hundreds of megs per second do you get? I think it is remarkably slow on the scales we're talking about here.

</comment></comment><comment><USER6> How is it different from HDF5 (h5py and pytables)?

</comment><comment><USER7> Great share

</comment><comment><USER8> This is super interesting, thanks!</comment>


Redis 2.2.0 RC1 is out - <AUTHOR> http://antirez.com/post/redis-2.2.0-rc1-is-out.html

<comment><USER3> This is great news! I'm particularly interested in these changes:

* Sorted sets are now less memory hungry.

* Now write operations work against keys with an EXPIRE set! Imagine the possibilities.

I use Redis for many, many things. In fact, I realized the other day that without it, I probably wouldn't still be bootstrapping. Not because I couldn't use something else, but because _I wouldn't enjoy the work nearly as much_. Starting a company is a long, arduous road and finding joy in the work is really important.

<comment><USER4> Out of curiosity, what do you use it for? I use it for caching and session storage, but I still keep postgres for the heavy lifting. I _love_ that combination, especially the fact that I can put session (and other non- essential) data into redis and they'll be persisted and available in milliseconds, but it can crash and I lose nothing.

<comment><USER3> I use sorted sets for a lot of stuff (timelines mostly). A few other examples are job queuing, error logs (I write all error messages to a fixed length list), and rate limiting. Actually that last one works pretty well. The key is something like:

      v1:limiter:UNIQUEID:TYPE:HHMM

where UNIQUEID is a username or IP address, etc, TYPE is the specific action to limit (login, signup, etc), and HHMM is a quantized timestamp (e.g. 1205, 1210). You increment this key every time the action occurs and use an expire to keep it clean. It's not perfect, but it does the trick for most usecases.

I also make pretty judicious use of databases to group different classes of data together. Primarily into 3 groups actually: transient data, persistent/customer data, and internal stuff like the error logs and job queues. That way I can dump data at different intervals for each group (I use a tool I wrote called redis-dump: <https://github.com/delano/redis-dump>).

<comment><USER4> Thanks, I'm just gathering use cases to see if people are using it as a replacement for a relational database. I don't think I would, I think it's not the best tool for that job.

Thanks again for the data point!

</comment></comment></comment></comment><comment><USER5> Redis is one of the best pieces of software I've used in the past few years. I use it so many ways in production it's loco. Having flexible data structures besides (string)k, (string)v is a huge boost.

<comment><AUTHOR> Thank you, what is interesting about 2.2 is that we discovered that also _operations_ against the plain old strings can enhance a lot the power of Redis.

For instance GETBIT/SETBIT will turn strings into a large bitmap. While GETRANGE/SETRANGE makes users able to use strings as arrays for fixed length data.

I think there will be big use cases for this new commands, as it is possible to store a lot of data in little space, with O(1) random access.

<comment><USER6> These additions make compact data storage and access much simpler from our perspective. Instead of loading and parsing an entire entry, we have access to _just_ the data we want.

Nice work, Salvatore. Seriously.

</comment></comment></comment><comment><USER7> I love Redis and the new features rock! I use Postgres and Redis in tandem and it is a great combo. Postgres for all the stuff SQL databases are good at and Redis for all the stuff they are not.

<comment><USER8> Really? What stuff is PostgreSQL not good at, exactly?

<comment><AUTHOR> trivial example: lists.

You have items that you want to retrieve (LRANGE) in the same order, or in reverse order you push inside (LPUSH / RPUSH). Usually you need the latest items (think to timelines), and all this should be FAST and efficient.

In Redis this is trival to model. SQL is so far from modeling this in the right way that you need an "ORDER BY" statement for all your LRANGE-alike query even if there is nothing to order, you want to retrieve things in their natural insertion order.

Sorted sets can model a zillion of use cases in the same way. They are ordered per score _on_ insertion. You can ask for ranges, for the RANK of an element, and things like this, in a matter of microseconds per queries. Completely impossible to model with SQL in a natural and fast way.

Just to cite another one (but there are tens of cases like this), bloom filters anyone? With Redis 2.2 you can manipulate a unique bitfield at the lower level, and even accessing to the sub bytes if you wish, with very efficient operations.

<comment><USER3> I use sorted sets quite heavily for timelines. And it's awesome.

One usecase I can't figure out, is storing/querying IP address ranges. Is there a natural way with Redis to check if a number is within a given range? (without storing every value and without multiple calls)

<comment><AUTHOR> There is a very easy way to model this, just convert the IP address into a 32bit integer! :) Then use ZRANGEBYSCORE to query.

<comment><USER3> What about the other way around though? Storing the range, say, 220.127.116.11 - 126.96.36.199, and then querying to check if an address is in that range.

The only way I can think to do this is to store the range as two integers, as you suggest, and query twice. The first to find the nearest lower bound for an IP and then a second time for the upper bound.

</comment></comment></comment></comment></comment></comment><comment><USER9> I've been using Redis for 2 months now. It's a real pleasure to use.

I especially like the simple protocol. It's possible to write a simple client without any external libraries within days --maybe hours if you're really good ;). Try to do that with SQL or MongoDB (Javascript parser anyone?).

<comment><USER10> i think mongodb fills a need that isn't covered by redis or sql -- people still need semi-relational data that can scale beyond 100M rows.

redis is a nice memcached or scalable data structures replacement. we use it as a simple rabbitmq replacement.

<comment><USER11> why did you have the need to replace rabbitmq at all? (I love redis, but I'd expect using something designed specifically for X is better than using something else that also kind of does X)

<comment><USER12> RabbitMQ is a complex beast and was, last time I used it at scale, ridden with problems under load. We had extremely serious issues like spontaneous lockups.

We eventually abandoned it when we realized our queueing needs could be modeled in Redis. In a way that we fully control, understand and can debug. And it wasn't even much work!

I'd argue this is highly preferable unless your project really _needs_ complex routing of the kind that only AMQP can provide. Most projects don't.

<comment><USER4> I use redis to replace RabbitMQ as well, but it's all abstracted away in Celery. A question: Don't you need polling when you use redis in this way? Does it have some sort of notification functionality, apart from the recently added pubsub?

<comment><USER12> Our queues are implemented using BLPOP which blocks until items arrive, so no polling is needed.

The newer pub/sub stuff promises to be very useful, too, but we didn't have a use-case for that, yet. Our app generally needs messages to persist until they are consumed.

What I can say however is that none of the concerns we initially had about performance/scalability held any water.

We are still running on a single redis instance (plus a slave) on a moderately sized server and it happily processes 100 messages/sec average between 4 producers and a varying number of consumers (20-100).

To add insult to injury our monitoring metrics show that this isn't even a worthwhile load for redis. The server is nowhere near breaking a sweat, the CPUs barely drop below 90% idle, there's no disk i/o to speak of, and the memory usage is more than reasonable (plenty headroom for our purposes).

Thus "just throw it at redis" has long become a common stopgap meme in this particular project. And so far we didn't have to replace any of these supposed stopgaps with something else.

<comment><USER4> Ah, very nice. It seems that I shouldn't have any qualms about throwing redis at most of my problems then, thanks!

<comment><USER10> in case you're wondering, we use a simple queueing thing called redpack:

<https://github.com/luxdelux/redpack>

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> After doing some stability testing, I'm now running 2.2.0 RC1 in production on <http://wasitup.com>

Unwise, maybe. But thanks to the ease of doing this upgrade on several nodes with Puppet I couldn't help myself.

<comment><AUTHOR> Jeremy Zawodny is also running 2.2.0 at Craigslist, so it's really the case of saying: you are in good company :)

</comment></comment><comment><USER14> Nice work! I'm also a big fan of Redis, use it extensively as a front-end smart caching layer in-front of an RDBMS. Compared to DB calls each operation is essentially a NoOp. Just like turning nitro on your web app - <USER2> speed-up!

</comment><comment><USER15> And he (antirez) just said:

"oops, just found a bug on RC1 (setbit/getbit) I guess it's going to be RC2 soon ;)"

<comment><AUTHOR> sorry false alarm, no bug :)

</comment></comment><comment><USER16> Does anyone actually use the replication in Redis to improve durability?

</comment><comment><USER17> What does LPUSHX/RPUSHX do differently?

<comment><AUTHOR> Push if list exists. This are the operations that are at the base of the twitter Redis caching implementation.

This operations are useful every time you want to use Redis for caching timelines, as the idea is: if this user is already in cache (at least a single item exists) then push against the cache, otherwise not.

<comment><USER17> Ah, thanks for the explanation. I'm actually exploring Redis for storing timelines!

Twitter's Redis-backed timeline storage is here, if anyone is interested: <https://github.com/twitter/haplocheirus></comment></comment></comment>


Ask HN: Favorite technology predictions in science fiction? - <AUTHOR> I loved @ajus's comment about Stansislaw Lem's ebook prediction in 1961[1].<p>Another favorite is E.M. Forster's prediction of video calling and more in 1909 with The Machine Stops[2]. "But it was fully fifteen seconds before the round plate that she held in her hands began to glow. A faint blue light shot across it, darkening to purple, and presently she could see the image of her son, who lived on the other side of the earth, and he could see her."<p>[1] https://news.ycombinator.com/item?id=18896513 [2] http://archive.ncsa.illinois.edu/prajlich/forster.html <comment><USER2> The Diamond Age (Neal Stephenson, 1995) had many eerily prescient visions but I've always liked some of the more subtle ones: the "Neo-Victorians" who put extra value on handmade goods in a world where anything can be printed foreshadowed Etsy and the modern "artisanal" everything, the use of pictogram based language foreshadowed rising use of emojis, the Primer as a source of education accessible to anyone foreshadowed Khan Academy (and maybe YouTube's how-to-anything more generally).

<comment><USER3> Another of his books Snow Crash, which is kind of precursor to Diamond Age had some pretty interesting predictions.

I read somewhere stuff like Second Life, Google Earth etc were directly inspired by Snow Crash.

There's some other themes in Snow Crash we are just starting to see as well:

-Government difficulties with taxation of digital goods and currency

-Companies competing to attract drivers/messengers etc (basically the uber/gig ecconomy)

-For profit surveillance and commercialization of intelligence data

<comment><USER4> > _-Government difficulties with taxation of digital goods and currency_

Cryptonomicon covers this, too. Arguably so does REAMDE.

</comment></comment></comment><comment><USER5> Asimov in "The Caves of Steel"; Earth has a huge population that lives in huge cities, therefore it needs powerful computers as it has to track/police its massive population. Asimov guessed in 1953 that computers are a surveillance tool!

"R. Daneel came to his desk with a sheaf of papers. "And those are?" asked Baley. "A list of men and women who might belong to a Medievalist organization." "How many does the list include?" "Over a million," said R. Daneel. "These are just part of them." "Do you expect to check them all, Daneel?" "Obviously that would be impractical, Elijah." .... Baley said, abruptly, "How did you get your list?" "It was a machine that did it for me. Apparently, one sets it for a particular type of offense and it does the rest. I let it scan all disorderly conduct cases involving robots over the past twenty-five years. Another machine scanned all City newspapers over an equal period for the names of those involved in unfavorable statements concerning robots or men of the Outer Worlds. It is amazing what can be done in three hours. The machine even eliminated the names of non-survivors from the lists." "You are amazed? Surely you've got computers on the Outer Worlds?" "Of many sorts, certainly. Very advanced ones. Still, none are as massive and complex as the ones here. You must remember, of course, that even the largest Outer World scarcely has the population of one of your Cities and extreme complexity is not necessary."

<comment><USER6> The comment about "three hours" was of course supposed to impress you with the sheer speed of it- but I can't help thinking it would take only minutes today!

<comment><USER7> Unless you worked for some orgs I've worked for where info was siloed in different systems that didn't talk to each other well, and nobody wanted to spend the resources to unify or coordinate it all.

</comment></comment></comment><comment><USER8> Niven and Pournelle predicted unrepairability in The Mote in God's Eye -

        Renner [said] "I remembered something. Have you got your pocket
        computer?"

        "Certainly." She took it out to show him.

        "Please test it for me."

        Her face a puzzled mask, Sally drew letters on the face of the
        flat box, wiped them, scrawled a simple problem, then a complex
        one that would require the ship's computer to help. Then she
        called up an arbitrary personal data file from ship's memory. "It
        works all right."

        Renner's voice was thick with sleep. "Am I crazy, or did we watch
        the Motie take that thing apart and put it back together again?
        You know that's impossible, don't you?"

        She thought it was a joke. "No, I didn't."

        "Well, it is. Ask Dr. Horvath." Renner hung up and went back to
        sleep.

        Sally caught up with Dr. Horvath as he was turning into his cabin.
        She told him about the computer.

        "But those things are one big integrated circuit. We don't even
        try to repair them."

<comment><USER9> Your quote is unreadable on mobile due to your abuse of the code tag for quoting.

</comment></comment><comment><USER10> Not retrofuture, but I can't stop thinking about the drug described in Nexus by Ramez Naam (and I read the book years ago).

The drug binds to individual neurons allowing an external system to manipulate the brain and e.g. overlay an OS GUI on your vision, enhance sensory input, basically make you a programmable superhuman.

The trilogy is good but mostly because it's fun to think about this tech. If you're at all into cyberpunk you'll really enjoy it.

<comment><USER11> I came across the "overlay an OS GUI on your vision" ideia in a series I watched some years ago. I've been trying to google the title for an hour but I can't seem to find it anywhere.

It was about successful "neuralink" implants that did the whole brain-computer interface work but one day there was a glitch/virus/broken update and anyone with the chip who got into contact with the internet would update, fry their brains and die so I remember people hiding in what I think was an underground garage.

Does anyone remember this one?

Edit: It was called H+ [https://www.youtube.com/watch?v=ZedLgAF9aEg](https://www.youtube.com/watch?v=ZedLgAF9aEg)

</comment></comment><comment><USER12> The thing about Lem is that he was reading a lot (I mean, a lot) of scientific journals and later scientific papers (in an interview with him he mentions Soviet "Priroda", "Scientific American", some French and German journals of this type), plus books of Dawkins/Hawking/Penrose /Shklovsky/Soviet scientists etc., and all of that in 60's-70's-80's

Therefore his predictions are not that much original research/predictions, but rather a good compilation and clever choice of ideas which had appeared earlier in various sci papers. I suspect his quite striking description of "Kindle reader" from 60s was based on some previously read paper/article. Still, it's a very very good prediction as for 60's.

To add to his "predictions": Golem XIV is a philosophical desciption of technological singularity (from 80's), and his Summa Technologiae (from 60's) tackles a ton of then veeery novel stuff, like Machine Learning (a precise description even for today's standards), SETI research, VR, AI, and all of that in a "scientific" way, i.e. concreete and directly based on then published papers, and not simply made as an effect of extrapolation of then current trends (sort-a what Asimov liked doing)

</comment><comment><USER13> Vernor Vinge, everything but most immediately the notions if security hygene in "Rainbows End". Wearable augmented reality is ubiquitous, so anyone who corrupts your digital life can really impact not just your credit card but your perception of reality... So people develop security habits akin to personal hygiene in response.

You have to love a book where one of the superweapons is a top level security cert revocation...

</comment><comment><USER14> Mind uploading predictions are fascinating (Edmond Hamilton, 1936; Isaac Asimov, 1956, 1957; Arthur C. Clarke, 1956; Bertil Mårtensson, 1968).

Also predictions about automating boring and mundane human tasks:

Waldemar Kaempffert, 1950: "When Jane Dobson cleans house she simply turns the hose on everything... After the water has run down a drain in the middle of the floor (later concealed by a rug of synthetic fiber) Jane turns on a blast of hot air and dries everything."

"With the advent of frozen foods in the shape of bricks, cooking as an art is only a memory in the minds of old-people. A few die-hards still broil a chicken or roast a leg of lamb, but <by using ingredients in frozen bricks> Jane Dobson can serve a steak in less than three minutes, and an elaborate multi-course meal never takes more than half an hour to prepare.

"discarded linens and underwear are recycled and turned into candy."

Isaac Asimov, 1964: "Gadgetry will continue to relieve mankind of tedious jobs. Kitchen units will be devised that will prepare 'automeals,' heating water and converting it to coffee; toasting bread; frying, poaching or scrambling eggs, grilling bacon, and so on."

<comment><USER12> About Asimov's predictions: those (incl. listed above) either haven't yet materialized, or are rather funny from today's perspective (Robotics, AI and "psychohistory" as described in the Foundation series). He's been rather poor futurologist IMO, contrary to the level of his popularity.

</comment></comment><comment><USER4> Larry Niven predicted organ harvesting from political dissidents, as well as black-market organ transplantation more generally. (See his Gil the ARM stories, as well as another short story whose name I can't recall :/)

<comment><USER15> He did miss out on tissue culturing and organ printing, though!

</comment></comment><comment> open-source-ux In the 1982 film _Star Trek II: The Wrath of Khan_ , Captain Kirk accesses classified information in the ship's computer through a retina scan. This was well before the word 'biometrics' became a more familiar term. The filmmakers had the tricky task of how to represent a retina scan in a highly visual way. So what we see is a flythrough inside Kirk's eye until the retina is reached and verified.

Douglas Adams' _The Hitchhiker 's Guide to the Galaxy_ (HHGTTG) is a pocket electronic book that contains all the accumulated knowledge about the universe. In the BBC TV series broadcast in 1981, the HHGTTG was represented by a 'computer graphics' aesthetic which was entirely hand animated. The animations still hold up brilliantly (and are better than the animations in the 2005 film).

</comment><comment><USER16> Robert Heinlein, 'Between Planets'

'A few hundred yards further on Lazy shied again, not from a snake this time but from an unexpected noise. Don pulled him in and spoke severely. "You bird- brained butterball! When are you going to learn not to jump when the telephone rings?"

Lazy twitched his shoulder muscles and snorted. Don reached for the pommel, removed the phone, and answered.'

Nothing unusual there - except that this was published in 1951. Heinlein was extrapolating one particular technology trend and got it spot-on, 60+ years before it happened.

There are so many others - H.G.Wells' 'World Brain' for one (aka the Web)

<comment><USER8> _Space Cadet_, 1948, references pocket phones as well, with this funny bit about avoiding them -

        Tex Jarman looked at him understandingly. "Your folks always worry, don't they? I fooled mine -- packed my phone in my bag."

The phone usage in Between Planets involved call signs and was clearly projected from Ham radio practices at the time.

My favorite phone technology _miss_ was their total absence from Gibson's _Neuromancer_, something that he's a little chagrined about, and tired of hearing about, too . . .

<comment><USER4> Your quote is very hard to read even on desktop - can you surround the quoted text with asterisks instead of indenting it?

</comment></comment></comment><comment><USER17> In Ender's Game there is a description of an Ansible, a personal handheld device used to communicate, join to public forums, read news and influence in political discussions.

<comment><USER4> That's not what the Ansible was, but I don't want to actually describe it in case someone here hasn't read Ender's Game yet, since it's pretty pivotal to the plot.

Also, Ender's Game was written in 1984 - the idea of networks wasn't so new then, but I agree that Card had a very prescient take on Locke and Demonsthenes' influence over world politics.

</comment></comment><comment><USER18> Fahrenheit 451 managed a few disturbing ones:

\- The Hound, an automated drone for assassinations

\- Seashells, in-ear music playing

\- Large flat-screen TVs playing reality soaps that the viewer interacts with

</comment><comment><USER19> I _think_ you mean stuff that has mostly come to be but first I wanted to throw one out that I really want, an ansible. If we could find a way to communicate faster than light (especially if we could figure out instantaneous communication regardless of distance) just imagine what it would do for space exploration! Instead of waiting 2 years to retrieve seconds of data recorded as New Horizons sailed by Ultima Thule we could have the data real-time or nearly real-time.

If you could figure that out, I think it alone would result in us learning more about our solar system in a couple of years than we have to date. You could send small probes at pretty much everything you wanted and either have a very small amount of buffer memory or just transmit it real time back. You could also have real-time, or much closer to real-time, control of rovers!

Stuff that has come to be:

\- Small portable computers (tablets, smart phones)

\- Personal communicators (cellular telephones, smart phones)

\- 3D printing

\- Video phones

\- Westinghouse M-27 Phased Plasma Pulse Rifle for fighting Sky... wait we don't have this one yet.

</comment><comment> King-Aaron It's not so much a technology prediction, but Back to the Future predicted the "Biff future" pretty well.

<comment><USER7> The character of Biff was partly influenced by "that person", according to Wikipedia. (Warning: Naming the person gets one instant negative moderation points.)

</comment></comment><comment><USER20> I remember when I was very young, back around 1960, that I said it was very likely that we'd have space stations, rockets to the moon, hand-held computers and excellent robots. But the one thing we'd never ever have, because of the Inverse Cube Law, was any sort of Ray Gun.

Just to spite me, I'm sure, that was the very first of many Sci-Fi predictions that became reality for me. I read a write-up on lasers in Popular Electronics as early as 1963.

Popular Electronics, July 1963 "Lasers -- The Light Fantastic"

</comment><comment><USER21> Star Trek predicted automatic sliding doors and flat screen TVs

<comment><USER22> I hope some day we invent Tricorder as well!

<comment><USER23> I wish. Our smartphones would be halfway there if manufacturers could be bothered to include a few more sensors.

Alas, I don't see tricorders happening soon, because they're "action movie" tools. That is, looking from economical and social POV, almost every use case for a tricorder would be better handled by a team of specialists with heavy equipment, and _not in a hurry_. Real life is boring this way, and technology in the real world isn't about empowering indivduals - at least not in any way that conflicts with the mundane.

</comment></comment></comment><comment><USER24> In Fred Hoyle's book The Black Cloud you could argue the prediction of the internet. He proposes a radio based data network with IIRC both compression and encryption.

[https://en.wikipedia.org/wiki/The_Black_Cloud](https://en.wikipedia.org/wiki/The_Black_Cloud)

The book is only so-so as a novel but it is compelling in terms of ideas.

</comment><comment><USER25> I have no idea where the idea originated from but you see it sometimes in science fiction, that is the idea of mutable identity, from a superficial point of view. In other words the concept of anyone being able to represent themselves as they would like to through implants or body modification.

</comment><comment><USER26> Another fascinating question is this: How much influence does science fiction have on current technological innovations ? Are there inventions that have been directly inspired by science fiction concepts and novels. (like ebooks mentioned by OP in his post)

</comment><comment><USER27> Clarke's "The City and the Stars"

Technologically enabled immortality (in an interesting manner).

Massive, crystalline data storage.

Immersive gaming, including the negative, subsuming aspects of same.

The individual as radical.

The radical as an essential component of long-term planning and viability.

<comment><USER28> It seems the sci-fi trend for huge data storage back then was "crystals!". So were many of remote viewing devices, alien navigation systems and space fuel.

<comment><USER27> A comment on another thread, made about a day after my GP comment, mentioned an influential paper published in, IIRC, 1944 speculating on crystalline storage of complete human genetic information. (I'm assuming this would encompass a pre-double-helix understanding/conception of said data.)

That would tie into Clarke's story well (originally in several forms, that got consolidated into "The City and the Stars" with a 1952 copyright. And he would have been in a position (scientifically active) to have encountered it.

I don't know that any such thing happened. But, it was an interesting coincidence to run across that comment. (Sorry, I don't have it to hand.)

</comment></comment></comment><comment><USER29> Dickens, _A Tale of Two Cities,_ where conversations are being surreptitiously recorded in code, to be recalled later and used against people.

</comment><comment><USER30> Star trek communicators and ipads!

</comment><comment><USER31> Leonardo Da Vinci predicted helicopters and tanks.

What's the line between predicting and inventing?

<comment><USER32> Inventing is building a working device.

<comment><USER7> Not necessarily. Da Vinci had the basic concepts right, but many practical details were missing. "Half inventor"?

<comment><USER32> Yes, necessarily. The "many practical details" are usually the key to it working. For example, the details are why the Wright bros. airplane flew, and the others didn't. The same with the light bulb, the telephone, the Xerox machine, rocket engines, etc.

Maybe the Patent Office accepts concepts, but that leads to nothing but trouble. The real work to inventing is getting something to actually work. Anybody can have an idea, ideas are a dime a dozen.

<comment><USER7> Re: _Maybe the Patent Office accepts concepts, but that leads to nothing but trouble._

Perhaps, but definitions don't have to be practical nor rational. Vocabulary is typically driven by common usage (language), not by logic. I'm just the messenger.

<comment><USER32> If you want a dictionary definition, that's easy enough to find online.

<comment><USER7> I'm not sure what your point is then, to be honest. Yes, final products often take a lot of experiments and tuning. But I'm not sure all of that is "inventing" any more than testing software and fixing bugs is "inventing". When is tuning inventing and when is it not?</comment></comment></comment></comment></comment></comment></comment>