Google Earnings Come Early; Shares Drop - <AUTHOR> http://blogs.wsj.com/marketbeat/2012/10/18/google-earnings-come-early-shares-drop/ <comment><USER2> As an interesting aside, I created a word cloud with the last 1000 Hacker News headlines to cross the 250-point threshold. I found Google was in 49 of those. Hacker News seems to care more about Google than any other company.

<http://images.diegobasch.com/newsyc250.png>

<comment><USER3> Interesting: I could not spot Facebook there easily?

<comment><USER4> You say that like it's a bad thing.

</comment></comment></comment><comment><USER5> I love this talk of "analysts". Did the "analysts" miss that Google just bought a struggling 10B+ Motorola? Do they expect it to be some magic unicorn that can turn Motorolas losses into Googles profits in a single quarter?

<comment><USER6> This meme of 'anyone who is not a programmer is an idiot' has to stop. This is incredibly frustrating and severely undermines the level of discourse.

<comment><USER7> Most people are bad at making predictions. This is particularly true when they have incentives other than accuracy.

Programmers are not immune to that failure mode, but programming culture encourages data-driven decision-making and prizes empirical results.

<comment><USER8> > programming culture encourages data-driven decision-making

You have to be kidding.

Actuarial work, bioinformatics, social science. These are data-driven cultures. They actually require scientifically valid and methodologically sound data to make a claim.

Programming, on the other hand, is dominated by fashion. Language wars, methodology wars, business bullshit, buzzword chasing. Programming is not data-driven AT ALL! When was the last time a computer scientist actually did some SCIENCE? When was the last time a programmer actually ran a double blind study?

99% of programming is not data-driven whatsoever. The sweeping decisions in programming are made by corporate big wigs operating on their intuition, or are design choice (extremely subjective!) made by "architects" who, for instance, created UNIX.

Were the people who created Python, Ruby, Java, C, etc DATA-DRIVEN? What studies did they use to decide that so-and-so feature should be like this and not like this?

Programming is mostly a craft and has essentially nothing to do with being data-driven. Doing A-B tests does not mean your culture is data driven when A-B tests are like 0.1% of everything you do. And most A-B tests are methodologically unsound anyway and would be shamed out of any real social science department.

Economics, on the other hand, is an actual science with actual data that performs actual methodologically sound studies using advanced statistics. Practicing economists have to use actual valid data procured from real studies to have careers. Programmers mostly twiddle their bits around until something works. That IS NOT being data driven.

Programming is NOT a science.

<comment><USER9> Funny that you should say all of this in a discussion about Google...

</comment></comment></comment></comment></comment><comment><USER10> There is a lot of good numbers in that release.

Motorola down to be expected.

PPC yields -15% is concerning but the soon to come monetization of Shopping is going to reverse that.

The p/e is 20 vs FB at 66.

Google are still the strongest and most consistently innovative large-cap around. They've already moved past the point that MS failed at.

Google ad systems are going to be able to subsidise hardware (TVs, phones, tablets, cars) in a way no other company can going forwards.

<comment><USER11> Can you please quantify the "most consistently innovative large-cap around" comment? What Google did lately which was innovative?

I'm not trying to be anti-Google, I'm just honestly asking. For example, can you compare innovations Google put forward in last couple of years and compare it with, lets say, MSFT?

<comment><USER12> Self driving cars. Glass. Google Now. Maps. Plus all the internal innovation such as new database technologies, custom routers, computer science research, and other technology.

There are few places that compare to Google.

<comment><USER11> Good points.

Vaporware (Self driving cars. Glass.) is not what I'm considering innovative because these things are not in production. And IBM and MSFT are very very good at vaporware.

Maps are not innovative (they might be the best for some people but, on my iPhone, Nokia maps are actually better).

       There are few places that compare to Google.

I'm not disputing that. Google is definitely a great company. But the claim was "the most consistently innovative large-cap around".

<comment><USER12> The iPhone actually uses TomTom maps, not Nokia. That said, no maps but Google maps has street view. Plus, they are moving into mapping shopping malls, parks, stores, and even tourist spots. On top of this, they use image recognition with their street view data to improve accuracy of their maps on several levels.

Don't forget the sheer amount of integrated information such as transit and traffic routes. Google maps has continually set the bar for mapping. They are so successful that people no longer even recognize that all these features were not commonplace prior to Google maps.

Edit: and if you define innovation to things in production, I straight up disagree. Innovation happens prior to production.

<comment><USER13> _no maps but Google maps has street view._

A similar feature to Streetview has existed in Bing Maps since 2009 [1]. Google was first, but others are chasing hard.

 _Plus, they are moving into mapping shopping malls, parks, stores, and even tourist spots_

Bing Maps started adding malls and building maps in 2010. They also had birdeye view and 3D "photosynth" views predating Google's implementations [2] by 2 years.

[1] [http://www.bing.com/community/site_blogs/b/maps/archive/2009...](http://www.bing.com/community/site_blogs/b/maps/archive/2009/12/02/bing- maps-adds-streetside-enhanced-bird-s-eye-photosynth-and-more.aspx)

[2] [http://www.bing.com/community/site_blogs/b/maps/archive/2010...](http://www.bing.com/community/site_blogs/b/maps/archive/2010/12/07/bing- s-new-mall-maps-get-in-get-out-and-the-avoid-the-crowds.aspx)

</comment></comment></comment></comment></comment></comment><comment><USER14> Speculation is that their filing agent may have accidentally released them early.

update: confirmed by R.R. Donnelley & Sons

<comment><USER15> Google is advertising company which enjoys masquerading as a computer science R&D lab. They build self-driving cars. They launched a satellite.

I suspect that they will start making their own SEC filings soon.

<comment><USER16> I think when you accomplish some of the things Google does, it becomes less of a "advertising company which enjoys masquerading as a computer science R&D lab" and more of "an advertising company that owns and funds a computer science and engineering R&D lab".

<comment><USER15> Advertising is where they make their money. It is nice that they do cool things, but few of those things have anything to do with their core business.

My point was that they do a lot of fun things that aren't core to their business. Properly filing their SEC documents might be worth a little more attention. Not quite as sexy as self-driving cars, but if they can't keep the core business running then they won't have time for autonomous cars.

</comment></comment></comment></comment><comment><USER17> Well that was an easy short. RRD dropped long after your update. Nice work Uptown!

</comment><comment><USER18> Some poor bastard on another forum I read had short put options open and was literally in the middle of closing them (due to earnings release at end of market) with his mouse when the stock dropped.

<comment><USER19> This doesn't sound that terrible. One enters into a short put position when he believes that XYZ company is worth buying at $X, but not at the current price. So you open the short put position at the $X strike price and either collect the premium if the stock doesn't go down, or be assigned the shares at the price you think they're worth if the stock does go down. Assuming you did your research right, both are good positions to be in.

And remember: if a particular option you're selling has a really high premium, it's because the market expects the position to be risky.

<comment><USER20> Being forced to buy 700 dollar shares at 760 (or whatever) is not a good position to be in. Especially if you don't have the money, which happens often enough.

<comment><USER19> My brokerage won't even let me open the position without having enough money to cover the share assignment.

</comment></comment></comment></comment><comment><USER18> kind of stoked about this, been waiting for an opportunity to go long GOOG due to their autonomous car moat they're carving.

<comment><USER21> their autonomous car project is folly

<comment><USER22> Prove it.

<comment><USER21> Google is incompetent at expanding into adjacent markets to search engine marketing. That is their core competency. You think they can enter the automobile industry? You're insane.

<comment><USER23> That's why they failed at building a mobile operative system. Same happened when they tried to get into the email business. Or the office applications sector.

Oh…

<comment><USER24> And web browsers :)

<comment><USER25> So this is a nice long list of reasons to "go long GOOG"? Let's add up the billyuns they've made in:

Mobile operating system: we'll get back to you on that

Email business: brand investment!

Office applications: Literally hundreds of satisfied paying customers, a few even break into 3 digit employee counts. Coming to offline any decade now.

Web browsers: the tracking data is worth a hundred times what we paid for in commercials and r&d.

<comment><USER26> You may have missed this: <http://mashable.com/2012/06/28/google-docs-offline- io/>

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> Panic anyone?

If it has indeed been an accidental release, someone is going to pay very dearly for it.

<comment><USER28> Just read some article which talks about the "fear" that consumers may be getting smarter and increasingly relying on direct searches and mobile apps (aka Amazon website, Amazon mobile app) instead of going through Google. If that is correct, then it sounds like a shift in the market rather than shrinking. Admittedly though it sounds more like a rationalization of reduced earnings with no direct proof.

</comment></comment><comment><USER29> Trading has been halted as well.

<comment><USER30> Why do they do this? Isn't the whole point of the free market that the prices stabilize quickly without interventions?

<comment><USER31> Yeah, everyone loved the free market back in 1929.

<comment><USER32> The 1929 stock market collapse was an accurate reflection of real-world economic conditions, it wasn't a panic crash and it didn't cause the great depression. There are a ton of theories about why the depression happened but pretty much none of them claim fiddling with the stock market rules would have helped anything.

Stock prices during the depression were reasonable, they were just news nobody wanted to hear.

<comment><USER33> Economists also think that WWII ended the depression.

As if flattening the major cities of every developed country except the U.S. and spending the majority of the world's economic activity on objects whose sole purpose is to destroy and be destroyed. That brought prosperity.

<comment><USER34> Some do, others don't: [http://www.econtalk.org/archives/2008/12/higgs_on_the_gr.htm...](http://www.econtalk.org/archives/2008/12/higgs_on_the_gr.html)

</comment></comment></comment></comment></comment></comment><comment><USER35> Definitely not the first time RR Donnelley has dropped the ball.</comment>


Google Teleport Search - <AUTHOR> http://www.google.cn/intl/zh-CN/landing/teleport/

<comment><AUTHOR> April Fool's Day joke of Google China.</comment>


A simple ORM for Python and Redis - <AUTHOR> http://blog.synack.me/2011/hack-1-a-simple-orm-for-python-and-redis

<comment><USER2> An ORM is an object-relational mapper. This doesn't map between a relational datastore and an object system because redis is _not_ a relational datastore.

Thus this is not an ORM, it's just a Redis API for Python. And one which doesn't even use the 2.6 ABCs[0], implement half the methods of the corresponding Python base types or even correctly implement the signatures of the method it does have (Python's built-in sets have an `intersect` method, which is an instance method and takes 1..n set arguments as varargs, TFA's is a classmethod taking a sequence of sets; Python's `set.remove` raises KeyError when the object does not exist whereas TFA will fail silently — which is the behavior of `set.discard` — and as far as I can tell TFA's doesn't accept a set parameter either, ...).

[0] [http://docs.python.org/library/collections.html#abstract- bas...](http://docs.python.org/library/collections.html#abstract-base-classes)</comment>


Why "gamification" sucks - <AUTHOR> http://inessential.com/2011/12/23/gamification_sucks

<comment><USER2> I'm a developer at a "gamification" company, so take my criticism of this article for what it's worth.

The argument made in this article isn't very strong, but from what I can tell it boils down to "games are for children, so gamification is disrespectful." I'm guessing many of us would take issue with that premise. Isn't bad software disrespectful of people whether or not gamification is an element?

"Gamification" is just bringing loyalty programs into the 21st century. I can't think of anything disrespectful about that. When a hair salon or restaurant gives you a punch card, or an airline gives you frequent-flyer miles, do you feel manipulated? You realize they're just trying to get you to return and spend money, right? In that case, sure, gamification isn't for you.

In our A/B testing, we've got a little problem with the numbers we're seeing. No, it's not that it's hard to find impressive stats to show our VCs and clients. It's that the numbers are so good – such a huge departure from our control group – that they're simply hard to believe. If we posted them, you'd think we were lying or cherry-picking.

I'm talking about metrics like how many users return to the site, number of actions taken, time spent, number of links shared. And this is without forcing users into anything; participation is totally optional. If users are feeling infantilized and manipulated, they're showing it in an awfully strange way.

If you're going to claim that gamification sucks, give us some examples, numbers, or a bit of research.

<comment><USER3> As much as I innately agree with Brent's premise from my own experiences, I too would like to see some research. Especially since he even says:

"I can't prove that good software respects people, but I can look at good software and show how it respects people. I can look at bad software and show how it doesn't respect people."

(All the more important now that Gruber linked to this too: <http://daringfireball.net/linked/2011/12/24/gamification.>)</comment></comment>


Who goes to Toastmasters to become better at pitching? - <AUTHOR> Talking and pitching to strangers is not my natural strength, and I usually put a lot of effort into pitches and presentations to figure out almost exactly what I am going to say.
I'm pretty sure that an effective entrepreneur needs to have the skill and confidence to talk about a wide range of topics in front of all kinds of audiences without too much preparation.
Does anyone on HN attend something like Toastmasters to improve their speaking, ad lib speaking and presentation skills? <comment><USER2> I was in Toastmasters for many years, and if there were a group in my city whose meeting times fit my schedule, I'd probably still go.

I particularly liked the peer review process (making you both a better speaker and listener, and making you, as a reviewer, pay attention to what makes other people more or less effective speakers), and the well organized manuals. As much as I thought in advance I knew about e.g., humorous speaking, having a topic broken down into individual aspects was a great way to learn.

On the down side, at times some events had the ring of a success cargo cult to it — people thinking that if they learned just the right inflection and hand gestures, they were bound for great things.

Still, I recommend it highly. In most urban areas in the US, there seems to be a large number of clubs to pick from. There is quite a bit of variety between clubs, so it can be a good idea to attend a few different ones before settling down — clubs tend to be welcoming toward guests, and generally don't resort to high pressure tactics to make you sign up.

<comment><USER3> I agree about the cargo cult part of it. Some of the speeches at the higher levels seem a bit theatrical and focus more on the presentation style than the content. Most beginners need a lot of work on their delivery, however, so it seems to work out great for the first few years at least.

</comment></comment><comment><USER3> I've been in Toastmasters for three years now. I think it's great for building confidence. Although I still have a lot of room for improvement, I've come a long way already. It will help you become better with prepared speeches, leading, listening, and impromptu speaking. I was president of my club last year, which was a good experience as well. I highly recommend visiting a club or two in your area. Each club has a slightly different feel and you should pick one that you're comfortable with.

Edit: To give some specifics, I used to have awkward and distracting hand gestures. I've learned to control them and I've actually gotten comments that my gestures are good now. Also, I initially tried to fit in too many details into my speeches, and they would always go over the time limit. I've learned to highlight the important points and trim speeches down (that takes work though). Vocal variety is something I'm working on improving at the moment.

Also, if you want to experience presenting under pressure, there are speech contests twice a year which are fun and competitive.

</comment><comment><USER4> I attend a private toastmasters club here at the office. I've been going for about 4 months now.

Our veteran members can give nice speeches off the cuff with zero preparation.

I've only given two speeches so far myself but it's already helping with my confidence. There is a strong leadership component to Toastmasters as well - that's where I'm really seeing benefits.

</comment><comment><USER5> My father is the chapter president of his club in Connecticut. He swears by it. I have been to his club twice and plan on going to one in San Francisco tomorrow, the rhino club I believe...

My father is the best salesman I know. He could sell noise-canceling headphones to deaf people, and I want to earn that confidence by going to toastmasters.

</comment><comment><USER6> i suggest you go to ignite. <http://ignite.oreilly.com/>

i saw a pitch recently, and the guy did the first half in style of ignite presentation. it was solid.

</comment><comment><USER7> I went to Toastmasters a few years back, but before I got into Toastmasters. It's really the best thing to do if you want to get comfortable speaking in front of a group and do it well.

</comment><comment><USER8> HN user imdane used to. Maybe he can chime in.

Toastmasters was also the model for my design workshops, although I've never been.</comment>


Death Note: L, Anonymity & Eluding Entropy - <AUTHOR> http://www.gwern.net/Death%20Note%20Anonymity <comment><USER2> So now if criminals found only in widely available public sources begin dying of heart disease and cancer at correctly distributed but far-above-average rates, L will know that it's somebody who read this article - possibly Gwern himself! Even if this article hadn't been published, such clever use of the Death Note would certainly point to someone with high IQ and possibly involved in the cryptographic community...

<comment><USER3> Well, all I can say is I don't remember writing this! Whomever did so must be one clever fellow though, and I'd be happy to assist anyone in trying to catch him...

</comment></comment><comment><USER4> It's kind of funny that you posted this now, because at the moment I'm actually hacking on the last level of Stripe's Capture the Flag with Low of Solipsism, L's theme, Kira's theme, Near's theme, and Zetsubou Billy looping in the background.

As a side note, has anyone else considered the possibility that it's entirely possible that Light could have simply set up a server which would schedule his victims' deaths for a certain randomised time, then at that time pull up an image of them on X and print their name on one page of the death note which was set up to be indefinitely recycled within the same printer?

At that point it'd have been trivial for him to set up a simple password- protected REST interface which would accept POST requests of victims' names/pictures, and he could have even done all his future recruiting through Tor without taking the risk of using physical mail (and eventually facilitating the recruitment of a local "Kira" in every country, possibly vetting through social media comment histories in a similar fashion to the way he evaluated Mikami).

This setup wouldn't necessarily have been possible, but the wording of the Death Note looks like it might have allowed for it (contingent on how strictly it defined "mind"). At the very least, printing through electronic media would have been worth an experiment.

Assuming the server were reasonably secure, and he'd taken appropriate steps to scale as time passed, the very fact of all that ink on one page would have made it completely illegible, and thus inconclusive evidence. Then, he could have just performed any Kira actions from a virtual machine with an encrypted filesystem, eventually ceasing any direct killings as his army increased in size. It would have scaled beautifully, and he'd have been almost perfectly anonymous.

To put the icing on the cake, if he didn't want to put in so much grunt work, he could have simply configured his server to automatically hook into every well-maintained reputable public listing of convicted violent criminals (as well as listings like the website of _America's Most Wanted_ ) and then forgotten about the whole thing. And hell, if the whole thing is automated, why not just put in a line of code that marks each death as being at the hands of the most likely intelligence agency? It would have achieved the same chilling effect ("OMG THE CIA IS KILLING EVERY CRIMINAL IN THE WORLD NOW!"), and thus the same goal, without even realistically risking his own livelihood.

<comment><USER5> As I recall, part of the rules of the Death Note was that the user has to picture the face of the victim as they write the name, so they have to have a name and a face to kill. I assume a printer doesn't manage to do that, although I do suspect at times that some printers are fairly malevolent.

<comment><USER4> ".. would accept POST requests of victims' names/ _pictures_ ... at that time _pull up an image of them on X_ and print their name on one page of the death note ..." (emphasis added)

Like I said, this depends on a bit of a loose definition of "mind", so it might not have worked at all.

Here is the exact wording of the rule in question: "This note will not take effect unless the writer has the person's face in their mind when writing his/her name. Therefore, people sharing the same name will not be affected."

It specifically appeals to the (somewhat hazy) concept of mind, which would imply the prerequisite of some sort of sentience. However, the rules are not absolute, but rather based on Ryuk's imperfect interpretation (Ryuk didn't know a priori how certain experiments would turn out, like writing causes of death before names with the FBI agents); thus, the use of "mind" itself isn't so important, as it merely implies that Ryuk's experience is limited to sentient beings, which should be obvious.

In other words, there isn't any way to know whether a death note could be used in this way without testing it on a "real" death note (or having the authors write canonical material on it).

<comment><USER5> I agree that there's not any way to know for sure. I guess I saw the "mind" thing a different way; that it has to be a sentient being thinking about it, but obviously we can't know without one to test on :)

</comment></comment></comment></comment><comment><USER6> I hate to be pedantic, but mistake #1 misses the point a bit. While the serial killer doesn't want to be found, he certainly wants to be _known_.

<comment><USER7> If you really want to scare people, you should make every cause of death "Batman". Or maybe "space laser".

<comment><USER3> The death has to be possible; Light tests out the limits early and finds IIRC that if you specify an imprisoned criminal dies outside the prison, the Death Note just gives up and kills them normally or something like that. 'Batman' and 'space laser' are right out, as is making criminals solve NP-hard or Halting problems.

<comment><USER8> What are the odds that three victims would write out notes that combine to encode a message about death gods eating apples? I wouldn't rule out their writing solutions to NP-hard problems. Even halting problem problems. It's just a matter of getting them to write a note that begins with a certain letter, or that includes the word "yes" or "no".

</comment></comment></comment></comment><comment><USER9> Can anyone explain what is going on here? Edit: to clarify, I honestly have no idea what I'm reading: the title piqued my interest, but then it became... I'm really not sure.

<comment><USER10> It's about an anime named Death Note where the main character(named Light) finds a notebook (dubbed death note), and has the ability to kill anyone if he writes their name in the book. Noone knows he has it, but someone names "L" is hired to find out, and eventually traces the deaths to Light.

<comment><USER11> Manga adapted into an anime and movie(s) to be pedantic.

</comment></comment></comment><comment><USER12> How much can you trust each bit of information you gained though? For example, it might be very possible that Light could be intentionally waking up at the middle of the night to do his killings. In which case you would've ruled out japan, which then ruins your subsequent analysis which is all somewhat based on him being in japan. Verifying every bit of information gained or even assigning a probability to how much you can trust it seems to be a hard problem.

<comment><USER13> The show itself used quite a few very interesting methods to do it. Basically, L played a lot of hunches and won big several times.

The part about the time of day was found out long after L had narrowed things down to a small region of Japan by provoking Light into killing someone who appeared on a "worldwide" broadcast that was actually only broadcast in Light's prefecture. The time of day part was actually used to hypothesize that Light was a student, whereupon the pattern changed to show people killed every hour of the day. And L saw through _that_ by assuming (correctly) that Light had access to police data. It seemed like he was always watching Light's reactions to his moves, rather than the moves themselves.

Probably one of the most clever traps of all was after they met in person, when L was able to trap Light by getting evidence that Light knew something he should have no way of knowing at all by means of false evidence. He played it off as Light being too dumb to figure out the riddle, but the only reason he couldn't solve it was because he thought the answer was impossible (and he shouldn't have known that).

<comment><USER11> One problem with the article I realised earlier was that it described the broadcast to Kanto as a gamble because it wasn't broadcast anywhere else, which is wrong. It was broadcast in each region one after another to find out which region it was in. It wasn't a gamble at all, it was a very clever way of finding out where Kira was watching from.

<comment><USER13> It might be possible for him to hear about the broadcast by other means had he not been in the first region where it was broadcast.

But it never really turned out to matter, as you say. L was able to notice that weird case where the evil guy who had taken school children hostage died of a mysteriously timed heart attack and piece a lot of things together.

Actually, though, that broadcast was probably one of the most important puzzle pieces. He was able to prove that Light could kill remotely with nothing but a face & name, having cut a special deal with a criminal and kept the guy under special observation the whole time. Light was very careless there.

<comment><USER14> It would be extremely hard (probably impossible) to hide the fact that you need a criminals name and face to kill them. At most he could've gained a bit of time by being more careful, and at that point he didn't believe the death note would work anyway.

<comment><USER13> Maybe if you assume that psychic killings are possible from the outset. While people might be able to figure out that something is going on, proving that someone is doing the killings remotely via a notebook is quite a leap and only the crazy arrangement L tried made proving that possible.

</comment></comment></comment></comment></comment></comment><comment><USER15> As a curiosity, how many bits were gained (rather than lost) when the second and third characters obtaining a death note were entered? (female and male respectively)

Do the bits of entropy add on, or does it not matter at all?

<comment><USER3> Depends on the assumptions you make, I think. If we make the assumption that #2 and #3 obtained Death Notes at a known time, then any observations before then still pin down #1 - if there are kills at morning Japan-time, that serves to pin him down to Japan, etc.

But once #2 and #3 become equally active, now any evidence like that serves to narrow down the propositions 'any of #1, #2, #3 are in Japan', so if someone asked you what's the odds that #2 lives in Japan, you would only have 1/3 the evidence you did before - because any kill linked to Japan would only have 1/3 chance of having been #2. If a kill is made using information from a rural Iowan newspaper with circulation of 100, well, all you know is that any of 1/2/3 had access to it (and maybe all 3!). And so on.

(In bit terms, if there were 4 Death Note users, then any observation has 1/4 the power it did, or 1/2^2; similarly, if there were 16 users, or 32 users... Once you established someone was a Death Note user you would still need to do that many more bits of work to figure out _which_ Death Note user you want.)

</comment></comment><comment><USER16> Just a note to the author:

I'm getting a lot of [Math Processing Errors] when I view your article: <http://imgur.com/PSeMX> I haven't looked at the source to see what was going on, so it might be that I'm blocking flash or something.

Otherwise, it was great! :) Thanks for a fun read!

<comment><USER3> No, it's all done via MathJax/JavaScript. That should be cross-browser without any issues, I thought.

<comment><USER16> Well, no worries. I was on a school computer with an outdated version of Chrome.

</comment></comment></comment><comment><USER17> I have recently thought about a possible future where everybody could kill everybody else anonymously. No idea how that would play out - probably with extinction?

I think technology could provide such a future, for example something like those tiny poison drones in the movie Dune.

Or maybe it will be possible to genetically engineer a virus to just kill one specific person - kind of like Stuxnet was targeted at one specific factory...

<comment><USER18> See the Twilight Zone episode or Matheson's story: [http://en.wikipedia.org/wiki/Button,_Button_%28The_Twilight_...](http://en.wikipedia.org/wiki/Button,_Button_%28The_Twilight_Zone%29)

</comment></comment><comment><USER18> I thought the article was brilliant. I stopped watching the series Numb3rs early on, so I wonder if it ever really covered real math like that?

</comment><comment><USER19> Sort of reminds me of the board game "Scotland Yard". It'd be interesting to see if an analysis with a mathematical bent would yield some tips for playing the game.</comment>


Why No One Responds to Your Customer Success Managers - <AUTHOR> https://hackernoon.com/why-no-one-responds-to-your-customer-success-managers-a371caaa9aaf <comment><USER2> What is a "customer success manager" in the first place?

Nowadays, every time I subscribe to a new SaaS service I get some emails from their "customer success manager".

Not sure what they are supposed to be. It looks like "customer support" but sometimes I get email from support AND from customer success managers. Go figure.

<comment><USER3> "Customer Success Managers" are typically expected to be much more proactive about contacting customers to encourage them to use the service more and get feedback: their role is to keep retention rates high and generate upsell opportunities (which often explicitly targeted to do so) rather than reduce the backlog of customer support tickets.

Of course, it's also a shinier, happier job title for people doing traditional respond-to-tickets customer support or account managers tasked with renewing licences on an annual cycle (or both in some companies). But SaaS companies often have big enough margins, complex/varied enough products and use cases and need to understand their customer bases for it to be worth having a dedicated team sitting in between sales and tech/admin support trying to make sure that people that don't report problems and aren't regularly renegotiating contracts don't get ignored until they cancel. There are also a lot of industries where being contacted periodically to discuss how they might optimise the app for their current workflow or objectives is a source of value rather than irritation, and helps convince companies they're getting a service rather than a cookie-cutter CRUD app for their 50k per annum.

<comment><USER4> The shocking surprise is that customers don't like being pestered by a salesperson masquerading as a support agent.

<comment><USER2> Given all comments. The customer support is indeed a sales guy responsible for contacting the customer, getting feedback, giving some advise and help...

Yes. All these things are part of sales. Especially in B2B context.

</comment></comment></comment></comment><comment><USER5> This echoes some of my recent frustrations with customer success organizations to a T. I'll also add in that many customer success organizations feel like the Post-Sell Upsell Sales Team rather than the Make My Customer Successful Team (upsells might be a goal, but it shouldn't feel that way to customers).

At most SaaS companies, customer success is designed as a slightly-better support function, rather than a value-added consultative function. This is actually an evolution from the old model, where you'd have a more expensive professional services function that accompanied enterprise software purchases, usually because the implementation itself required a great deal of technical sophistication that the cloud has made obsolete.

Customer success managers tend to be lower paid than consultants who have domain expertise and strategic thinking skills. They also typically handle a much larger client load, which makes it hard to invest time in relationships, and have automated their work to the point of annoyance, which makes it hard for them to individualize.

On the other hand, it's not always such a great idea for a company, especially a SaaS company looking to make an exit, to have their own professional services function, let alone a paid services function. Consultants are expensive and have much lower margins than software. They also add headcount and bring down valuations when it's time to sell the business. That's why most software companies a partner ecosystem around their software, rather than trying to do it in house.

Based on my experience, there are a handful of customer success organizations that get this right. But as a discipline, customer success is still meandering around trying to figure out what it really is. At most companies, the legacy is in a customer support function, not a professional services, consultative sales, or account management function. So that's the level of service you get. I'll be interested to see if they'll respond to feedback like the posters and evolve towards a more consultative model.

</comment><comment><USER6> In the small startups I've been a part of, the Customer Success Manager has been more like the interface for the user to parts of the product we haven't had time to refine.

Our teams are still small, so this person has been essential in helping out in places where the product isn't as refined as we'd like: training, setup + onboarding, UX roughness, etc.

They've also been helpful in understanding our customer's pain points, so we can best direct our modest resources. We regularly learn more about what our product should be from these interactions.

Our users are also very non-technical, so they've been a helping hand getting slow-moving organizations on board. That that end, they _regularly_ receive positive feedback from our users, and are essential at reducing churn.

I can understand why the author had an issue with Hubspot and Google- these are well established companies with refined products and larger teams. Certainly seems like you could end up as a salesman.

</comment><comment><USER7> Mailchimp is an example of successful 'customer success'. But it took a really long time.

[https://news.ycombinator.com/item?id=12642824](https://news.ycombinator.com/item?id=12642824)</comment>


How the McLaren F1 Got Its Sound - <AUTHOR> https://soundcloud.com/scuderiazagreb/how-mclaren-f1-got-its-sound <comment><USER2> I grew up around motorcycle drag racing, which exposed me to the sound of both motorcycle and car race engines at extremes. Top Fuel and Funnycar auto engines can really only be experienced in person - you can't get that sound from any sound system. They make the ground shake!

I was fortunate enough to hear motorcycle drag racing during the diverse design days of the 1970s. The choppy thrum of a Kawasaki Z1, the shrill buzz of three cylinder two stroke Kawasaki 750s, the intense bass of a twin-engine top fuel Harley... these sounds are still part of my consciousness, decades later.

<comment><USER3> If I had only ever seen racing in TV I would have no idea what you were talking about. But I did have the pleasure of watching a few Indy 500 races in person. It is hard to describe the sound and feeling of the solid dirt/grass vibrating under your feet!

<comment><USER4> Stand anywhere near a Merlin V12 (think P-51 Mustang) when it starts up. It's an OMG visceral thrill. My dad used to drive them, said it was the best job in the world.

<comment><USER5> There is one of those in an airplane museum here in NL and I spent the better part of two hours looking at it, what a magnificent machine. If you look at it long enough you can reason out a lot of the functional bits (a part of the engine is cut-out so you get to see all the guts). Of course that's a static display, nothing to compare to hearing it run but I was just appreciating it as a mechanic. To fly it must be the thrill of a lifetime.

<comment><USER4> The Boeing Museum of Flight once offered rides in the back seat (very cramped) of a P51. I was first in line! Worth every penny (expensive). I didn't stop smiling for a week.

My dad being an ex-P51 driver, the local museum was kind enough to do a couple P51 low pass flyovers at his funeral. He would have loved it. One of his relatives remarked that he finally understood the fuss over that airplane.

[http://i.imgur.com/QqlYM.jpg](http://i.imgur.com/QqlYM.jpg)

There's even a book about the sound of the engine - "Sigh for a Merlin".

<comment><USER5> > The Boeing Museum of Flight once offered rides in the back seat (very > cramped) of a P51. I was first in line! Worth every penny (expensive). I > didn't stop smiling for a week.

Consider me very jealous.

> My dad being an ex-P51 driver, the local museum was kind enough to do a > couple P51 low pass flyovers at his funeral. He would have loved it. One of > his relatives remarked that he finally understood the fuss over that > airplane.

That gives me gooseflesh.

That picture is really neat, the name of the plane seems to have worked out well!

Thank you for posting this.

<comment><USER4> All combat pilots have their OCD good luck charms, my dad's was naming his planes "Round Trip Ticket". And it did work, they always brought him home, despite sometimes getting holes in the airplane, and various other failures. He has a great picture of the side of his 'stang covered in oil, after it swallowed a valve. Fortunately, it was over the airfield at the time, as the 'stang wasn't going very far with the rotating junk that was left of the merlin.

<comment><USER6> > OCD

That's superstition, not OCD.

<comment><USER5> OCD is rituals for structure, Superstition is rituals in order to pursuade the powers that one imagines exist to look the other way in case of dealing misfortune (avoid walking under ladders, otherwise sensible advice, something might fall down) all the way up to praying to win the lottery or asking the priest to bless your land.

It's all centered around rituals. At least the OCD folks have (assuming it doesn't get out of hand) some positive benefits from their affliction.

<comment><USER6> > OCD is rituals for structure

No, it isn't. If you don't know anything about a severe, debilitating illness you should probably do a minimal bit of web searching before talking about it. There are literally hundreds of websites providing good quality information about OCD.

OCD is an illness where a person has obsessions (intrusive thoughts), and compulsions (rituals to cope with those intrusive thoughts).

This has nothing all to do with "structure".

OCD provides no benefit to people with the illness.

WHO have recognised OCD as one of the top 10 leading causing of debilitation (Years Lost to Disability) in people aged between 15 and 44.

[http://www.who.int/bulletin/volumes/82/11/en/858.pdf](http://www.who.int/bulletin/volumes/82/11/en/858.pdf)

> Of the 10 leading causes of YLD in the world among individuals of all ages, > four are psychiatric conditions, with unipolar depression being the leading > cause (2). Among individuals between the ages of 15 and 44, panic disorder, > drug use disorders, and obsessive–compulsive disorder (OCD) were included in > the top 20 disorders.

> some positive benefits from their affliction.

As viciously stupid as saying "Cancer patients like the slimming effect of chemo".

<comment><USER5> Apologies, I had a friend in mind who has a mild case of OCD resulting in excessive cleaning because it makes her feel calm.

Obviously, it's excessive so a net negative and there are far more serious cases than that.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> The technical achievements put the McLaren F1 at the top of the charts, but it was the artistic choices that made put the McLaren F1 poster on kids walls.

My favorite McLaren F1 related story: [https://youtube.com/watch?v=y0XtNGuijqc](https://youtube.com/watch?v=y0XtNGuijqc)

</comment><comment><USER8> Apart from contemporary exotics like the FXX-K or the Huayra - the car I'd love to hear is the BRM 1.5l V16 (600bhp at 12,000rpm) designed in the 1940s!

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

Mind you - I still think the best engine sound I've heard is from a Rolls Royce Merlin...

<comment><USER9> For me, it's the Lexus LFA. Thing sounds like a spaceship.

<comment><USER10> My favorite engine sound is the Toyota Hybrid TS030 going from electric to its V8. Also sounds like a spaceship.

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

<comment><USER11> The only thing better about that car is hearing John Hindhaugh of Radio Le Mans start talking about it during a race and he says "1000 Brake Horsepower" (Gasoline Engine + Super Capacitor Hybrid System). you can hear the smile on his face as he says it.

</comment></comment></comment></comment><comment><USER12> Here they are, McLaren start-up sounds: [https://www.youtube.com/watch?v=oGV9Qu6-7Oc](https://www.youtube.com/watch?v=oGV9Qu6-7Oc)

<comment><USER13> Those whines at the beginning :)

</comment></comment><comment><USER14> If you're going to fake it, just buy a SoundRacer accessory.[1]

Lotus put in a sound generator as original equipment on their electric prototype supercar.[2] Not only did it make fake "vroom" sounds, _the driver had to shift_ , with a momentary loss of power during shifting. There's no shiftable transmission on that car; it was all faked in software. Everyone laughed at Lotus, and that idea went away, not to be heard again.

The age of "vroom" is over, now that no production gas car other than a few limited production supercars can out-accelerate Tesla's family sedan.

Now _this_ is a startup sound.[3] M1A2 Abrams tank, turbine engine.

[1] [http://www.soundracer.se/?p=98](http://www.soundracer.se/?p=98) [2] [http://www.greencarreports.com/news/1081736_fake-shifting- fo...](http://www.greencarreports.com/news/1081736_fake-shifting-for-electric- cars-dumbest-idea-of-the-year) [3] [https://www.youtube.com/watch?v=sXE4tMEYCoI](https://www.youtube.com/watch?v=sXE4tMEYCoI)

<comment><USER15> Faking the transmission is really a bizarre move, but actually having a multiple-gear transmission in an electric racecar is actually not a bad idea. Formula-E cars have 5-speed sequential transmissions in order to maximize torque [1], and this may be coming to electric road cars as well [2].

[1]: [https://www.reddit.com/r/FormulaE/comments/2gbika/why_do_for...](https://www.reddit.com/r/FormulaE/comments/2gbika/why_do_formula_e_cars_have_a_five_speed_gearbox/)

[2]: [http://www.motor1.com/news/48231/bosch-says-evs-will-soon- ge...](http://www.motor1.com/news/48231/bosch-says-evs-will-soon-get-multi- gear-automatic-transmissions)

<comment><USER14> Bosch makes transmissions. They're getting worried.

Formula-E cars are required to use a specific McLauren motor.[1] The need for a gearbox may reflect its limitations. Formula-E rules also limit input current, so using huge amounts of electrical power for a few seconds of acceleration isn't permitted. In other words, they don't allow Tesla's "launch mode".

Early Tesla models had a two-speed gearbox. That was a disaster. The shock of changing gears over such a wide range wore out the gearboxes rapidly.

Electric locomotives have been transmissionless since the first GE locos. "You cannot strip the gears of a magnetic field", one of the early GE designers wrote. Some things just work better electrically. For a sense of this, here's part of the restoration of the biggest steam locomotive ever built, the Big Boy.[1] It sat at the Ponoma fairgrounds for half a century, and was then towed out and sent to the Union Pacific shops for a full restoration. It's being towed out by a standard sized modern AC Diesel-electric locomotive, which has more drawbar pull than the Big Boy. What's impressive is the precise control. The initial move is about one foot per minute, because they're pulling the old steam giant through a tight curve of temporary track. The Diesel-electric doing the pull has synchronous AC motors and solid state controls, and can apply huge torques smoothly at low speeds with no wheel slip. All the wheels are locked together by active control. You don't need a transmission to get low-end torque from an electric.

[1] [http://www.mclaren.com/appliedtechnologies/products/item/e-m...](http://www.mclaren.com/appliedtechnologies/products/item/e-motor-120kw-130nm/) [2] [https://www.youtube.com/watch?v=-Ji2aGJJAx8](https://www.youtube.com/watch?v=-Ji2aGJJAx8)

<comment><USER5> The radius of that track is insane.

<comment><USER14> It's kind of distorted by a telephoto lens, but yes. That was temporary track to get the loco from the parking lot of the Pomona Fairgrounds onto Metrolink commuter tracks. They'd done enough work on the Big Boy that it would roll on its own wheels at slow speed. UP actually cut the Metrolink rails, spliced that temporary spur in, got the Big Boy out, put in a retired Diesel for display, and restored the Metrolink tracks. On Metrolink track, they hauled the Big Boy to a connection with UP rails, then hauled it to UP's Coulton yard. There it got enough repairs for a long tow at a reasonable speed, with the lubrication systems working. It's now at Cheyenne, Wyoming, where it will be fully restored and converted to burning oil, then used for fan trips and PR.

(Why did steam die out? Maintenance interval for the Big Boy - daily. Maintenance interval for the Diesel-electric towing it - 6 months.)

<comment><USER5> I watched the whole thing, thanks for the link.

Recently I took a little trip with this little guy:

[http://www.hoornmuseumstad.nl/nw-24745-7-3474828/nieuws/vier...](http://www.hoornmuseumstad.nl/nw-24745-7-3474828/nieuws/vier_de_zomer_bij_de_museumstoomtram_hoorn- medemblik.html)

Hard to imagine what it would be like to see that brute up close under power.</comment></comment></comment></comment></comment></comment>


Apple Ready To Launch "Far Reaching" Video Service - <AUTHOR> http://www.businessinsider.com/apple-tv-cloud-service-2011-4?utm_source=Triggermail&utm_medium=email&utm_term=SAI%20Select&utm_campaign=SAI_Select_041311 <comment><USER2>
      We believe Apple has learned much from having Netflix on the Apple TV ...

Typically I'm very strict on privacy, but on my Apple TV I explicitly enabled the _"Send usage information to Apple"-feature_.

I would really love to see some of those statistics.

Reboot-count, Podcast-count, % of screensave time, ...</comment>


Glam Media Raises $50 Million In Private Equity At $750 Million Valuation - <AUTHOR> http://www.techcrunch.com/2010/02/02/glam-media-on-a-roll-raises-raises-50-million-valued-at-750-million/

<comment><AUTHOR> AOL should do everything they can to aquire GLAM, seems like GLAM has the business model in place that AOL is desperately trying to develop.

Who are other suitors?</comment>


YC interview advice - <AUTHOR> http://david.weebly.com/1/post/2008/11/y-combinator-interview-advice.html

<comment><USER2> Speaking of Ramen, don't get the grocery-store stuff, that's for suckers. Get the good stuff off Amazon or VeryAsia.com. I'm pretty sure we lived exclusively off of _Mi Goreng Pedas_ for about 2 weeks straight when we just didn't feel a trip to the grocery store was a good use of time.

Also, try to find a non-technical co-founder. Dan didn't have a ton to do before we launched, so I got free (as in cooked) meals! Woo!

Now nobody cooks :(

<comment><USER3> At least we have the old school deli.

You should provide links to the GosuGod Noodles and Jebus Sauce. Jebus makes GosuGod, but Jebus is somewhat worthless without GosuGod - sort of like the holy trinity. The spirit can be the boiling water. Or maybe I should just call the aggregate: Flying Ramen Monster.

Anyways...

Once we have salaries instead of stipends I'll start cooking again :).

</comment></comment><comment><USER4> Thanks for the advice and good luck, again, to all those venturing out there in a couple of weeks.

</comment><comment><USER5> I'm more interested in the banner picture used in that blog. Incredible cool holographic effect when you move your mouse cursor over the banner. Never seen that before

<comment><USER6> See <http://news.ycombinator.com/item?id=288894> for more info on the technique.

<comment><USER5> Thanks a bunch

</comment></comment></comment><comment><USER7> 'Having said that, be sure you know your market in and out. You better know who your competitors are ("We don't have any" is not an acceptable answer), the history of the market (What previous companies were similar?...'

At least, both Reddit and TicketStumbler claimed they didn't know who their main competitor was and they were accepted.

So, "We don't have any" _is_ an acceptable answer.

<comment><USER3> Not true.

I said when we first formed the idea and started working on it we didn't know who our competition was (if any). However, by the time we got to the interview, we did.</comment></comment>


The Most Dangerous Site on the Internet - <AUTHOR> http://startupdispatch.com/opinion/this-is-a-rant/

<comment><USER2> "The thing about Reddit is that it makes you feel smart when you are actually doing nothing productive."

I could say the same for HN at times. I spend way too much time not working on projects and instead reading everything interesting here, then moving to the slightly less interesting, until I'm down to things on the new page that I'm only slightly interested in.

This has prompted me to go set up the anti-procrastination settings.</comment>


Zen Planning: 4 Simple Rules for Balancing Short Term Necessity with Long Term Direction - <AUTHOR> http://blog.timberry.com/2008/06/zen-and-busines.html

<comment><USER2> I read Tim's last book on business planning and got good value from it. Might pick this one up someday as well.</comment>


Free C Programming Course from Aalto University and the University of Helsinki - <AUTHOR> http://mooc.fi/courses/2016/aalto-c/en/ <comment><USER2> What do you get, other then the information being taught, from this course?

<comment><USER3> Totally depends what you do with your newly-acquired C-programming skills. Linus Torvalds for example has multiple doctorates, while his actual academic achievements in Helsinki University were close to nothing.</comment></comment>


Const and Optimization in C - <AUTHOR> http://nullprogram.com/blog/2016/07/25/ <comment><USER2> _The C99 specification, in §6.7.3¶5, has one sentence just for this:_

      If an attempt is made to modify an object defined with a
      const-qualified type through use of an lvalue with non-
      const-qualified type, the behavior is undefined.

This is a separate question than whether the compiler can rely on the function prototype, but doesn't his definition of bar() invoke undefined behavior by this rule?

      void foo(const int *readonly_x) {
        int *x = (int *)readonly_x;  // cast away const
        (*x)++;
      }

I naively assumed that in the context of the bar() function, readonly_x is "an object defined with a const-qualified type", and that since the function modifies this "through use of an lvalue with non-const-qualified type", that bar() invokes undefined behavior. Or am I falsely equating "declaring an object" with "defining an object"?

 _The original x wasn't const-qualified, so this rule didn't apply. And there aren't any rules against casting away const to modify an object that isn't itself const._

Does the original x matter here, or just the readonly_x variable that is in scope of the function? In the language of the spec, are x and readonly_x the same object? Or two different objects of different types that happen to point to the same address? Is it certain that const-qualifiers on function arguments can be legally be ignored inside that function?

<comment><USER3> `readonly_x` is a non-constant object of type 'pointer to const int'. If `readonly_x` itself was const-qualified, it'd look like this: `const int* const readonly_x`.

This is a distinct object from whatever pointer the caller is passing in. But none of this matters to the special const rule -- that rule is not talking about the pointer object, but about the target object that the pointer is pointing to.

<comment><USER2> Thanks, that goes a long way toward an explanation. I'm still a bit surprised though that no compilers seem to complain even if we cast away the const from the properly const-qualified version. Here's the snippet I was playing with that tests all the variations: [https://godbolt.org/g/aaC4B7](https://godbolt.org/g/aaC4B7)

I should have expected it, but if you define the "lying" function where the compiler can see the full definition (and don't specify -fno-inline), the loads are optimized out. It made me wonder though whether some variation of this bug might apply : [http://www.playingwithpointers.com/ipo-and- derefinement.html](http://www.playingwithpointers.com/ipo-and- derefinement.html)

<comment><USER2> [Saw a response here, but it disappeared before my reply. Posted here anyway in case it clarifies my first paragraph.]

Did you check out the link? [https://godbolt.org/g/aaC4B7](https://godbolt.org/g/aaC4B7)

My surprise is that none of clang, gcc, or icc give any warning on this with -Wall -Wextra:

      1  void copy_const(const int * const arg) {
      2    int *copy = (int *)arg;
      3    (*copy)++;
      4  }

I agree that the cast on line 2 is legal and requires no warning. My surprise is that there is no warning for the write on line 3, since I think this is undefined behavior according the quoted part of the spec. Isn't this trying "to modify an object defined with a const-qualified type through use of an lvalue with non-const-qualified type"?

I realize that the compiler has no obligation to issue a warning here, and in fact is fully entitled to my first-born as soon as it encounters undefined behavior. Still, it seems like it would be a useful place to offer the user a warning just as it does in the case of direct modification:

      1 void write_const(const int * const arg) {
      2   (*arg)++;
      3 }

clang: "error: read-only variable is not assignable"

gcc: "error: increment of read-only location '*arg'"

icc: "error #137: expression must be a modifiable lvalue"

<comment><USER4> In gcc try -Wcast-qual

<comment><USER2> It's good to know that it exists (and that it's not included in -Wall -Wextra) but it's not quite what I'm looking for. The cast itself is well defined --- it's the subsequent write that is the issue. While it wouldn't be possible to catch all of these, those that are caught are likely genuine bugs.

That said, it looks like -Wcast-qual is also supported by clang and icc. Clang includes it in "-Weverything", which gcc and icc do not support. Even if not ideal for this issue, I'm sure there are cases where it would help to catch bugs.

</comment></comment></comment></comment></comment></comment><comment><USER5> One of the subtler distinctions between C and D is D does allow this optimization. This occasionally engenders debate about which is better.

<comment><USER6> What is the argument in favor of specifically allowing casting away const of pointers?

<comment><USER7> The strongest argument is to support a sort of poor man's const-generics. Consider a function like strchr(). This locates a character in a (const) string, and returns a (non-const) pointer to it.

The idea is that you can use this on both const and non-const strings. Call it on a const string, you get back a non-const pointer (which you better treat as const!) But call it on a non-const string, you get back a non-const pointer, with which you can mutate the string. So a single function serves both const and non-const uses.

If casting away const-ness were disallowed, the compiler might conclude that strchr()'s returned value cannot alias the input string, and its optimizations would defeat this design. Anyways that's the original rationale.

<comment><USER8> It does not strike me as much of a benefit, and certainly not worth the cost of creating confusing semantics (in fact, I would prefer (a true) const to be the default in any language, with something like 'mutable' required to override.)

</comment></comment></comment></comment><comment><USER9> So if I understand the author, const function arguments can just have const- ness cast away inside the function, so it's really much closer to a type hint than anything else. However, if a variable is declared const, casting away const-ness is undefined. Is this about right? Yikes that's complex. I suppose the moral is casting away const-ness is a terrible idea.

<comment><USER10> _" casting away const-ness is undefined"_

No, it's not. That's the whole point why compiler can't optimize it away. You can often see ("char *") casts from static "strings" in legacy APIs and libraries calls, because original authors didn't know or didn't care how to use const correctly (or at all). I, personally, use const a lot throughout my C code, when you get it, it makes debugging so much easier.

<comment><USER9> you skipped the first clause of my sentence --

if a variable is declared const, casting away const-ness is undefined

is that not true?

<comment><USER10> Your first part was irrelevant: if you cast away const, of course variable must have been const in first place. As other have already mentioned, casting itself is not an undefined behavior (and sometimes even have legitimate reasons, mentioned in my earlier post). On the other hand, trying to _modify_ const variable though non-const pointer _is_ undefined behavior.

P.S. if you downvoted to disagree with this (on my parent post), please provide an opposite example, because as a C programmer, I would really be interested to be proven wrong on this matter.

<comment><USER9> No, it could be mutable variable referenced/accessed (not sure of the right word here) in a function via either a reference-to-const or a pointer-to- const.

It seems highly non-intuitive to me that casting away constness works differently depending on whether the variable was defined const or not, but if that's the rules, that's the rules.

</comment></comment></comment></comment></comment><comment><USER11> The following is a foo function that take a constant pointer:

        void foo(int *const x);

If you point x to another adress inside foo function, it will not compiled.

The author seems think that

        void foo(cont int *x);

is function that takes a constant pointer which is wrong, it is a function that takes pointer to constant object. In this case, it is legal if you point x to another address in memory inside foo function.

<comment><USER12> Where do you see this confusion? I don't think it's there.

The author points out that it is not necessarily undefined behavior to take your second prototype, cast the const away and modify the pointed-to object _if_ you ensure that it is only called with non-constant objects.

<comment><USER11> In 2nd paragraph, the author states:

        void foo(const int *);
        ...

> The function foo takes a const pointer, which is a promise from the author > of foo that it won't modify the value of x. Given this information, it would > seem the compiler may assume x is always zero, and therefore y is always > zero.

<comment><USER13> It is clear that the author means "pointer to const" there.

</comment></comment></comment></comment><comment><USER14> I've personally stopped using const in my C and C++ code, except for actually defining constants (in the #define sense). The headaches and complexity it introduces don't seem worth the benefit - you inevitably have to remove the const modifiers from your "const correct" function at some point when it needs to calls out to a non-const function you don't control (one that you know is 'logically const' and pure but doesn't declare it as such in the signature). And as this article demonstrates, the benefits to optimization are not always that great.

And with any kind of STL-like interface or container you're suddenly maintaining two duplicate versions of everything, a non-const version and a const version, likely along with a confusing pile of template metaprogramming and typedefs to support that. Avoiding const altogether is much cleaner.

As Casey Muratori (game programmer) once said, "I haven't typed "const" in over a decade, and I have had literally zero bugs that it would have caught."

<comment><USER15> I feel like this is analogous to throwing the baby out with the bath water.

I think writing const-correct code where you can is useful. It helps document your code (for yourself and for others), it CAN catch issues (even if Casey Muratori claims it never helped), and it really isn't that hard to do (C routines don't need to be duplicated if you want to return non-const, like strstr, for example).

So what if you have to cast-away-const for interfacing to libraries which aren't const-correct? It still has benefits for your own code.

</comment></comment><comment><USER4> Here is the gist of the explanation from the article: _And there aren't any rules against casting away const to modify an object that isn't itself const. This means the above (mis)behavior of foo isn't undefined behavior for this call. Notice how the undefined-ness of foo depends on how it was called._

Wtf? This seems like a huge potential optimization gain missed. Surely by know it can't just be enabled because a lot of code would be written with the assumption above, I'm just curious for the rationale of this model. I don't understand the reasoning at all, why would you ever want to cast from a const to non const and have the behaviour depend on the type I pass to the function? Let's assume the signature of foo was faulty definied as const but still modifies x inside (faulty definined signatures for API compatibility seems to be the whole reason for allowing you to cast away const) and I pass int x, the the behaviour is definied but if I pass a const int x the behaviour is undefined?!? Clearly this is the fault of the person writing the foo function but how does that help me writing the bar function, I am not expected to know the whole call stack of foo, that's what the signature is for, I must be able to trust it's const correctness and that should not depend on what I pass into it.

If the optimization was _always_ disabled I could understand the reasoning but now you get some kind of half assed middle ground where you as a caller must guarantee the actions of a callee.

<comment><USER16> Is there any portable way to tell the compiler it _can_ do this kind of optimization in C ? Wouldn't that be useful ?

</comment></comment><comment><USER17> "void foo(const int * );"

"The function foo takes a const pointer".

I thought foo was taking a pointer a constant, where the pointer itself could change. This may seem pedantic, but perhaps the optimization he expected would have worked if foo took "const int * const ".

<comment><USER18> `const int * ` and `int const * ` are semantically identical, ie `const int const * ` is a duplicate declaration.

<comment><USER17> Opps, I'll update my post. Looks like peeyek had already pointed out that the pointer isn't const anyway.</comment></comment></comment>


Ask HN: What type of startups are seeding? - <AUTHOR> <comment><USER2> Can you explain what you mean by seeding?

<comment><USER3> I assume the OP means companies that are successfully raising seed round funding.</comment></comment>


Alan Kay - Programming and Scaling - <AUTHOR> http://tele-task.de/archive/video/flash/14029/

<comment><USER2> This video, despite its vague title, documents the history of software objects. In fact, its subtitle is "The 50th Anniversary of Objects?"

Very nicely done.

Bob</comment>


Node.js Logging Made Right - <AUTHOR> https://itnext.io/nodejs-logging-made-right-117a19e8b4ce <comment><USER2> In my experience, it's better to create a "request context" at the beginning of handling a request and pass it down explicitly to subsequent async calls that handle the request. I think that this approach is similar to Golang's "context" package, for example.

As other commenters note, using CLS (via async hooks or domains) is often too much magic and can possibly cause leaks or at least it results in program logic that's hard to reason about and hard to test.

<comment><USER3> I disagree. Logging is a cross-cutting concern. It is basically the example used to define what a cross-cutting concern is.

I want my cross-cutting concerns to be as invisible as possible, I definitely do not want them to proliferate through all function calls I make in the app.

I do not believe domains or async hooks is too much magic, and they are pretty sound when used properly. As long as they are used responsibly and in a limited setting it is just the right amount of magic.

<comment><USER4> Cross-cutting concerns are an antipattern.

Logging should not happen inside libraries or submodules. Libraries should expose errors and exceptions either via throwing or message passing (e.g. dispatching error events). Logging should happen at the top-level of the application from a central place (logging logic should not be scattered all over the source code). The top level application logic should aggregate errors from children components/libraries and decide how to log them. This makes it easy to change the default logger and to customize various aspects of the logging.

When you scatter logging logic everywhere throughout your source code, you break the principle of separation of concerns which is probably the most important principle of software development. Even the term 'cross-cutting concern' implies a violation of separation of concerns (a violation of the cross-cutting kind to be exact). A concern cannot be both separate and cross- cutting.

<comment><USER5> > _When you scatter logging logic everywhere throughout your source code, you > break the principle of separation of concerns which is probably the most > important principle of software development. Even the term 'cross-cutting > concern' implies a violation of separation of concerns (a violation of the > cross-cutting kind to be exact). A concern cannot be both separate and > cross-cutting._

That's because logging is not a concern of your app -- it's a secondary need that's orthogonal (hence cross-cutting) to its actual concerns, and which is there regardless of the app.

Changing your whole app's structure just so that you collect things to log in a central place (as you propose), would be the real violation of concerns.

Not to mention this way you pass around information that might be useless for the purposes of the app (and is just needed for debugging), that it's enough that separate components know themselves internally.

<comment><USER4> >> Changing your whole app's structure just so that you collect things to log in a central place (as you propose), would be the real violation of concerns.

Maybe it depends on what kind of language/platform you use but if each component is able to dispatch events on itself instead of logging, then that does not require changing the whole app's structure.

The only concern of the top level application logic would be monitoring/reporting so logging fits naturally under that label.

</comment></comment></comment></comment></comment><comment><USER6> I haven't looked into this recently so I don't know if anything has changed, but when I last looked up Proxy benchmarks I found that it performed very poorly. Does anyone know if this is no longer the case?

My initial reaction to this is "just because you can doesn't mean you should". Perhaps that's a bit harsh, but it seems wasteful to be creating these wrappers instead of just adding the desired functionality directly to your favorite logging library. Did you try bringing it up with the people maintaining the wrapped libraries? It's also worth mentioning that async_hooks is considered an experimental API.

The simpler solution is to stick a unique id in the context object of each request, perhaps passing around a request-specific log function as well if needed. You should have access to it from all your call sites so you can pass it in as needed, and there's no need for magic.

<comment><USER7> You will lose this context when an error is thrown deep in a library somewhere and your error stack ends up missing most of the useful info. Also how do you deal with I caught exceptions?

<comment><USER6> This isn't an issue if you're using promises. You can use try/catch from within async functions and it works exactly as you'd expect.

A few years before async functions were available you could also achieve the same thing with generators. In fact, the original release of koa used co [0] under the hood.

I'll note my response is written with koa middleware in mind. I haven't kept up much with express, although I think it should be possible to achieve the same thing since they also support async functions.

With koa you can add a middleware that wraps all downstream middleware in a try/catch:

        app.use(async (ctx, next) => {
          try {
            await next()
          } catch (error) {
            // handle errors
          }
        })

[0] [https://github.com/tj/co](https://github.com/tj/co)

<comment><USER8> The other main difference between koa and express is that, in express, you send responses from handlers while in koa, you bubble up a {req,res} context back to koa which sends it which gives you real middleware since you can still mutate the response.

The promise chaining nature also makes it so that your example handler can catch all downstream errors unlike express where you must call next(err) and handle it in a downstream handler vs koa's upstream middleware pattern (clojure's ring works the same way).

I thank co and early koa for making node bearable for me long before async/await were available.

</comment></comment></comment></comment><comment><USER9> Thus is about adding trace ids to the log statement. This is definitely helpful, but from the title I had expected something else.

</comment><comment><USER10> Async Hooks? They are insanely slow. If you are using many promises (lie graphql server) then it will result in x100 performance penalty.

<comment><USER11> while there is a performance impact, it shouldn't be anywhere near 100x. for reference: [https://github.com/bmeurer/async-hooks-performance- impact/bl...](https://github.com/bmeurer/async-hooks-performance- impact/blob/master/README.md)

<comment><USER12> The implementation for promises is currently a pretty heavy performance hit:

[https://docs.google.com/document/d/1y4lF- iQhhuSOgzlPIBbfCT4I...](https://docs.google.com/document/d/1y4lF- iQhhuSOgzlPIBbfCT4IUpg-in3az5Q87C7aY3Q)

The node and v8 teams are working to improve that, but the work hasn't all landed yet

<comment><USER13> It's not 100x as stated by the OP, but I wouldn't use it (async_hooks) in situations where performance is actually a concern. I wouldn't use node there either, but that's besides the point.

async_hooks are 100% usable in production right now, we use it at my current gig for tracing and its had minimal impact on the services using it.

<comment><USER14> I see this "I'd never use node" sentiment quite a bit in the Java community. I'm always curious for the reason. Is it the JavaScript? or is Node unable to perform? After reading so many success stories from Netflix and Walmart, I'm wondering what the missing piece is....

<comment><USER13> Specifically in the area of high CPU load tasks. NodeJS is perfectly fine for heavily async tasks, especially calling out to external services. When you have CPU intensive tasks the lack of control over the event loop (task list) can be painful.

</comment></comment></comment></comment></comment></comment><comment><USER15> Is Angular's zone.js any different?

I've used it to do essentially the same thing. Create a new zone for every request that comes in and all async functions within that zone can utilize the id assigned to it's zone for request tracking.

[https://github.com/angular/zone.js/](https://github.com/angular/zone.js/)

</comment><comment><USER16> [https://github.com/stritti/log4js](https://github.com/stritti/log4js)

</comment><comment><USER17> I like the async hook idea. But I'm having a hard time imagining his unit tests would work?

<comment><USER18> I worked on a codebase that used the old "domains" this way, and it was very kludgy. We could get unit tests working, but we essentially mocked calling that 'set' method before the function we were testing used it. We eventually ripped it all out in favor of explicitly passing arguments down the async chain because we found that for some reason those "magic" variables were leaking across requests. Could have been another factor that caused it, but the magic was too much for us.

</comment></comment><comment><USER19> I just use a incremental counter and closure. For the logging itself you have to choose between being slow and sync, or fast and async but miss some log events if you get a crash.

</comment><comment><USER20> The package he uses (cls-hooked) hasn't been updated for 2 years. Does anyone know any good alternatives?</comment>


OpenCV 4.0 - <AUTHOR> https://opencv.org/opencv-4-0-0.html <comment><USER2> Pretty amazing piece of code, the loss of the C API is sad since a number of embedded systems started there and are skittish about going to C++11. I used version 3 to build a simple license plate reader that I had stuck in an upstairs window for a time. Combine that with the simple IMSI catcher that was referenced here a while ago and you've got your own little neighborhood watch station with some pretty grown up capabilities.

<comment><USER3> > the loss of the C API is sad

From the article: "A lot of C API from OpenCV 1.x has been removed."

That doesn't _sound_ like they removed all of the C APIs, unless the only C API was the one that came with 1.x? I'm not very familiar with OpenCV, but since they homepage still talks about offering Python and Java APIs, it seems likely that they're going through a C interop layer somewhere. Did they never introduce new C APIs in the last three major versions?

If there really is no C API, that's sad and kinda limiting. Everything binds to C, but almost nothing can bind to C++.

> a number of embedded systems started there and are skittish about going to > C++11

I'm curious to know what embedded systems are powerful enough to do real-time computer vision, but don't support a C++11 toolchain? C++11 is pretty old at this point, and between gcc and clang, almost everything with a 32-bit or better processor is probably supported, as well as probably many 8-bit and 16-bit architectures, but I'm skeptical about how much CV you can do on the kind of processors that are built as 16-bit processors.

<comment><USER2> It isn't a question of power, I use a lot of Cortex M machines (32 bit ARM) which can compile C++11 just fine, it is that there is a lot of infrastructure (like you really have to have a working heap system, startup files that know how to build the necessary infrastructure, Etc.) that is intimidating to embedded programmers. Not to mention screwing up the symbol names :-).

<comment><USER3> mbed makes it pretty easy to get going with C++ on Cortex-M, last time I tried it, but that was over a year ago.

Still, I'm skeptical about how much CV you could actually do on a Cortex-M processor. A few dozen to a few hundred kilobytes of RAM is really limiting when we're talking about just loading up an image from a camera, let alone doing computer vision on that image, unless you pay for a Cortex-M7 to get 1MB of RAM or something really expensive like that... at which point, an entire Raspberry Pi 0 SBC with 512MB of RAM is actually cheaper than just your microcontroller alone.

Of course, the microcontroller boots up instantly and supports incredibly useful sleep modes and a variety of other peripherals... but for raw performance per dollar, the M7s are just so costly.

<comment><USER2> > Still, I'm skeptical about how much CV you could actually do on a Cortex-M > processor.

You have seen OpenMV right? ([https://openmv.io](https://openmv.io)) I've got one of their early cameras (waiting on my H7's).

<comment><USER3> Ah, a Cortex-M7 with 1MB of RAM... just like I mentioned. haha, the earlier editions used an M4 with 256KB of RAM it looks like, but yeah.

Do you think you could run the license plate reader you wrote earlier on one of these? What are the advantages you see for this over a Raspberry Pi 0 with a Raspberry Camera module? Or the new, powerful Raspberry Pi 3A+ with a camera module? This is certainly more expensive than either Pi option, with a lower resolution camera.

<comment><USER2> I'm reasonably certain it can be run on the H7 but not sure about the H4. It is one of my test cases :-). Note that these chips also include a DDR memory controller so you can put 16MB of RAM on them pretty simply, some of ST Micro's 'Discovery' cards come with this populated, but that is not used on the H4 or H7 camera.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> Oh! G-API seems nice! It looks like something I had to implement imperfectly at one point (and I suspect many OpenCV developer also did it). The ability to describe a pipeline and having it run automatically it really a good thing to have.

<comment><USER5> You might also find Halide[1] interesting then. It too is a computation graph that does a good job of separating core algorithm and optimizations.

OpenCV's neural networks module actually uses Halide as an optional backend. I found it to be a practical approach to run TF/Torch/Caffe/Darknet models on CPUs and OpenCL/AMD.

There was an OpenCV proposal to port _all_ algorithms to Halide API [1]. I think that's still the long term plan, and G-API is a kind of stopgap till then [2].

[1]: [http://halide-lang.org/](http://halide-lang.org/)

[2]: [https://github.com/opencv/opencv/wiki/OE-23.-Module- GAPI](https://github.com/opencv/opencv/wiki/OE-23.-Module-GAPI)

<comment><USER4> Interesting, thanks!

</comment></comment></comment><comment><USER6> Oh, it seems that OpenCV 4.0 does not support more easy to use/bind C API. Sad.

<comment><USER7> Yes, it is sad. OpenCV has a code-gen for Java/Python but they are hard to work with. A number of projects in other programming languages (Rust [1], Go [2]) has to use custom build wrappers.

[1] [https://github.com/nebgnahz/cv-rs](https://github.com/nebgnahz/cv-rs) [2] [https://github.com/hybridgroup/gocv](https://github.com/hybridgroup/gocv)

</comment></comment><comment><USER8> As an iOS engineer, I remember reading that OpenCV is a few TIMES slower than alternatives like Core Image.

I wish OpenCV made use of the GPU and vector hardware on phones. Is there an alternative to OpenCV that does?

<comment><USER9> It does use gpu, you need to compile it with a flag.

<comment><USER8> Oh, which one? I was under the impression it uses only Nvidia GPUs (CUDA) on desktop.

<comment><USER10> There are a _heap_ of CMake flags that turn on various features e.g. CUDA:

[https://github.com/opencv/opencv/blob/4.0.0/CMakeLists.txt#L...](https://github.com/opencv/opencv/blob/4.0.0/CMakeLists.txt#L227)

but also OpenCL:

[https://github.com/opencv/opencv/blob/4.0.0/CMakeLists.txt#L...](https://github.com/opencv/opencv/blob/4.0.0/CMakeLists.txt#L267)

and Vulkan (which was only merged around a month ago):

[https://github.com/opencv/opencv/blob/4.0.0/CMakeLists.txt#L...](https://github.com/opencv/opencv/blob/4.0.0/CMakeLists.txt#L239)

Perhaps that last one works on mobile, although I wouldn't get your hopes up.

I haven't really used OpenCV since 2.4.x, however assuming the same holds true, performance enhancements are on a feature by feature basis. Meaning that if you enable CUDA etc. then it's not going to work for everything. Not GPU, but a common compile time enhancement (at least it used to be) was to compile with Intel TBB (thread building blocks) as a lot of the APIs included optimisations.

<comment><USER8> Thanks, but iOS supports neither CUDA, OpenCL, Vulkan nor TBB. It's only Metal and higher-level frameworks like Core Image for GPU, and vImage for SIMD image manipulation.

<comment><USER10> You can use MoltenVK to run Vulkan via Metal ([https://github.com/KhronosGroup/MoltenVK](https://github.com/KhronosGroup/MoltenVK)). Apparently performance is quite good for regular 3D rendering, compute support is officially listed, but I'm not at all sure what performance is like.

</comment></comment></comment></comment></comment></comment><comment><USER11> Anyone who can understand what OpenCV actually is from their front page is doing better than me.

<comment><USER12> OpenCV is ubiquitous in some domains. It's like asking; "What's numpy?"

<comment><USER13> What's numpy?

<comment><USER14> Portmanteau of Numeric and Python. It's widely used Python library for matrix math and functions for operating on large arrays and matrices.</comment></comment></comment></comment>


Gitlab 500s - <AUTHOR> So it doesn't seem to be fully down, but currently I get lots of 500s from gitlab.com - I am not sure if this is related, but it happens more often, if I am in "Private Browsing" mode (Firefox).<p>Anybody else experiencing similar issues? <comment><USER2> GitLab Employee here, this link might help provide some more details into days you're experiencing more/fewer 500s. You can always check the status page for the current status, but I find the history page to be useful for a broader picture of operations. [https://status.gitlab.com/pages/history/5b36dc6502d06804c083...](https://status.gitlab.com/pages/history/5b36dc6502d06804c08349f7)</comment>


Ask HN: What is the hardest part about finding high quality content online? - <AUTHOR> Hello all, Whether it be sifting through SEO links or not trusting you are getting the best resource available, What is the hardest part about finding high-quality content online? <comment><USER2> \- Any relatively high traffic keyword has such spammy front pages that you have to append things like "reddit" or "hacker news" to your query to try and find something useful

\- Anything that hints at the fact your looking for a product is dominated by the products themselves whereas a lot of the times you want unbiased advice, eg which category of product should I buy. Comparison sites themselves are very untrustworthy (for the most part)

\- If your "learning" something (eg guitar, weight lifting, random hobby, programming) its usually a year or so in before you know the best resources to learn with. However insights like this aren't easy to find so everyone goes through the motions

\- Again if your learning something the material is not split between "depth" levels. Eg the resources needed for learning about "black holes" for a layperson VS someone with a strong interest in space VS a physicist are different. As are news etc.

PS An improvement in search is badly needed, good luck with your project.

</comment><comment><USER3> Judging from your post history, it feels like you want to build a Google search engine alternative?

<comment><AUTHOR> We are trying to research the problem of why it has become so hard to find valuable resources in an efficient manner

<comment><USER4> Because you can pay money to have spam content bury all the real content, and there's really only one major search engine, randomly ask everybody you see on the street for the next month if they've ever heard of bing or duckduckgo. They've probably heard of Yahoo but don't even know they have a search engine.

A decentralized search engine is what we need but this is no easy problem to solve, a thousand people have tried. Good luck

</comment></comment></comment><comment><USER5> Trust: Hard to gain, easy to lose</comment>


Ask HN: What kind of websites do you want to see in 2020? - <AUTHOR> <comment> non-entity Ones that can load on my phone when I only have 2 or 3 bars

</comment><comment><USER2> A Netflix for Audiobooks, please.

I want to be able to start as many books as I want.

I want on demand.

I want ALL of my audio books to remember where I left off.

I want cross platform.

<comment><USER3> Kindle Unlimited's audiobook support seems fairly close to this: [https://www.amazon.com/gp/help/customer/display.html?nodeId=...](https://www.amazon.com/gp/help/customer/display.html?nodeId=201553890)

</comment></comment><comment><USER4> News search engine where it doesn't even show me any sites that are paywalled, limited number of articles per month, etc. Options to filter out anything with video or audio would also be good.</comment>


Woman Knocked Unconscious at Parade by Falling Drone - <AUTHOR> http://spdblotter.seattle.gov/2015/06/29/woman-knocked-unconscious-at-parade-by-falling-drone/ <comment><USER2> As someone who has been working with "drones" for the past few years, I am sick to death of these people who do idiotic things like fly over a crowd of people.

It's frustrating that when something like this happens, people tend to blame the drone, not the pilot. When someone gets drunk and crashes their car, nobody blames the car.

I hope they find this guy and make an example of him.

<comment><USER3> Meh. Come on. If it were just a camera on a long fiberglass poll that fell, it wouldn't be blame anyone. It would be a _mistake_, apologies would be said, and assuming nothing grave happened likely nothing would come of it.

The fact that it was a drone shouldn't have changed anything.

<comment><USER4> If the person had been waving around said pole camera in a reckless and out- of-control manner over peoples' heads, had crashed it into someone hard enough to knock them unconscious, then run away and left the scene without offering an apology, the outcome would have been the same.

As I tell my 4-year-old all the time, sure, the crash itself was an accident, but the pilot's behavior before and after the accident was not.

</comment></comment></comment><comment><USER5> It's only a matter of time before unlicensed drones become banned. These incidents are going to keep happening over and over with increasing frequency, and then a law is going to be passed. Enjoy the wild west of drone flying while it still lasts.

<comment><USER6> Licenses don't stop people from being reckless, but they do help in creating a culture of educated safety. If anything they are good for banning you from operating the vehicle when you get caught breaking safety laws.

Sir, I'm going to need to see your drone license and registration...

<comment><USER7> All you have to do is make the seller of drone equipment legally liable for any and all damages for equipment sold to unlicensed operators. Investors and insurance companies will make sure the sellers require licensing, and the legal liability will keep users in check.

<comment><USER6> You don't need a license to purchase a motor vehicle. You are required by law to have insurance and registration to operate it, both requiring proof of a valid license. When you let your insurance or registration expire your license can be revoked, but that doesn't mean your vehicle gets revoked. Vehicles are property. Driving is the dangerous activity that requires licensing, not owning property.

<comment><USER7> Yes, you do.

Most states require dealerships to verify insurance (and if it isn't a state law it's usually dealership policy) before letting you drive a car off their lot – having insurance requires a license.

If the transaction isn't happening with a dealer you likewise still need a drivers' license to register the vehicle, and registration itself is a legal requirement.

</comment></comment></comment></comment></comment><comment><USER8> Terrible eye-witness account:

"Witnesses described him as an unshaven white male in his 20s, wearing a baseball cap, sunglasses, cut off shorts. He also reportedly had a * noticeable tattoo of a woman somewhere on his body *."

emphasis mine. If it was noticeable, at least they'd say which part of his body!

<comment><USER9> Probably means conflicting descriptions from witnesses. If he was seated and then left in a hurry it would also be easy for people to be confused about whether the tattoo was on his arm or leg.

</comment></comment><comment><USER10> For more examples of people who should not be piloting drones: [http://faildrone.com/](http://faildrone.com/)

</comment><comment><USER11> This is clearly the operators fault you're not supposed to fly over people, period. The majority of incidents of this type involve consumer level drones (DJI Phantoms are over represented with stupid people doing stupid things) Once you're in the DIY hobbyist space people tend to be much more safe about the way they operate their drones since if you are the type that will spend time to learn how to build a multi-rotor then you'll be more likely take the time to learn to operate it safely.

</comment><comment><USER12> So how do we enforce licensing and how will ownership be tracked? Is it done at point of sale? And the tracking of ownership, via signal, of via registration?

And will liability insurance be required to fly over populated areas?

Eventually it will come to this, once the odds, caused by prevalence, point to the liabilities.

Flying airplanes, back at the birth of aviation, also didn't require licensing... Till too many barnstormers caused injury.

Perhaps also weight, range, as well as blade type can be considered with the requirements.

</comment><comment><USER13> Just FYI - if you are into quads (or anything flying) or plan to - read short list of things you should not do - [https://www.faa.gov/uas/model_aircraft/](https://www.faa.gov/uas/model_aircraft/)

(tl;dr; what happened in this news article is prohibited by existing law)

</comment><comment><USER14> If my friend got knocked out by a drone and the dude came up to claim it, I would tell him as soon as the police get there he can claim it from them. I sure wouldn't hand it over "here's your drone back, sir!"

</comment><comment><USER15> now imagine it was this one: [http://i.imgur.com/Feek05g.jpg](http://i.imgur.com/Feek05g.jpg)

Would she still have a head?

</comment><comment><USER16> Adding new meaning to the term "Attack Drone".

</comment><comment><USER17> When did the name switch to 'drone'. Was it privacy scaremongering post iraq/afghanistan that made the term enter public usage? Before that they might have called a remote controlled model helicopter, an rc plane, a quad copter or possibly even a uav

</comment><comment><USER18> That last paragraph goes to show that regulations will be in place sooner than later. And of course, in Australia, there will be a yearly license and a fee... cause you know.

It's pretty sad that the owner of the $1200 flying machine is depicted as the perpetrator of a planned crime.

<comment><USER19> > It's pretty sad that the owner of the $1200 flying machine is depicted as > the perpetrator of a planned crime.

No, he's depicted, accurlate, as the perpetrator of a crime. That crime was running after the accident.

This guy gives responsible drone owners a real problem.

If I crash my drone into something, I expect to be responsible for it. My homeowner's insurance includes coverage for injuries caused by my drone; a fact I verified specifically because I am responsible.

This guy just took off and ran. That's weak; criminally weak.

<comment><USER20> It's not clear that he ran. Given that he clearly did not have control over the aircraft, it might have been well out of view.

<comment><USER21> Usually when you lose sight of a $1200 piece of technology, you go find it, and then attempt to recover it.

<comment><USER22> And then if you see it caused an injury and/or damage, you take responsibility and cooperate.</comment></comment></comment></comment></comment>


Show HN: COMTIFY 1.1 – Trying to solve the problem of too many tools at work - <AUTHOR> http://www.comtify.com/?ref=HN <comment><AUTHOR> Hi,

We are trying to solve the problem of too many tools being used at a workplace in the sense of:

1\. Knowledge sharing tool like Yammer

2\. Task management tool like Asana

3\. Bug tracking tool like Jira

4\. Threading that happens mostly on email

5\. Basic version of CRM

6\. File sharing / storing at a single place

7\. Calendaring and scheduling amazingly fast

Do share your feedback, will extremely help in our headway.

Though in the next release, we are working on integrating it with email (making it an email client) so that it has a solid differentiator of being the first such tool which also fully manages external communication of a team + has a single-user utility.

Comments invited!</comment>


Amazon Price Check Flap Is No Strategic Blunder - <AUTHOR> http://www.forbes.com/sites/janetnovack/2011/12/12/amazon-price-check-flap-is-no-strategic-blunder/ <comment><USER3> This article also raises the point that if nationally mandated sales tax equality is instituted, Amazon and its competitors are in the same boat - <USER2> that would also free Amazon to actually open physical stores or showrooms across the US, as well as hiring in various locations, without worrying about creating tax nexuses.</comment>


Microsoft U-turn on 'nasty trick' pop-up - <AUTHOR> http://www.bbc.com/news/technology-36376962 <comment><USER2> _' The pop-up design had been described as a "nasty trick".'_

This is also sometimes called a dark pattern [http://darkpatterns.org/what_is_a_dark_pattern/](http://darkpatterns.org/what_is_a_dark_pattern/)</comment>


Tar - <AUTHOR> http://xkcd.com/1168/ <comment><USER2> but isn't "xzvf" as easy to remember as "xkcd"? =P

<comment><USER3> Extract zip verbosely from file? The order is important and not very intuitive in most languages :-)

</comment></comment><comment><USER4> I wonder:

Why this was never improved?

Also, good to know I am not the only guy that never manages to type this correctly.

<comment><USER5> What would be an improvement? I type tar from the command line so infrequently that I don't think anything would be particularly easy to remember. Spending the 5 minutes to get it right in a script isn't a big deal.

        tar --help

is surprisingly nice.

<comment><USER6> One improvement would be to have it autodetect the compression type, so you don't have to remember -z, -Z, -J, or the other one I always forget.

However, and here is where I feel the premise of this comic is dissappointing: tar now does this. I mean, maybe he's on a Mac, and thereby his command line tools probably lose more functionality over time than they gain (such as when they switched from GNU grep to BSD grep recently, as part of their ongoing Great GPL Purge), but as a user of GNU tar I was pleasantly surprised when they made this change.

</comment></comment></comment><comment><AUTHOR> so true</comment>