Show HN: Just Get 10 - <AUTHOR> http://veewo.com/games/get10/ <comment><AUTHOR> Here is a story I would like to share, about this game and its creator.

Months ago I came across this game called 2048 in HN, it's really popular fun game. Till now, I can see people playing it in subway all the time. I talked about this game in one of my social media timeline. One of my friends, my second startup's partner replied me. He told me their team created 1024, father of 2048. "Awesome!" isn't it? But this guy, Lans, didn't sound happy about the fact.

After some chat, I realized that they made this 1024 game from the idea of the game Threes, and the 2048 was created by a student who found 1024 interesting. However Lans' intention wasn't really for popularity or money, he is a serious dreamer. At that time, he and his partner Yop's young team was just founded, they wanted to build something elegant and fun. Lans likes the Threes, but it is not an easy game according to him, so he and Yop redesigned the game into 1024. They are a Chinese based team, HN isn't a language-friendly site for them. That's why when I suggested him to talk about it in HN, he said "it's fine, we can make something better anyway". Another thing made them upset was, I guess, some media or people think they were copycats. I just want say, do not overlook the work of simplifying and redesign, The addiction of 1024 or 2048 comes with reasons.

Today, Lans contacted me again, he told me that they just made another game, a better one. He wanted me to try it out and give some feedback. I tried, and again, I like it.

I think it is worth sharing, and I also want to help Lans and his team Veewo. Their efforts deserve to be acknowledged and encouraged. Hope you guys also enjoy this new game :)

<comment><USER2> Thanks Conan, I appreciate that you write this for us. I just hope people do love my game, that's the happiest thing for me.

</comment></comment><comment><USER3> Good!</comment>


Crazy Javascript drawing tool - <AUTHOR> http://mrdoob.com/projects/harmony/ <comment><USER2> We've seen this before...

<comment><USER3> It does seem vaguely familiar, somehow... (<http://www.thewildernessdowntown.com/>)

Doob's demos are quite inspirational. (<http://mrdoob.com/>)</comment></comment>


How London cycle hire usage varies with weather - <AUTHOR> http://reasonableapproximation.net/2015/08/19/cycle-hire-weather.html

<comment><USER2> I like graphics, but this has too many graphics.

If I understood correctly, the bike usage almost don't depend on the rain. This is very strange and unintuitive. Did I misread the article?

<comment><AUTHOR> I agree - if I hadn't been writing this to fit udacity's project evaluation specs, I would probably have included fewer. (Even as it is, I guess many of them should have been smaller.)

Bike usage depends noticeably on the rain, which is the only weather feature I discover that it does depend on. Rain causes about a 20% drop. But many caveats: abs(d.num.bikes) doesn't seem to be an especially good measure of bike usage; rain is binary, not quantitative; and I'm not sure how much to trust the rain variable anyway.

Also consider that lots of people use bikes for commuting, and may not have a good alternative. (I have reasonable alternatives, but the rain is basically never at a level that makes me take them instead of cycling.) I don't think I looked at how rain interacted with weekends, but I just had a look and rain causes about a 30% drop on weekends and 15% on weekdays.

          is.weekday  rain mean(abs(d.num.bikes))
        1      FALSE FALSE              0.4567856
        2      FALSE  TRUE              0.3115902
        3       TRUE FALSE              0.5343955
        4       TRUE  TRUE              0.4595437

<comment><USER2> Interesting. You may copy the graphic of the main result to the beginning of the page with these data, something like a long tl;dr with two or three paragraphs.

Reformatting all the article and graphs is a lot of work, specially if the main objective is other. But a nice abstract with the main result helps the reader to understand what is the interesting part and find it with all the details later.

<comment><AUTHOR> Out of interest, what if anything would you say the main result is? I don't have one in mind, which I think harms the post - there's no narrative, just a bunch of questions and answers. The three final plots are there because the spec required them, and I chose them more because the plots themselves seemed interesting than for the questions they answered.

But you're right that an abstract would have helped, and I feel a little embarrassed that I didn't think to include one myself. Even without a single main result, I could have included a short list of interesting findings.

<comment><USER2> (For a blog post) You can declare whatever you like as the main result. I think that the % of the reduction of the bike use by the rain is good candidate. Choose a nice small fact that you can tell to your friend during lunch. Think about the linkbait version: "You can't believe how much the bike use is reduced by rain ..." but please use a non linkbait title, because I hate them.

Usually the biggest change is a good candidate. For example "Moon phase reduce the bike use a 0.027% with p<.99" is a very bad selection.

When you have more time, I think that classifying the rainy days as "small drizzle" and "heavy thunderstorm" will make the changes bigger. I've never been there, but London if not famous for being sunny, so I guess people just ignore the drizzle.</comment></comment></comment></comment></comment>


Thread: Why deep reading clubs are fucking rad - <AUTHOR> https://twitter.com/utotranslucence/status/1285415881120481280 <comment><USER2> > Questions, not takes. Borrowing a lens from @humsys, we prioritise being > curious about what the book is saying, and about what our bodies and minds > are saying in response, over judging the book or using the book to judge > ourselves. Evaluation is not the answer.

This is so key. When I transitioned from great-books-liberal-arts to big- university-science-journal-clubs, the difference in approach was staggering. In the former, we read for understanding, to try to grok what the author was trying to say. In the latter, the culture was to crap on the authors and show how smart you are by criticizing experiments and methods and citing contradictory research. I understand that critique is important for progress, but as a new student just trying to figure out which way was up, I _was_ just trying to understand, and the culture at my university certainly didn't promote that. And honestly, there is more humility in the first approach, and I like that.

</comment><comment><USER3> All on one page with Thread Reader: [https://threadreaderapp.com/thread/1285415881120481280.html](https://threadreaderapp.com/thread/1285415881120481280.html)

<comment><USER4> Whoa cool! How have I never heard of this before?

</comment></comment><comment><USER5> Not all books are best taken in by ear. How would Kant work, say _Prolegomena to Any Future Metaphysics_? It's around a hundred pages, but a hundred slow pages.

<comment><USER2> I think it's read-along. Which sounds suitable.

</comment></comment><comment><USER6> This sounds really interesting. Are there any sites that group people up for this sort of thing?</comment>


Ask HN: How can I A/B test my Positioning Statement? - <AUTHOR>

I ran a campaign on Google Adwords to do this, but I feel that the results were a little inconclusive - 1. because I had to try and squeeze my copy to fit the character limit (so in some cases I had to test a variation), and 2. because there are too many other targeting variables so it's not clear whether you are reaching the same audience consistently.
Are there any self-service, easy to use market research tools out there that will allow me to test 5-10 positioning statements (and/or landing page design) and see what works best?  It would also be useful to get qualitative feedback, not just quantitative.
Any other ideas on how I could I go about getting conclusive evidence of what works and what doesn't? <comment><USER2> Curious, have you tried using something like Unbounce, Optimizely, Visual Website Optimizer or even Google Analytics Experiments? All of these will allow for quick, easy to do A/B testing.

In terms of qualitative feedback - generally that is done via an onsite survey tool ike Qualaroo.

<comment><AUTHOR> Thanks for the response.

I think the challenge is more the traffic than the tool itself. I'm aware of all of those tools, but how do you get sample traffic (from an appropriate audience)?

I was hoping fore some sort of market research 'community' that allows you to specify your target audience, submit your designs or copy options, and they magically come back with the results to tell you what works best.

<comment><USER2> Perhaps the question is better asked on a different community like Growthhackers.com I think if you post it tomorrow morning, you may get more play there.

<comment><USER3> I'm biased =) but I agree - I think you could receive a lot of help with this question on GrowthHackers as an "Ask GH"</comment></comment></comment></comment>


The frenetic race to build Detroit's Amazon HQ2 bid - <AUTHOR> http://www.crainsdetroit.com/article/20180114/news03/650046/the-frenetic-race-to-build-detroits-amazon-bid <comment><USER2> Preface with the usual "I just work here and don't speak for the company", but from my point of view it always just comes down to numbers with Amazon. Make the presentation as pretty or splashy as you want but you're only doing that for your own sake, not Amazon's. You could have sent a handwritten letter with the same information.

Somewhere in the company will be a database. In it, there will be one column for every property of a city, one column for each property of the bid received (tax breaks included of course). I'll bet there will be hundreds of columns. And then there will be a very large formula that takes every property, assigns it a value to Amazon over the next 25 years, and adds it all up.

It's probably quite a complex formula. I have a friend with a master's degree in computational geometry who used to work on fulfillment center placement optimization. Lots of software dedicated to that I hear. Amazon is a data- driven company- it would never leave such problems to human intuition.

Once the data entry was done, and probably a few dozen formula updates were made as new factors were realized and added in, the decision would have been made automatically. The only problem left would be announcing it at the best time to further profit Amazon- another factor the formula probably spit out.

My guess is that we'll know when Q4 results are published. I'd love it to be my home city of Toronto, but I think the lack of tax breaks offered may push it down in the formula's ranking.

<comment><USER3> I agree as a matter of general principle. But these kind of decisions are hard to completely automate. Even if the final output is a number, you need to make judgement calls that go into the number. What's the value to Amazon to the goodness and population of schools within X distance vs. walkability vs. tax breaks? And then, what are the real deal-breakers?

You can certainly use numbers to cull the field. But you probably end up with a few cities that all look good on paper and on the numbers but have different strengths and weaknesses that are more qualitative.

<comment><USER4> Correct me if I'm wrong, please. Doesn't any sufficiently-complex non-linear optimization problem degenerate into heuristic trial and error? There's a progression of better and better solutions. With the unpredictability of the real world, and the low number of trials they'll get (this is their second HQ), I wonder greatly what they've got going on.

<comment><USER3> I studied some of this stuff at one point and have been involved in evaluations of different system architectures and the like as an analyst. You can assign weights, impute values to qualitative variables, define "must haves," etc. to create a somewhat quantitative analytical framework. This has the virtue of at least being consistent and ostensibly objective.

But once you get beyond the tax breaks and the cost of living and whatever decisions Amazon has probably already made about geographical dispersion, it will probably come down to Bezos making a call. This isn't siting a new Marriott hotel or a distribution center.

</comment></comment></comment></comment><comment><USER5> As somebody who grew up in the Metro Detroit area and moved away, I'm unbelievably impressed by the bid Detroit put together.

The entire region is so completely disfunctional. The idea of getting the neighboring counties (which have the money, education, and talent) to work together was unheard of.

I do think the Metro Detroit area is consistently understated as a potential tech hub. It has one of the largest cohorts of STEM people in the nation (albeit in more traditional engineering roles).

I don't think the tax breaks will be sufficient enough because Michigan only seems to care about manufacturing plants. I hope Detroit gets the HQ2 bid or at least can use this process to start getting good tech jobs in the area.

I know I (and many of my hometown friends) would move back if the job market was closer to Seattle.

<comment><AUTHOR> I can't speak for other states. But I do know there is an incredibly large number of people raised in Michigan that would move back in a heartbeat if the opportunity was there.

In fact Detroit has an annual event where they invite back successful people who were born in the city and try to woo them to return or to invest in the city.

[http://www.crainsdetroit.com/article/20170914/news/639081/de...](http://www.crainsdetroit.com/article/20170914/news/639081/detroit- train-station-gets-a-homecoming)

</comment></comment><comment><AUTHOR> The smartest thing in my opinion the mayor of Detroit did was to turn everything about the bid over to Dan Gilbert. He's received a ton of criticism for it.

But using the talents of a billionaire entrepreneur gives Detroit a leg up in my opinion. Every other city's pitch was built inside city hall.

Detroit may not get the winning bid but no one is going to be able to say they didn't try harder than everyone else.

<comment><USER5> I actually think everybody has been quite happy with Gilbert leading the bid.

Dan Gilbert is basically the entirely driving force behind the large growth happening in Detroit.

</comment></comment><comment><USER6> It's kind of a sad spectacle to see mayors across the country abase themselves in the hopes of currying favor with Amazon.

</comment><comment><USER7> I'm usually a critic of my home state for a variety of reasons but I have to say it's been impressive to watch them change over time.

Whatever folks think of Ford and Quicken Loans as companies, it's great to see the public sector being open to new ways of doing things like this (within reason of course)

I still hate the weather among other things there, so I won't likely be returning but it's heartening to see this change taking place! Even if they don't get the bid, I hope they continue this kind of thinking.

</comment><comment><USER8> The irony is Amazon is helping put a lot of small retail out of business, and that should be of more concern to these mayors - there's way more local employment in retail than this HQ can offer.

<comment><USER9> True, but the HQ will go somewhere, right? In fact retail will probably do pretty well near wherever the campus is built.

<comment><USER10> If it's going to go somewhere, why compete to give away tax breaks Amazon doesn't need? It's on par with competing to get a sports stadium.

<comment><USER11> Amazon is a giant vacuum cleaner that sucks up talented software developers from all over the country and spits them out into the local ecosystem after 2 years. That seems like a pretty valuable thing to have.

<comment><USER10> You're assuming having a concentration of highly paid workers is a net positive, yet it's worked out terribly for tech hubs. It drives up the cost of housing and strains infrastructure, with marginal tax base benefits.

<comment><USER9> It is difficult to evaluate. In some sense a city is either growing or shrinking, and shrinking very negatively impacts municipalities because it is hard to 'scale down' the local bureaucracy. On the other hand too much growth makes the city less desireable for current residents--lots of new infrastructure gets built but most of it isn't for current residents. (Or in the case of SF no infrastructure gets built and the housing market becomes a knife fight in a phone booth.)

In the long term I think that density is too valuable to large cities, and passing up an opportunity to increase density is short-sighted.

</comment></comment></comment></comment></comment></comment><comment><USER12> Wonder why PaddyPower does not have Detroit even on their (long)list: [https://www.goo.gl/p55Loa](https://www.goo.gl/p55Loa)

<comment><USER13> Seems like they have a flawed understanding of what's going on. Silicon Valley, or even NorCal in general, should be the last place for an HQ2.

<comment><USER3> That seems an odd list. I would probably have named San Jose as one of the least likely places among the cities submitting bids.

As for Boston, Amazon is admittedly already adding a sizable facility in the Seaport but costs for an HQ2 and cost of living in the city would seem to disqualify.

Personally, I'd put my money on a major city that isn't a current tech hub but could become more of one.

<comment><USER14> Forget about what the RFP ranks as important criteria, the only thing that really matters is Amazon's ability to hire 50,000 high-end tech industry workers (from new grads to seasoned tech executives). There is only one location in the world that can supply this kind of tech talent without draining the rest of the ecosystem and that's Silicon Valley (not including SF or Oakland here).

Google is already planning it's future growth in downtown San Jose (8 million square foot "Google Village"), Adobe is expanding it's downtown SJ presence with a fourth tower, Apple and Microsoft are planning new campuses in north SJ, and Amazon is already expanding it's South Bay presence significantly. As more companies look to expand to urban, transit oriented sites, Downtown SJ will emerge as a premier location for tech company HQs.

<comment><USER13> The Bay Area is already incredibly glutted, and is the site of most of Amazon's competitors. They already have a presence there that can be gradually expanded upon. There is no reason to build an entire second headquarters there unless they wanted to bring about even further hatred and rancor on the part of those who detest growing CoL. They would only fan the flames of anti-tech discontent. It also makes the entire HQ2 contest completely pointless, as the mayor of San Jose has already rejected it to begin with: [https://www.cnbc.com/video/2017/10/05/san-jose-mayor-no- swee...](https://www.cnbc.com/video/2017/10/05/san-jose-mayor-no-sweetheart- deal-for-amazons-hq2.html)

<comment><USER14> Yes, the CoL (housing in particular) is a significant issue for the entire Bay Area but that hasn't stopped the rest of the industry from continued local expansion. I would argue for a strong regional authority to tackle this issue but that's another discussion. Also, San Jose's mayor has not rejected the Amazon HQ2 proposal, only the notion of providing major financial/tax incentives to any corporation as he feels the civic benefit does not outweigh the cost.

<comment><USER13> Expansion is one thing, bringing in tens of thousands of employees with a whole new headquarters is another. Traffic alone it would be nightmarish. And the contest format would be a terrible charade; why give hope to non-tech hub communities at all if your plan was to flock to Silicon Valley like everyone else?

<comment><USER3> Yeah, if you've already reached the IMO very misguided conclusion that the only rational place to site a large tech HQ/HQ2 is the Bay area, why on earth would you go through the motions of this whole process? Hope that some Bay Area city is going to be so desperate for you to move in that they'll shower you with incentives? Possible but unlikely. And it's not like some previously unknown pool of engineering and other professional talent is going to suddenly spring up somewhere.

I'm often pretty cynical (and Amazon will certainly be looking for sweetheart deals) but this seems a legitimate effort to find a location that may not be an obvious choice.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> What does Detroit really have to offer?

If Amazon did setup shop there, it would be a blow to rust belt companies as they start a salary war trying to their keep talent.

<comment><USER13> As talent enters an area, couldn't it lead to other tech companies following, then VCs, thus creating a new ecosystem and industry hub?

<comment><USER16> Google and Microsoft already have footprints downtown and in the suburbs. Detroit's startup community needs maturity, and this will only help.

<comment><USER5> Those are sales offices with little if any engineering presence.

</comment></comment></comment></comment><comment><USER17> When is the final decision expected to be announced?

</comment><comment><USER18> Why doesn't Amazon just buy up a block of NYC like all the other big tech companies?

<comment><USER19> Expense. Amazon is cheap. It's one of their virtues.

<comment><USER20> Won't any city be cheap because the city is subsidizing the deal? Isn't the whole point of these theatrics to get Amazon a great deal anywhere?

<comment><USER19> Indeed. However the question I was responding to was "why not NYC?"

</comment></comment></comment></comment><comment><USER21> Who would want to work in Detroit? Employees won't want to work late.

<comment><USER22> Why do you say this?

<comment><USER20> It's a reference to the perception of Detroit as a dangerous place to be after dark.

<comment><AUTHOR> That is outdated information. Downtown is fine after dark, especially if you're in Dan Gilbert's security zone. He's got cameras and security people all around his buildings 24 hours a day.

Now as I tell many others there are parts of the city I wouldn't visit in either the daytime or at night. But there are very few good reasons to ever visit those neighborhoods.

</comment></comment></comment></comment><comment><USER23> This is great stuff, but the decision will likely be made based on where Amazon execs in Seattle can get a break from Seattle weather. That ain't Detroit.

<comment><USER3> Greyness aside, there aren't a lot of places in the US that have uncontroversially better weather than Seattle other than California. Sure, if hot/dry or hot/humid + moderate are your goals, there are places. Las Vegas isn't clearly better weather than Seattle for a lot of people. Austin certainly isn't. Maybe some mountain locations. But, really, Seattle doesn't have bad weather in the scheme of things and Amazon isn't going to establish a new location in prime California real estate.

<comment><USER20> This is risking a flame war, but I'd suggest anyplace with so little sun has "uncontroversially" terrible weather. It literally causes health issues.

Also, a city doesn't need good weather all year to have better weather than Seattle.

All that said, I personally doubt weather (and execs' preferences about it) will factor directly into the decision.

<comment><USER3> It depends on what people value. Seattle (like Portland) does have gloomy winters--as does a lot of the northern tier of the US. But it doesn't get big snowfalls, bitter temperatures or--in the summer--long stretches of hot, humid weather or blisteringly hot and dry weather. The summer in Seattle tends to be about as pleasant as anywhere.

I can certainly see someone preferring Phoenix or Las Vegas, say, to Seattle in terms of weather but I wouldn't personally.

(I do agree that weather is perhaps one of the least relevant factors to this decision.)</comment></comment></comment></comment>


Covid 19 JSON Time Series - <AUTHOR> https://pomber.github.io/covid19/timeseries.json <comment><USER2> The data is from Johns Hopkins University, Center for Systems Science and Engineering (CSSE). Pomber converted JHU's data to JSON. Here is the actual repo for this:

[https://github.com/pomber/covid19](https://github.com/pomber/covid19)

</comment><comment><USER3> My biggest problem with all this data being published, especially citizen data, is no one ever states where it came from.

This is unannotated raw JSON on GitHub, how do we even know these figures aren't just made up?</comment>


"If Your Only Tool Is a Hammer Then Every Problem Looks Like a Nail" - <AUTHOR> http://quoteinvestigator.com/2014/05/08/hammer-nail/ <comment><USER2> In my brain this quote got deeply linked to PHP, more precisely to the preface of an article [1]. And it is funny no matter if you love or hate PHP.

 _I can't even say what's wrong with PHP, because— okay. Imagine you have uh, a toolbox. A set of tools. Looks okay, standard stuff in there.

You pull out a screwdriver, and you see it's one of those weird tri-headed things. Okay, well, that's not very useful to you, but you guess it comes in handy sometimes.

You pull out the hammer, but to your dismay, it has the claw part on both sides. Still serviceable though, I mean, you can hit nails with the middle of the head holding it sideways.

You pull out the pliers, but they don't have those serrated surfaces; it's flat and smooth. That's less useful, but it still turns bolts well enough, so whatever.

And on you go. Everything in the box is kind of weird and quirky, but maybe not enough to make it completely worthless. And there's no clear problem with the set as a whole; it still has all the tools.

Now imagine you meet millions of carpenters using this toolbox who tell you "well hey what's the problem with these tools? They're all I've ever used and they work fine!" And the carpenters show you the houses they've built, where every room is a pentagon and the roof is upside-down. And you knock on the front door and it just collapses inwards and they all yell at you for breaking their door.

That's what's wrong with PHP._

[1] [http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad- design/](http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/)

<comment><USER2> And a PHP developer actually built the hammer [1].

[1] [https://www.flickr.com/photos/raindrift/sets/721576294929080...](https://www.flickr.com/photos/raindrift/sets/72157629492908038)

</comment></comment><comment><USER3> My favourite of the many variations I've seen on this one: "If all you have is an icepick, every comrade looks like Trotsky."

<comment><USER4> Hah, that's a good one. My favourite so far has been this one: "If your only tool is C++, all problems look like thumbs."

EDIT: noticed that jfb had used this already, if only in slightly different form.

</comment></comment><comment><USER5> Tech startups should operate more like public relations firms. They share similar goals — using technology and clever messaging to solve big problems — but modern PR firms such as Edelman and Robert Wood Johnson base their campaigns on research. As a PR person, I wouldn't choose a medium, let alone a specific technology, without proving through stats, focus groups, etc., that it was the best way to solve a problem. Sometimes the best approach was an iPhone app; sometimes it was to meet with other businesses or policymakers in person. The research was continuous, too. If an app failed to resonate with an audience, we were prepared to dump it to pursue other solutions and media.

Now that I'm a programmer, I find myself and many co-workers doing the opposite. (In fact, I'm a huge culprit, so this isn't a holier-than-thou comment.) A specific set of technologies dictates the problem set and the approach. I recently heard about a college class, for instance, that challenged students to solve a business problem using a Raspberry Pi and an Arduino. I won't deny that those are interesting and useful technologies, but once they wielded those hammers, without a single hour of research, every problem probably looked like a nail.

<comment><USER6> > _A specific set of technologies dictates the problem set and the approach. I > recently heard about a college class, for instance, that challenged students > to solve a business problem using a Raspberry Pi and an Arduino. I won 't > deny that those are interesting and useful technologies, but once they > wielded those hammers, without a single hour of research, every problem > probably looked like a nail._

Whilst I agree with your first paragraph, I think you've picked a particularly poor example to illustrate it with here.

The problem the college course is solving is "find an engaging/useful way to teach students about embedded programming & automation". As such, "solving" a notional business problem through personal meetings and a written process whilst leaving all the hardware in its wrapping would/should result in a failing grade.

This formulation is much more "If you're being rewarded on your ability to hammer things, it's largely immaterial whether or not they are nails.", or perhaps a little more favourably:

"Someone who successfully solves problems with hammers will tend towards seeking nail-like problems."

</comment></comment><comment><USER7> I find that turn of phrase is often used in curiously ironic fashion -- Once a certain type of know-it-all is armed with that expression, they tend to over- apply it to dismiss ideas that fall outside their favour.

</comment><comment><USER8> What saying do we have for people who insist on using obscure tools and mishmashes of tools when this is going to be a maintenance headache for everyone who comes after?

Or people who only use general-purpose tools for one or two things based on stereotypes they heard somewhere?

<comment><USER9> If you haven't mastered the nailgun, maybe it's safer for you to use a hammer.

<comment><USER10> If you've ever been to a habitat for humanity worksite, or just seen a bunch of day laborers at work in Texas, you'll know not to underestimate the power of lots of unskilled labor with primitive tools.

See also the Web.

</comment></comment></comment><comment><USER11> My favorite formulation of this family is: "When C++ is your hammer, everything looks like a thumb" \-- which leads neatly into: "C++: an octopus made by nailing extra legs onto a dog". I used to really have a thing about C++, but as I got older, and C++ got better, we've mellowed, and are on speaking terms.

</comment><comment><USER12> Makes me remind of this: hammer factory factory factory

[http://discuss.joelonsoftware.com/?joel.3.219431.12](http://discuss.joelonsoftware.com/?joel.3.219431.12)

<comment><USER13> Classic. Still makes me spit coffee.

</comment></comment><comment><USER14> If anything, the "everything needs pounding" bit expresses the spirit of the maxim better than "every problem looks like a nail".

</comment><comment><USER15> If all you have is HN, every nail looks like an excuse to invent a new hammer.

</comment><comment><USER16> Around agile software development, since lean as the "Toyota Way" originated from Japan, a lot of Japan's folklore diffuses into modern agile dev- lingo, such as Kanban, Kata, Dojo, Kaizen. I found another term that I liked:

[http://en.wikipedia.org/wiki/Tsujigiri](http://en.wikipedia.org/wiki/Tsujigiri)

In my mind this is isomorphic to the metaphor of the hammer. A samurai with a new sword will go out and cut up the first person he sees.

This is a cautionary tale, you might end up hurting somebody. If, for example you get a new katana(e.g. python decorators) you might decorate everything that looks like a function, but you would actually suffer casualties in readability and structure; debugging becomes a mess. Therefore you should also understand when and who needs to be cut up.

</comment><comment><USER17> Irony is people who always whip out this quote.

<comment><USER18> Are you implying that if your only proverb is the one about hammers and nails then everything looks like a problem of misapplied technology?

</comment></comment><comment><USER19> My variation: If all you have is a hammer, you'll only look for nails.

Re: OP. I always maintain the source of the quote to be Nietzsche (He was a jackdaw - aren't we all? - so I'm not claiming he's the original source. As if that means much anyway - ideas/memes are like the fashion cycle, being upcycled to 'culture' from the street.

(Its over twenty years since I read any N. so no idea which book but maybe Menschliches, all zu..)

</comment><comment><USER20> [http://en.wikipedia.org/wiki/Law_of_the_instrument](http://en.wikipedia.org/wiki/Law_of_the_instrument)

</comment><comment><USER21> a few years ago, in a discussion about which technologies to use for building an ETL layer, a tech lead for the team which did nearly all of their work in C++, suggested, not surprisingly, C++; in response, a senior dev said: "if the only tool you have is C++ then every problem looks like your thumb" (no intention to disparage any technology or language here)

<comment><USER10> We've got a dev who is... erm, _enthusiastic_ about using short C programs to solve all their problems.

Which is well and good, until you've got to recompile them on a checkout, or figure out what the hell they're doing, or get bitten by stupid bugs that only live at the low-level.

:(

<comment><USER22> Those kind of problems you mention aren't isolated to C, though. The exact same, or very similar, problems exist when using scripts written in Perl, Ruby, Python, and other scripting languages.

<comment><USER23> I disagree - there's an entire class of problems in C that stem from something that isn't in the languages you mentioned: manual memory management.

<comment><USER10> Yep.

That, and the lack of a sufficiently-abstract concept of strings.

To wit, let's get the length of two strings in Ruby and C.

Ruby:

      ("aha" + "oho").length

C:

      char buffer[1024]; // lol i hope this doesn't overflow
      memset(buffer,0,1024);
      strcat(buffer, "aha");
      strcat(buffer, "oho");
      return strlen(buffer);

And that C version? Still not always safe; consider the case where a string overflows, where somebody else fucks up that memory in the stack by (say) a bad variadic arg invocation or array access out-of-bounds.

Oh, and is that string length including the null terminator (no)? And why do we even care about null terminators unless we're doing low-level memory frobbing?

Anyways, imagine that sort of arcana multiplied across every string operation in your dumb little script. It's awful.

<comment><USER24> Why not strlen("aha") + strlen("oho")?

<comment><USER10> Or even:

      strlen("ahaoho")

The C code more closely reflects what the Ruby is doing, but otherwise yes, you're correct. In C++ I could probably get it all done at compile time anyways.

<comment><USER25> The whole point of the code is to concatenate two C strings at runtime. That's the big problem.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> My usual quip in retort is: "But not every hammer is used to hit a nail, and not every nail should be hit by a hammer."

</comment><comment><USER27> I like Rob Heaton's variation on the phrase, which is also true:

"When you have a nail in your eye, everything looks like a nail."

</comment><comment><USER28> My favorite variation is: "if your only tool is a hammer, then everything looks like a thumb."

</comment><comment><USER29> Ford Maddox Ford's novel _The Good Soldier_ once a twice mentions as a blacksmith's saying "By hammer and hand all art doth stand" which is in the same spirit, and suggests to me that variants have been around for a long time.

</comment><comment><USER30> "Give a man a hammer, then he wants a bell, and the next thing you know, he wants a song to sing, all over this land. Ingrateful SOB."

\--danceswithcats on some random website I'm not going to bother finding in my history

</comment><comment><USER31> This saying explains a lot of the JS build systems, compile-X-to-Y tools, Ruby DSLs, and turn-the-Internet-into-a-Haskell-driven-functionspace articles that get posted to Hacker News.

</comment><comment><USER32> Is there a corollary to this quote? Something about how you have a problem that can be solved optimally with a drill and adequately with a hammer, so you decide to choose the hammer because you're already pretty decent with one and you've never really used a drill. So even though you're not using the optimal tool, you've gotten the job done and moved on to the next one while you'd still be learning the drill. Is there something like that?

<comment><USER10> Perhaps the canonical essay:

[http://www.jwz.org/doc/worse-is-better.html](http://www.jwz.org/doc/worse-is- better.html)

</comment></comment><comment><USER33> Just a heads-up: not sure if it's just my own flawed nature, but I almost upvoted the link just because of the clever quote. For me at least, that title is borderline linkbait.

<comment><USER34> I wouldn't call it linkbait. That quote is precisely the subject of the article.

Also, the author is a careful researcher with a long track record.

<comment><USER33> Fair enough. Guess I deserved the downvotes.</comment></comment></comment>


Math professor's side mirror that eliminates 'blind spot' receives US patent - <AUTHOR> http://phys.org/news/2012-06-math-professor-side-mirror-patent.html <comment><USER2> Blogspam.

Original press release from Drexel University: [http://www.drexel.edu/now/news- media/releases/archive/2012/J...](http://www.drexel.edu/now/news- media/releases/archive/2012/June/Drivers-Side-Mirror-With-No-Blind-Spot- Receives-US-Patent/) Added value in PhysOrg article: zero.

Please, everyone, _stop submitting links from PhysOrg and ScienceDaily_. I have never ever ever seen anything on those sites that isn't either (1) bullshit or (2) a recycled press release with zero (or often negative) added value. (Sometimes it's both at once.) It only takes ten seconds' googling to find the original source.

<comment><USER3> I think you are a little harsh in bashing the sources. Their value is that they serve as a distribution of press releases from many sources. That is exactly how a press release is supposed to be used. And I can go to a press- release redistribution site and see press releases from various organizations in a related field instead of having to check each organization individually.

Yes, please filter the bullshit. But submitting from press-release redistribution sites is ok. If it's of further interest, submit the original paper. In this case, the paper (scientific news) is old- it's the step in the business direction that is being disclosed.

<comment><USER4> While I agree that the sites are useful, HN guidelines request that you submit the original article. That reduces the number of duplicate submissions.

<comment><USER3> Reducing duplicate submissions is an excellent point. I took the guideline to be more along the lines of "don't link articles like 'geez guys look at this cool article I found on wavepackets. Works for me!'" But I can certainly see the value of submitting the original PR if the site simply mirrors it.

</comment></comment></comment></comment><comment><USER5> Why do you have blind spots in the first place?

[http://www.caranddriver.com/features/how-to-adjust-your- mirr...](http://www.caranddriver.com/features/how-to-adjust-your-mirrors-to- avoid-blind-spots)

"The paper advocates adjusting the mirrors so far outward that the viewing angle of the side mirrors just overlaps that of the cabin's rearview mirror." I've been driving this way for a long time, and it's great. You can already see behind you: you don't need 2 more mirrors showing you the same thing.

<comment><USER6> I don't know about others, but here's an extract from the article you linked that explains why I have blind spots:

 _Those who have switched to the SAE's approach swear by it, however, some drivers can't adjust to not using the outside mirrors to see directly behind the car and miss being able to see their own car in the side mirrors._

The reason I need to see a bit of my car in the side mirror is because I need to know not only _what_ is behind me, but also _where_ it is in relation to my car.

<comment><USER7> True, but as you get used to seeing the vehicle cross from your center mirror to your side mirror, you get a sense of where it is. Your point of reference just changes from your car in the side mirror to the combination of the location of the vehicle in the side mirror and the center mirror. You really just have to get used to it. I swear by this technique now.

</comment></comment></comment><comment><USER8> _In the United States, regulations dictate that cars coming off of the assembly line must have a flat mirror on the driver's side. Curved mirrors are allowed for cars' passenger-side mirrors only if they include the phrase "Objects in mirror are closer than they appear."

Because of these regulations, Hicks's mirrors will not be installed on new cars sold in the U.S. any time soon. The mirror may be manufactured and sold as an aftermarket product that drivers and mechanics can install on cars after purchase. Some countries in Europe and Asia do allow slightly curved mirrors on new cars. Hicks has received interest from investors and manufacturers who may pursue opportunities to license and produce the mirror._

<comment><USER9> I am an easy sell to jump to conclusions about gov't idiocy but this one is so audacious it seems like there must a relevant reason - so why can't I have a curved mirror that is more efficient?

<comment><USER10> Curved mirrors are more efficient in one sense but tends to lead people to misjudge distances. Presumably the government think that showing a misleading picture may be worse than not showing one at all, which is not complete idiocy. This mirror apparently doesn't really suffer from that problem, but the legislation didn't anticipate it - which isn't really surprising, it's hardly realistic to expect them to foresee this development.

<comment><USER11> _Any_ mirror tends to lead people to misjudge distances and speeds. Mirrors are not things we naturally understand and you have to get used to judging how far _behind_ you something is, while looking _in front_ of you. If you're looking in a mirror and something comes in your direction very fast, you tend to step back... directly into the thing coming at you.

Curved mirrors also take getting used to, but I doubt it has ever been shown that the number of errors people make because of using curved mirrors is larger than the number of errors people make while using regular mirrors.

These kinds of rules get introduced because someone thinks "this makes sense", other people reading it think "this makes sense" and nobody with enough actual knowledge about the subject, who cares enough and has enough lobbying power, goes "now wait a second, this is not right".

<comment><USER12> You seem to be doing exactly what you're condemning them for. Just because your opinion differs from theirs is no reason to assume they are incorrect or that there are no studies involved.

<comment><USER11> I was explaining that the common argument (curved mirrors cause mistakes) doesn't make any sense (because other mirrors also cause mistakes) and how that argument could lead to a law anyway (because people are very used to regular mirrors and the mistakes they cause). You're reading a judgment into that, but I don't think I wrote one.

I don't condemn anyone for taking decisions based on what seems to make sense, when the stakes aren't very high and in the absence of anyone telling them otherwise. We can't expect decisionmakers to be experts in everything and we can't expect them to hire experts for every little detail. As long as things get changed when the facts are presented, I'm not complaining.

</comment></comment></comment></comment></comment></comment><comment><USER13> He was my math prof. Here's a gallery of his crazy mirrors: [http://www.newscientist.com/gallery/dn16585-amazing- mirrors/...](http://www.newscientist.com/gallery/dn16585-amazing-mirrors/3)

When I saw the article title, I immediately knew it was Dr. Hicks because he would talk about his work occasionally in class when it was related to what we were studying.

Also, if you're at Drexel, you should take his math courses. He's easily the best math teacher I've ever had, and I didn't know it until after I graduated. All his classes seemed really easy, but in the last course I took he said something that made me realize how good he was. He said, "Before we get into the math, I want to give you an intuition of how this works." Later I realized that his courses like cryptography and multivariate calculus were so easy is because he knew how to give you that intuition and the mathematics came almost naturally after that.

</comment><comment><USER14> This is just beautiful. Practical application of maths. I would love to get my hands on one of these when it is done.

Glad that he has a patent for that. He should be justly rewarded for coming out with this road safety feature.

To those that believe that there is prior art, do note that the patent granted is for "Wide angle substantially non-distorting mirror". It is not just any curve mirror, it is unlike normal curve mirror which distorts the image, from the picture, you can see that there doesn't appear to be any distortion, which is what makes his mirror unique

<comment><USER15> I can't access the actual article, but this doesn't sound like a very substantial bit of work. On its face, it's the type of thing I'd probably expect a decently bright college kid to solve quite well as a week-long project, nothing more.

Even if it was, we don't typically give out patents for mere solutions to novel math problems. Why should this be any different?

<comment><USER16> > Even if it was, we don't typically give out patents for mere solutions to > novel math problems.

Actually, we do give out patents for solutions to problems that involve math (the soluions involving math). Those patents do not cover using the same math for other problems.

</comment></comment></comment><comment><USER17> A lot of new cars I've seen have partial curve to alleviate the blind spot.

But what often goes unmentioned is adjusting an older, flat mirror correctly in the first place. I used to adjust mine so that a tiny portion of my car was in the lower right hand corner of the mirror. After a few years, I realised that adjusting the mirror out, further away from the car, gave me the widest and most practical view for driving of the lane to the left of me.

</comment><comment><USER18> You know, receiving US patent does not mean much..

</comment><comment><USER19> I can't believe this is something that someone needed to "invent".

I bought a $5 concave mirror that I attached to the outer edge of my wife's mirrors, and they work better than this!

</comment><comment><USER20> I already had a side mirror that eliminates blind spot a few years ago on my Peugeot 207 (I live in Europe) although it didn't have such an angle of vision.

Even though it's a neat invention, I still have to vomit every time I read the word "patent". And to say crooks are working hard to bring these to Europe

<comment><USER21> There have been patents in Europe for quite some time now.

<comment><USER20> Yeah, I was talking about idea patents.

Being able to patent an actual implementation is somewhat ok, but being able to patent ideas is plain stupid, and they are in the prrocess of importing it to the EU

<comment><USER22> There are no non-"idea" patents. By their very nature, patents are there to provide a monopoly on novel ideas. If I come up with the design for a new gearing system and patent it, then you have an idea for a substantially similar system and build it, you're violating my patent. It's all about ideas.

</comment></comment></comment></comment><comment><USER23> Curved mirrors dont eliminate the blind spot, they reduce it. Perhaps this curved mirror reduce the blind spot to a very small area, but I submit a bicycle or pedestrian could still fit in it.

</comment><comment><USER24> Relevant: [http://www.quora.com/Why-haven-t-cars-yet-solved-the- problem...](http://www.quora.com/Why-haven-t-cars-yet-solved-the-problem-of- the-blind-spot-in-wing-mirrors)

Apparently most people set up their mirrors incorrectly by overlapping view paths, when it would in fact be better if things moved between mirrors without any overlap (e.g. rear view mirror covers the back whilst the side mirrors cover blind spots - no overlap in between).

I've tried it out and it feels rather weird, but I must say I've found it quite effective. I still do head checks, but mostly just out of habit, and it's a good extra check to use just before you change lanes.

<comment><USER25> I have had my side view mirrors setup like this for years and it isn't always better.

The first problem is that you cannot see your car in the side view mirror. This doesn't seem like a big deal, but it can be difficult to judge where everything in the mirror is positioned if you don't have a reference point. You get used to this.

The second issue is that if you have a big straight long line of cars behind that are close together (e.g. traffic on the interstate is at a crawl), you can not see far back on either side of your lane since your mirrors are pointed out and your center mirror is mostly consumed by the vehicle behind you. This makes it difficult to safely merge out of your lane in this situation.

<comment><USER24> You're right about that, but I don't usually find myself in such situations too often, and when I do I just move my head to get a better view straight back (either side/rear). I find blind spots much more dangerous :D.

</comment></comment></comment><comment><USER26> Suddenly patents are OK?</comment>


Ask HN: Tell me what iOS app you'd like me to build, and I'll open source it. - <AUTHOR>

It can be anything, doing this for the final project of a class at Stanford. <comment><USER2> A weather app for people to check in the morning that tells them the weather for the upcoming day in an easy to understand sentence, compared to the previous days weather.

EG: Good morning! It's going to be a bit colder than yesterday and if you're going to be out around 2pm we would suggest an umbrella.

So instead of trying to figure out, hey ok it's going to be 35 degrees with a wind speed of 15 MPH you could just think about what it was like yesterday and dress/plan accordingly

Really would love to try to build this myself haha unfortunately lacking the dev abilities (app academy application....fingers crossed!)

<comment><AUTHOR> Thats an awesome idea. Unless I get any better suggestions, I think I'll go with this. Shoot me an email: paul|at|benigeri|dot|com and I'll send you a link when its released.

<comment><USER3> Yes this is the best idea out of the bunch!

<comment><USER2> Thanks!

</comment></comment></comment></comment><comment><USER4> Really easy (alcohol) drink diary. Preferably using the UK system of units-of- alcohol. Units are given by (serving size in ml * strength in ABV) / 1000.

It needs to be really easy to use, so that people get an accurate count of how much they're drinking each week.

Things that make it hard:

1) Wine is served in different measures and strengths, and sometimes these aren't known.

2) Some spirits have legally defined measures, and others don't.

3) Some drinks are served in pints, and sometimes their strength isn't known.

I think maybe even just photos would be a good idea.

</comment><comment><USER5> Would be great to see an open-source front-end to Kandan (<https://github.com/kandanapp/kandan>), which has really started picking up steam. I imagine with the momentum behind it there's a good chance it'll be carried along by the community.

Very simple API to tie into as well (if only it had OAuth built in...)

</comment><comment><USER6> An GPS-enabled app where a user can set taxi rates and audits whether or not the taxi they are in is A) using a meter that has been altered/is fraudulent and B) if the taxi driver is potentially taking a negligent route based on traffic/etc.

I'm in DC and with increased competition from Uber/etcetera, taxi fraud has been on the rise. Just google for example news reports and FBI busts.

</comment><comment><USER7> This may be too complex to do on a phone and especially given that it is for school, but a kid at CMU built a tool for computers where the computer tracks eye movement. So while you read an article, the page automatically scrolls up or down depending on your eye movement. And if you take your eyes off of the camera, an automated voice picks up from where you left off and starts reading.

</comment><comment><USER8> A 3D collaborative notes app

3D meaning sublists, a depth of at least three. Collaborative is vague, if the app is free then relying on a shared Dropbox folder could work. I think a good notes app should have offline access, a queue of changes for next time you are online and most of all a changelog. Closest I've found so far are Workflowy and Cotton.

</comment><comment><USER9> I find it interesting that all of these ideas come from non-technical, non-iOS developers.

I'd like to see an app that:

i) shows innovation in design, using novel components, e.g. the Path flyout menu. ii) provides an easy-to-use approach to a common problem, .e.g Tinder for online-dating.

</comment><comment><USER10> Alarm clock that gives you a standing ovation (and cheers) when you stand up.

<comment><AUTHOR> Hahah yeah thats would be pretty cool.

</comment></comment><comment><AUTHOR> Right now I'm thinking of making a fast email sender. You select a template, then select a contact, and in two taps you can send a predefined message.

</comment><comment><USER11> A really good HN reader app with commenting.

<comment><USER3> HackerNode app will have commenting and upvoting soon! I am currently working on it!

<http://install.nodemesh.net/r/M4tZ>

<comment><USER12> I'm working on that too. Man this site is a disaster to integrate with isn't it?

<comment><USER3> haha yes! Even logging in is complicated!

</comment></comment></comment></comment><comment><USER13> isometric game template (can use cocos2d). Tiles, etc.

</comment><comment><USER14> I want an open source of YardSale.</comment>


Are we in a tech bubble? - <AUTHOR> http://www.tumotech.com/Tumotech/2014/03/05/are-we-in-the-middle-of-tech-bubble-trouble/

<comment><USER2> I was speaking with a friend the other day about the hypothesis of a bubble. He was interested in my take on the matter. I said "Think about the big picture. I'm not talking about macro economics or anything like that. Think about where we are in the history of the world and civilization." The point here is that even if there will be dips in the market due to immediate forces, there is no doubt in my mind, and should be no doubt in anyone's mind that we are headed to a place where technology touches every aspect of our lives. When historians look back in 100-200 years they will laugh at the prospect that folks were worried that we're investing too much money into technology.

<comment><AUTHOR> Apologies for the late reply tech market just went crazy last couple of days! Completely agree, technology, biotechnology in particular will literally touch everything, and individual companies certainly you can't invest too much.

My concern is not for the consumer who will benefit immensely. My concern is as an investor is the lack of barriers to entries which make picking winners tough. The other key questions are the negative side effects of tech e.g. 1. How do we handle the increasing the accelerating divide between the haves and have nots? 2\. With technology becoming increasingly integrated to our lives (and our bodies) what privacy issues does that bring? etc etc fascinating times ahead!</comment></comment>


Ask HN: Suggestions for archiving extended families photographs etc. - <AUTHOR> I would like to set up an archive for my family and extended family's photos, videos, or other things the next generations might like to have. I am looking for suggestions for self hosted projects, or user respectful services. <comment><USER2> I'm building PhotoStructure to solve exactly this problem for my own family. You can read more here: [https://photostructure.com/about/introducing- photostructure/](https://photostructure.com/about/introducing-photostructure/)

The main advice I'd give though, will be true for whatever tech stack you choose:

Know that you're fighting a war with irrelevance.

I've got boxes of unlabeled old family photos, but I recognize only a few of the faces, and annotations are sparse and frequently illegible. Everyone that could add relevance to the images in those boxes have passed away.

Before that happens to you, gather the metadata that you can. Answer as much of the "who," "what," "where," "when," and "why" that you can. Get help, if you can.

Any details you add to your photos and videos will help people in the future understand the significance of what they're looking at, and glean value from the collection.</comment>


Twitter Suspended Unity2020's Account - <AUTHOR> https://twitter.com/BretWeinstein/status/1299212779233001472 <comment><USER2> "Heads up jack"...as if he doesn't know?

[https://www.youtube.com/watch?v=vl1_LMcEszU](https://www.youtube.com/watch?v=vl1_LMcEszU)

<comment><AUTHOR> wow 10 million, thanks I missed that from aug 25th!</comment></comment>


Ask HN: Do you subvocalize when you read? - <AUTHOR> If you do, does that mean there's a cap on how quickly you can read?
If you don't, what do you do instead? And how do you retain information? What (if anything) do you think is left out?
Are some people able to do both, read while subvocalizing and at other times while not? If so, what are the contexts in which they do each? <comment><USER2> Kind of funny, actually whenever I read, I "speak" the text in my mind with Morgan Freeman or Ian McShane voices, depending on the context. :D For retaining information, my photographic memory helps tremendously.</comment>


A Tiny NTP client - <AUTHOR> http://seriot.ch/ntp.php

<comment><USER2> This is actually a tiny `sntp` client:

      14. Simple Network Time Protocol (SNTP)
        Primary  servers  and  clients  complying  with a  subset  of  NTP,  called
        the  Simple  Network Time  Protocol  (SNTPv4)  [RFC4330],  do not  need  to
        implement the  mitigation algorithms described  in Section 9  and following
        sections. SNTP  is intended  for  primary servers  equipped  with a  single
        reference  clock, as  well as  for clients  with a  single upstream  server
        and  no  dependent clients. The  fully  developed  NTPv4 implementation  is
        intended for secondary servers with  multiple upstream servers and multiple
        downstream  servers or  clients. Other than  these considerations,  NTP and
        SNTP servers and clients are completely interoperable and can be intermixed
        in NTP subnets.

[https://tools.ietf.org/html/rfc5905#section-14](https://tools.ietf.org/html/rfc5905#section-14)

<comment><USER3> Usually an SNTP client will add the latency/2 to get the correct time - I.E. if a packet takes 350 msec to return, then you'll want to add 175 msec from the wall-clock-time in the packet to get the "current wall clock time".

</comment></comment><comment><USER4> Here's a portable version for those of us who do not use Bash:

      a=$(printf '\xb%-47.s' \
      |nc -uw1 ntp.metas.ch 123 \
      |exec xxd -s40 -l4 -p)
      b=$(printf %d\\n 0x"$a")
      c=$((b-2208988800))
      date -r$c

There is a way to do the xxd step using original netcat. Included with nc was a short program called nc-data. It converts from btoa and atob for shoveling data to nc.

Slower than xxd but still useful. It also shows octal, decimal and byte number.

Another exercise might be a one-liner for the TAICLOCK protocol: [http://cr.yp.to/proto/taiclock.txt](http://cr.yp.to/proto/taiclock.txt) (Alternative to SNTP with smaller packets and support for leap seconds.)

</comment><comment><USER5> Less than well known: you can also use the timestamp of an ICMP packet to set your clock. The "clockdiff" command, for example, can be used to find the difference.

</comment><comment><USER6> Simple alternative to quickly set the current time: use the date header of any webserver:

        date -s "`curl -I http://www.kernel.org |grep 'Date:'|awk -F': ' '{print $2}'`"

<comment><USER7> Isn't that what htpd does?

[http://freecode.com/projects/htpd](http://freecode.com/projects/htpd) [http://ostatic.com/htpd](http://ostatic.com/htpd)

</comment></comment><comment><USER8> didn't quite work for me, but was close. This worked:

date -d @$((16#`printf "\xb%-47.s"|nc -uw1 ntp.metas.ch 123|xxd -s40 -l4 -p`-2208988800))</comment>


How much is too minimal? - <AUTHOR> http://rfw.posterous.com/how-to-measure-exactly-how-minimal

<comment><USER2> you can't really be sure your new signup page is better than the other unless you measure the improvements.

Maybe when doing this kind of change, you should to run some a/b tests to confirm your assumptions?</comment>


Microsoft, stop sending user identifiers in clear text - ramen-hero https://annoyedmicrosoftuser.blogspot.com/2015/10/microsoft-stop-sending-user-identifiers.html <comment><AUTHOR> Intriguing that this renders Tor essentially transparent in some contexts - that could almost seem by design.

I guess (unless Tor is completely broken) that there would still be more legwork involved in associating traffic from the endpoint with its corresponding traffic into Tor, but even "user logs into that service through Tor" is still a pretty fertile datapoint. Obviously Microsoft would be able to see that pretty easily anyway, but why would they make it easy for others to see it too?

<comment><USER2> >Intriguing that this renders Tor essentially transparent in some contexts - that could almost seem by design.

I would have commented on your tinfoil hat, except for what Microsoft did to Skype post-acquisition:- Completely rewriting its protocol architecture from one which was P2P with end-to-end encryption and practically impossible to wiretap or monitor, to a centralized architecture (ostensibly for scalability reasons) which made it much more easier to wiretap or obtain metadata.

[http://www.zdnet.com/article/skype-ditched-peer-to-peer- supe...](http://www.zdnet.com/article/skype-ditched-peer-to-peer-supernodes- for-scalability-not-surveillance/)

[http://www.theguardian.com/world/2013/jul/11/microsoft- nsa-c...](http://www.theguardian.com/world/2013/jul/11/microsoft-nsa- collaboration-user-data)

Here's a choice quote from the above article.

"In July last year, nine months after Microsoft bought Skype, the NSA boasted that a new capability had tripled the amount of Skype video calls being collected through Prism;"

<comment><USER3> When I heard about the "re-centralization" of Skype, I ran an experiment. I set up calls with a couple of people in various locations and monitored my network connections (on OSX I used nettop). Voice and video traffic is still direct P2P. It was the same when I tried it again last year. Not that I did not investigate messaging connections, nor group video chats, not mobile usage, all scenarios where a centralized service may be more useful.

However this gels with their explanation that they have only centralized the call setup servers for reliability and voice/video traffic for mobile devices where P2P is not very feasible. On laptops and PCs, where P2P remains feasible, traffic is still routed directly been peers.

Now I haven't run the same experiment in the past year, but I hope somebody will, and that too at larger scale. Given this forum is "hacker" news, there is a distinct lack of technical investigation to verify technical claims, and a disturbing propensity to take tech media for its word, especially when biases are being confirmed.

<comment><USER4> Are you suggesting that the ability to log _metadata_ ("call setup") isn't important?

Few people care about the _contents_ of VOIP calls. The relationship maps you can generate from the metadata is far more useful.

Also, "reliability" doesn't make sense as a reason to centralize skype. Being very generous, it is a workaround for the problem of NAT removing the average user's ability to self-publish on the internet.

<comment><USER3> Sure metadata could be important, but I'd argue it's only useful in identifying who some agency might want to wiretap _next_. Without the actual content of the calls you don't know if somebody is talking to a collaborator or ordering in.

 _> Also, "reliability" doesn't make sense as a reason to centralize skype._

I've written a P2P app or two. The NAT issues that you handwave are a huge problem. It's not just the connectivity of nodes, it's the symmetry in which nodes are reachable. NAT and general internet weirdness make this a much harder problem than it needs to be. I had to do a significant re-architecting when I ran into these issues during internal testing, and I had less than two dozen users!

The next problem is latency. By the time you wait to discover a suitable supernode and for your "hello" message to reach your target peer, you will have already connected and started communicating with your peer if you use a centralized "registry" server.

This is compounded by churn. Even if there's a single intermediate hop in your routing, your chances of a successful message delivery drop drastically when a peer can leave anytime. Think about how you use your laptop and how long you keep it running and how abruptly you close it. The move towards laptops away from desktops means average node uptime is reducing sharply, without even considering the move to mobile.

This is further compounded by the need for presence for the case of Skype. You don't want to find a peer is unreachable _after_ you start a call. This implies the need for a global state. But without central server, this can only be achieved with DHT, where the first two problems are even worse. Note the existing DHTs are all used for long running "sessions" where the session is the availability of a torrent. User presence is a lot more ephemeral.

And there's the original problem for P2P apps, of course: bootstrapping. Peers don't come online knowing all their other peers on the Internet. There has to be a way for them to discover each other, which, without Internet-wide multicast, means a central server. If you're going to have to solve this problem, you might as well solve the others.

There is actually a thread on p2p-hackers mailing list about this exact issue. Many experienced P2P devs agreed that whenever you can get away with a centralized solution, you should go for it. In this context, partially centralizing Skype as they did makes complete sense.

</comment></comment></comment></comment></comment><comment><USER5> Another concern: modern HTTPS use SNI standard and those who sniff your traffic, can extract the hostname from this traffic, because it's not encrypted yet. So DNS sniffing is not necessary, if I understand everything correctly.

I would consider that as misuse of DNS. User id must be in request parameter or path, not in hostname.

</comment><comment><USER2> While you're at it Microsoft, please also give a way for users to remotely log out all active sessions on other computers and devices.

<comment><USER6> It's a terrible hack, but changing your Skype password via their website does log you out of all active sessions within a 2-5 minute timeframe. A friends Skype got "hacked" via a third party botting a message to all of his contacts, and as soon as I changed the password the spam stopped and soon after his local client logged out.

<comment><USER7> It's not a hack... this is exactly what is guaranteed for OAuth2 servers that follow spec to deauthorize all tokens.

</comment></comment></comment><comment><USER8> How should Microsoft resolve this? Not using CIDs at all?

<comment><USER9> Not include them in the (sub)domain name?

<comment><USER8> So it's fine to use them in the query string?

<comment><USER2> So long as the query is passed over HTTPS, it is encrypted. But the domain/subdomain info is not concealed by HTTPS.

</comment></comment></comment></comment><comment><USER10> Isn't the real point that one should not be able to obtain that much information simply by knowing some user id or user name?

I would guess plenty of services include the username in some URLs.

Edit: of course the autor also stated that, but more as a side note. Leaking the CID would not be a problem if there wasn't any futher information to be gained.

<comment><USER4> It is well known that unique identifiers are used to identify general internet traffic as the host moves to different IPs. This works even when the _intended_ meaning of that identifier isn't known.

[https://www.eff.org/deeplinks/2013/12/nsa-turns-cookies- and-...](https://www.eff.org/deeplinks/2013/12/nsa-turns-cookies-and-more- surveillance-beacons)

<comment><USER10> Fair argument that every unique id or name makes you trackable, but that is a much bigger (and IMHO long lost) battle on so many fronts, and it does not seem very fair to single out Microsoft here. And I don't think that is the motivation of the author either.

<comment><USER4> I'm absolutely not singling out Microsoft, and I'm not sure why you would think I was.

Anybody that is regularly putting a unique identifier in plaintext network traffic is harming their users, and that goes for Microsoft embedding CIDs in dommain names, Verizon with their X-UIDH vandalism, Google's 3rd-party tracking cookies, and the like similar.

Also, you will never win a war if you give up the fight. This battle is absolutely _not_ "long lost". The only way that could be true is if you give up, thereby self-fulfilling the prediction.

</comment></comment></comment></comment><comment> nv-vn Let's not forget the whole Skype thing where knowing a user's ID is enough to edit any of their messages.

</comment><comment><USER11> If you can look up skype Id by CID then this also opens your IP up to discovery. Which is a really big deal for people who stream (like my little brother).

But I have no confirmation that is possible or not. Just speculation.

<comment><USER12> As far as I know, this used to be a big problem in the Starcraft 2 pro gamer community, before everyone switched to naming their account "||||||||" or some such. (They would get DDOSed a lot.)

</comment></comment><comment><USER13> Everyone seems to talk about what MS should do, and why it's bad. But I wonder why the people working on these systems do not think or feel the same, and want to fight internally to fix it etc.

</comment><comment><USER14> I noticed that my bank (Halifax) sends a long numerical code to webtrends for every page that I visit. The code that it sends seems to be unique for each session.

This is blocked by uBlock but it is concerning.

<comment><USER15> Different problem. That session identifier is probably unique to each session. The complaint here is that the CID is always the same for you, and can be used to look up more information (your profile)

<comment><USER16> And it's sent as part of the host, hence plaintext.</comment></comment></comment>


The History of Dream Chaser - <AUTHOR> http://arstechnica.com/science/2012/09/the-long-complicated-voyage-of-the-dream-chaser-may-yet-end-in-space/

<comment><AUTHOR> i think it's very cool how the cross-espionage helped spawn a best of both worlds.

that, and all space travel is the direct result of ensuring M.A.D.</comment>


First 2 Words: A Signal for the Scanning Eye - <AUTHOR> http://www.useit.com/alertbox/nanocontent.html

<comment><USER2> Interesting work, but improper: this is not how reading material is processed in the brain. Truncated words will be processed at lower efficiency than a longer counterpart, and even more so if subjects know that there is a blank to be filled in. A simple analysis breaks this down.

Example from site: New custome

versus: extravagant banquet

With "custome" in competition with "costume" do you actually think a correct identification in a fill-in-the-black followup means the store's point was successfully passed on?</comment>


Ask HN: Surface area of the Earth/Earth's population = How much space each? - <AUTHOR>

<comment><USER2> [https://www.wolframalpha.com/input/?i=land+area+of+earth+%2F...](https://www.wolframalpha.com/input/?i=land+area+of+earth+%2F+world+population)

<comment><AUTHOR> Fantastic. Thanks! This is a scarily small area per person.

<comment><USER3> how much space do you need? ~225k sq ft seems like more than adequate to have a mansion and a farm... it's about 3.9 american football fields in area.

<comment><AUTHOR> I wasn't meaning small in terms of liveable area. I was just thinking how people generally imagine the planet to be this near infinite area, but really, we each only have a tiny patch of space to look after.

</comment></comment></comment></comment><comment><USER4> 5 acres per person seems like a lot of space to me, but if you take into account how much of the earth's surface area is uninhabitable or at least difficult to inhabit there's probably a lot less practical space per person.

Knowing my luck my 5 sq mi would be in the middle of the Sahara or one of the Cook Islands or somewhere 6 zillion miles from anywhere else. :)</comment>


The V Programming Language - <AUTHOR> https://github.com/vlang/v <comment><USER2> some previous discussions:

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

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

</comment><comment><USER3> I didn't know about V, thanks for sharing it!

It's quite interesting, especially the support for Android and iOS later this year. Looks like a 1-man project, with 152 contributors. I didn't know about Alexander Medvednikov, is there some link about his history and how he got that much traction for this language?

</comment><comment><USER4> I saw this some time ago... it is... bugged as hell. The premise is interesting, but it seems very veeery early to say anything.</comment>


Seeking to make Earth expendable is not a good reason to settle other planets - <AUTHOR> http://www.economist.com/news/leaders/21707928-seeking-make-earth-expendable-not-good-reason-settle-other-planets-life-not <comment><USER2> This article tells you all you need to know about the descent of intellectual rigor at the Economist over the last several years (decades?).

This is how professional trolling is done.</comment>


Non-Lexical Lifetimes Based on Liveness in Rust - <AUTHOR> http://smallcultfollowing.com/babysteps/blog/2016/05/04/non-lexical-lifetimes-based-on-liveness/ <comment><AUTHOR> The introductory post [1] was also discussed here [2].

[1]: [http://smallcultfollowing.com/babysteps/blog/2016/04/27/non-...](http://smallcultfollowing.com/babysteps/blog/2016/04/27/non- lexical-lifetimes-introduction/) [2]: [https://news.ycombinator.com/item?id=11611436](https://news.ycombinator.com/item?id=11611436)

</comment><comment><USER2> I wonder how clear error messages for this kind of liveness checking will be. Will they be able to point to variable usage that causes a variable to be locked?

<comment><USER3> The Rust team is committed to having high-quality error messages in rustc, and its lifetime error messages are singularly superb, making a complex concept understandable and explaining in very thorough detail when necessary what is causing a problem: "this expected this because of this but found this which would mean that instead" with detailed diagnostics of the points in question, and such things.

This tradition will not be forsaken with non-lexical lifetimes.

</comment></comment><comment><USER4> This strikes me as a bad idea prone to action-at-a-distance.

      let a = 1
      let b = pointer to a
      do_stuff(b)
      do_other_stuff (a)

is legal but suddenly becomes illegal when you turn it into

      let a = 1
      let b = pointer to a
      do_stuff(b)
      do_other_stuff (a)
      // ... etc etc
      do_more_stuff(b)

You add a legal statement down the function for a variable that's still valid and in scope, and the calls above it go kablooey.

<comment><USER5> Agreed - not sure this is a good thing, making code and actions harder to reason about. Another reason to reconsider Rust...

<comment><USER6> You do this exact thing all the time in non-Rust languages. Rust notices, and then tells you about it. I don't think that makes code _harder_ to reason about... I think that leans more in the "easier" direction.

I don't think you should dock Rust for pointing out bad practices that other languages simply don't notice. I think you can dock it for complaining about code that's really OK, which just happens to be exactly what they're trying to fix here.

<comment><USER7> So, I don't endorse this reasoning, but I can see it. With Rust you have to think about the possible failure cases of your code up-front and account for them. In other languages, you don't have to.

For instance, I'd bet that most C or C++ apps in production that use concurrency have some concurrency bug somewhere, that's so rare that nobody has hit it yet (or the effect of the bug is minor). Those apps are running in production and serving a valuable purpose. Rust would force you to solve the edge case before deploying the app in production.

Occasionally, it's the right set of engineering tradeoffs to deploy something that produces useful results 99.9% of the time and crashes .1% of the time. (But, I guess you can say, you can always use Rust's 'unsafe' keyword to acknowledge that something isn't quite right but you're deploying it anyway.)

<comment><USER8> > Occasionally, it's the right set of engineering tradeoffs to deploy > something that produces useful results 99.9% of the time and crashes .1% of > the time.

Yes, but unfortunately that doesn't describe the situation we are usually presented with. The developers most likely have not calculated that it runs fine 99.9% of the time and has specific failure cases that account for 0.1% of the time, they just don't know about the error. That is vastly different than making an engineering tradeoff, since the people engineering it don't even know there's a tradeoff being made, and thus can't make an informed decision about it.

In some sense, rust actually enables the situation you are presenting, in that it requires more explicit reasoning about behavior, and if you want to wrap a chunk in unsafe after calculating that it should only negatively affect the program operation 0.1% of the time, well then you actually are making a tradeoff.

</comment></comment></comment></comment></comment><comment><USER9> Is this coming out of Rust's intermediate stage before LLVM? The compiler project seems to have gotten a lot more interesting :)

<comment><USER10> MIR will make this much easier to implement, so we're blocking it on MIR, yes.

</comment></comment><comment><USER11> Personal opinion, but I would rather be given a way to explicitly define(or in that case "undefined") the lifetime, rather than having the compiler trying to be smart. I.e

let slice = ...

capitalize(slice);

"unlet" slice // <\- explicitly make it go out of scope

<comment><USER11> Or if you don't want to introduce a new keyword just use "let slice", which shadows the first "slice", and hence making it go out of scope.</comment></comment>


Telling time with open realtime data - <AUTHOR> http://headwayblog.com/2009/12/14/telling-time-with-openrealtime-data/

<comment><USER2> The watch is redundant. Look at the Android phone for the time and bus data.</comment>


Connect Any Service to Zapier with the New and Improved Developer Platform - <AUTHOR> https://zapier.com/blog/connect-any-service-zapier-new-and-improved-developer-platform/

<comment><USER2> Zapier is one of these things that totally blew away my expectations.

It works really well and is easy to use even for non-technical users. Doubly impressive given that the problem they are solving is really messy underneath it all.

<comment><USER3> Thanks for the kind words. Making it simple isn't all that simple so glad that the effort pays off. :-)</comment></comment>


Ask HN: Good books for starting functional programming? - <AUTHOR>

My girlfriend is interested in learning FP. She has written in C and Java and does not like object-oriented programming (it's <i>awesome</i> having a smart girlfriend). I bought her The Little Schemer and SICP. Are these good books for getting a start in functional programming? <comment><USER2> I found SICP a little tough, I would either fall asleep in the easy stuff or skip so far ahead that I would be in over my head. I rather enjoyed Real World Haskell.

</comment><comment><USER3> Freely available content books: <http://news.ycombinator.com/item?id=1088594>

</comment><comment> b-man Try HTDP, Concrete Abstractions or Concepts, Techniques, and Models of Computer Programming.

The * Schemer books are cool too.

<comment><AUTHOR> CTM is fun! That and Types and Programming Languages.

</comment></comment><comment><USER4> Learn You A Haskell and Learn You Some Erlang

<comment><AUTHOR> Solid recommendations. Thanks.

I have Real World Haskell, which she's welcome to borrow, although I'm also in the process of reading it. :)</comment></comment>


Need help finding an old book - <AUTHOR> Recently learnt about "The Priceless Gift of a Rich Cultural Education" by Cornelius Hirschberg from another book but couldn't find it anywhere on the web and it costs crazy money (around 180 usd on Amazon). I'm dying to read it. Can anyone please send me a copy? Thank you. <comment><USER2> Search for it on this site

[http://gen.lib.rus.ec/](http://gen.lib.rus.ec/)

They have links to it.

<comment><AUTHOR> Got it, thanks man

</comment></comment><comment><USER3> Sure, just mailed it to you.

<comment><USER4> Er, would you be prepared to email it to me, too?</comment></comment>


Credit Card Fraud Detection and Prevention: The Complete Guide - <AUTHOR> https://spd.group/machine-learning/credit-card-fraud-detection/ <comment><AUTHOR> From the moment the payment systems came to existence, there have always been people who will find new ways to access someone's finances illegally. This has become a major problem in the modern era, as all transactions can easily be completed online by only entering your credit card information.</comment>