New MIPS64-based Loongson processors break performance barrier - <AUTHOR> http://blog.imgtec.com/mips-processors/loongson-mips64-processors-performance-barrier <comment><USER2> Just the other day someone (chinese characters name) with loongson.cn email started dropping Mplayer patches(fixes,optimisations) on official mplayer mailing list.

I dont remember ever seeing that out of Chinese SoC vendors. They usually ninja patch internally and ship half working garbage binary (Im looking at you Rockchip cocks) to selected favourite vendors.

<comment><USER3> > They usually ninja patch internally and ship half working garbage binary (Im > looking at you Rockchip cocks) to selected favourite vendors.

And if you actually do get their source, you will likely also get your own private hell in trying to replicate their Windows XP-based build environment.

</comment></comment><comment><USER4> Interesting benchmark results: [http://blog.imgtec.com/wp- content/uploads/2015/09/64-bit-CPU...](http://blog.imgtec.com/wp- content/uploads/2015/09/64-bit-CPU-performance-AMD-Intel-ARM-MIPS.png)

• Both MIPS and ARM have surpassed AMD in the low-power SoC area (the only where AMD is even remotely competitive right now), and are comparable to their desktop/server products

• A (2? 3?) years old Intel architecture still beats all three by a wide margin. And the recent Skylakes are again some 10% more efficient.

<comment><USER5> Uninteresting, I would say. Give me performance/Watt, performance/dollar or performance, period, not performance/GHz, or delve into details explaining what makes this this CPU do more per cycle.

For example, this CPU runs at 1.5GHz, the Cortex A57 at around 2Ghz. There goes quite a bit of the difference in speed.

<comment><AUTHOR> I think I address some of your points in the article. I specify that overall peak power consumption for the chip is 30W - this is for an octa-core configuration. This means one CPU roughly consumes 3.5W (if you take out the coherency manager and fabric). Then I also referenced the SPEC CPU2000 performance number at 1GHz. From that you can easily calculate performance per W. If you want more technical details about the architecture, they do have an user manual here [http://www.loongson.cn/uploadfile/cpumanual/Loongson3B1500_p...](http://www.loongson.cn/uploadfile/cpumanual/Loongson3B1500_processor_user_manual_P1_v1.5.pdf)

I also state that a new processor will be released next year and it will run at above 2GHz which should solve the difference in frequency.

</comment></comment></comment><comment><USER6> _Both Loongson-3A2000 and 3B2000 are 4-way superscalar processors built on a 9-stage, super-pipelined architecture with in-order execution units, two floating-point units, a memory management unit, and an innovative crossbar interconnect._

Wow, that's pretty wide for an in order processor that isn't VLIW.

EDIT: All the other references to the Godson/Loongson 3 series I can find say that it's out of order in general - at least those articles that didn't repeat that phrase verbatim (I sense a press release). And you can see the reorder queue in the diagram. Unless they're doing something like the Atom did where the ALUs are in order but the AGUs are out of order, but then why have register renaming?

I found some details here[1] making it very clear this is out of order and what happens at each pipeline stage and some (pretty bad) benchmark results here[2].

[1][http://www.7-cpu.com/cpu/Loongson.html#Loongson3A](http://www.7-cpu.com/cpu/Loongson.html#Loongson3A)

[2][http://www.7-cpu.com/](http://www.7-cpu.com/)

<comment><USER2> As soon as I read 'in-order' I knew it wont be pretty IRL. It might benchmark ok, but real world code is another story. Remember IA64? Itanium was also in- order, relying heavily on compilers.

<comment><USER7> Well, IA64 is not just in-order, but Very Long Instruction Word (VLIW), per Wikipedia a 128 bit instruction had 3 instructions. If your compiler is not smart enough (hmmm, especially if your language is too low level, like C/C++), it sure looks like "just in time" out-of-ordering will beat VLIW in keeping your execution engines running. And surely caching makes a big difference here.

I don't know how to compare a MIPS family in-order superscalar with Intel's P6 style out-of-order. ARM out-of-order cores are supposed to be quite a bit faster than their in-order designs in IRL, aren't they?

<comment><USER8> Most in order architectures approximately double their performance per clock whe they switch to out-of-order.

Examples include cortex-a57 vs a53. Alpha 21264 vs alpha 21164. As well as many of the atoms until very recently vs core2 and similar chips.

With the various arm derivatives from qualcomm, samsung, and apple a under 2 GHz in order CPU doesn't sound particularly impressive. Especially when they talk about "under 30 watts", that's intel territory, not tablets let alone smart phones.

Trying to emulate arm and beat arm on price/perf or perf/watt seems like a long shot with an in-order mips64. Similarly beating intel at price/perf or perf/watt seems exceedingly unlikely with lower IPC and a MUCH slower clock.

The only thing that makes these mips64 look good is the even slower previous generation mips.

<comment><AUTHOR> I agree on the out-of-/in-order commentary. But to paraphrase, with great performance comes great power consumption. [http://www.anandtech.com/show/9330/exynos-7420-deep- dive/5](http://www.anandtech.com/show/9330/exynos-7420-deep-dive/5)

I perceive the situation on binary translation in a slightly different way. I think the aim here is to perhaps ensure that some legacy code written for x86/ARM also runs alongside the apps written for MIPS. So they are not trying to compete, but ensure they have a broad(er) ecosystem.

<comment><USER7> _with great performance comes great power consumption_

Heh. And I suppose that's intrinsically true, with the added shadow registers and logic to drive it all?

</comment></comment></comment></comment></comment></comment><comment><USER9> So let's not forget the larger impact here:

\- It's a CPU architecture who's primary R&D&Fab is outside the US, and in fact in China.

\- As people move to mobile, they could just as easily to Longsoon over ARM.

\- Hey, guess where there's a giant mobile market?

Separately, can these run Irix? I miss Irix.

<comment><USER10> They might be able to run Irix. But why would you use an operating system that hasn't been updated in 9 years? It's not going to have sufficient crypto support to be useful.

That said, the smartphone market in China has been dominated by ARM chips. The real question is whether there's enough market demand for a MIPS-based architecture right now, or if the Chinese government can drive demand away from ARM and towards MIPS.

<comment><USER11> > But why would you use an operating system that hasn't been updated in 9 > years?

The same reason why people still run Apple ][s and Commodore 64s and old DOS machines: nostalgia.

I mean, if I were to try and build myself a _real_ Jurassic Park workstation, it would be a disservice for it to be running Linux on an x86. No, I want the real deal: IRIX on MIPS, complete with an animated Nedry confronting unauthorized users with "Ah ah ah! You didn't say the magic word! Ah ah ah!".

And yes, I'm aware of jurassicsystems.com, but it just doesn't feel the same. It also doesn't have `fsn`, so I can't zoom around my filesystem in 3-D while muttering that "it's a UNIX system; I _know_ this!".

</comment></comment></comment><comment><USER12> Anyone know if these CPU's require chipsets with locked down firmware? Would be really cool if we could get a modern RMS proof laptop again.

<comment><USER13> The most modern RMS proof laptop is the Thinkpad X200 with Libreboot. It's probably still faster than this chip.

</comment></comment><comment><AUTHOR> I don't know if people are aware of this but Richard Stallman (rms) uses a Loongson-based laptop from Lemote.

<comment><USER14> He moved to a Thinkpad X60: [https://stallman.org/stallman- computing.html](https://stallman.org/stallman-computing.html)

<comment><AUTHOR> Oh, that must have happened recently. Thanks for letting me know!</comment></comment></comment>


A simple HTML tag will crash 64-bit Windows 7 - <AUTHOR> http://www.theregister.co.uk/2011/12/21/win_7_bug_crash_risk/

<comment><USER2> Here is the tag: <iframe height='18082563'></iframe></comment>


The DVCS Myth - <AUTHOR> https://www.perforce.com/blog/160209/dvcs-myth <comment><USER2> This idea only rings true if your team is reliant on a single infrastructure service you don't control.

If you maintain mirrors of your repos on multiple servers you control, or on multiple services run by others (eg GitHub + BitBucket) there is no issue when one suffers an outage.

Hell, git's _built-in_ pull-request functionality works over email and doesn't require any specific git server.

I have issues with git specifically (I find mercurial is a better tool for most tasks) but GitHub/BitBucket/etc are not the definition of what dvcs is about.

</comment><comment><USER3> fud</comment>


Humans 'will bully robot cars', Mercedes chief warns - <AUTHOR> http://www.telegraph.co.uk/technology/2016/11/17/humans-will-bully-robot-cars-mercedes-chief-warns/ <comment><USER2> I think in many ways this could be considered a feature and not a problem. Why does it matter if someone butts in front of you? The passengers in the car can relax and let the computer handle the task. Yes it's important to avoid deadlock while merging during congestion but aggressive drivers will always try to butt in front of likely looking candidates, autonomous or not, and this usually doesn't stop progress of the line in general, just maybe frustrates the non-driver?

<comment><USER3> The issue then is, again, humans- the rider of an autonomous car will feel slighted and helpless seeing the cars around them take advantage of their nice and polite driver-AI, and this will make owning driverless cars less appealing to a wide swath of the customer base.

You and I might still enjoy passively riding an altruistic vehicle, but an astonishing amount of the public id is absorbed in these sort of anonymous dominance games.

<comment><AUTHOR> I thought the point of "autonomy" was being able to ignore the whole mess? If I'm constantly worried about how the car is driving, I might as well be a child with my mother driving. How would that be less silly than worrying about the performance of e.g. train engineers and airline pilots?

</comment></comment></comment><comment><USER4> I would think that an integrated dash camera and the ability for the driver to automatically upload video for reporting to law enforcement would prevent this from ever becoming an issue.

This has parallels to the situation in Russia where dashcams are more or less considered a necessity for every vehicle. See [https://www.wired.com/2013/02/russian-dash- cams/](https://www.wired.com/2013/02/russian-dash-cams/)

<comment><USER5> One way to manage this behavior is by having the automated car report the misbehaving cars to both DMV and insurance, have it affect registered drivers points (with some "give") as well as insurance so overly aggressive behavior results in insurance penalties.

So except for a few chronic offenders, most people would learn how to behave while driving.

<comment><USER6> We actually have insurance like that already [0], you get a generally low starting monthly rate, and it adjusts if you speed, start and stop suddenly, are shifting lanes fast, etc. You install a little chip in your car and you can see monthly feedback. If you drive "safe" you actually save a decent amount of cash.

0 - [https://www.mobiliz.ca/en/](https://www.mobiliz.ca/en/)

</comment></comment></comment><comment><USER7> If you just make self-driving cars look like normal cars instead of weird marshmallows than this isn't a very big problem.

</comment><comment><USER8> They have to train self driving cars to deal with human instincts as bad as they are. It's part of the deal, when you're driving, even if you're human. Humans get bullied every day in traffic.

</comment><comment><USER9> Many years back a songwriter in the area around Stuttgart wrote a song in local dialect about Mercedes drivers:

        I fahr Daimler, Stroß gehört meer, wer net Platz macht den nehm i aufs Korn und ins Visir....

I drive Mercedes, Street belongs to me, anyone not yielding, that one is going to be taken into my cross-hairs.

E.g. [https://www.youtube.com/watch?v=d3nMUm4iy8Q](https://www.youtube.com/watch?v=d3nMUm4iy8Q)

At the end it becomes clear the bully behind the 500SE Mercedes is just the chauffeur.

</comment><comment><USER10> That's until they cut off their first car with networked reputation.

Suddenly, say, no cars of the same brand will let you into lanes. Once a particular brand of autonomous vehicle pegs you as an asshole, watch out.

</comment><comment><USER11> I agree with this sentiment. I live in Mt View and we regularly have Google cars on our roads. The cars drive either slowly, or very slowly, and I always try to pass them. I've seen other drivers do the same. If / when the cars become more common, I expect people to do more advanced tactics like cutting the cars off for merging into lanes.

<comment><USER8> In some countries this happens so often with regular driver that it would be business as usual, not abuse, when a self driving car was cut in front.

</comment></comment><comment><USER12> It might even be worse than that -- some people will try to engineer lawsuits using auto-cars as marks.</comment>


When Google Owns You - <AUTHOR> http://www.chrisbrogan.com/when-google-owns-you-a-new-chapter/

<comment><USER2> ...What's his point? When Google is down he can't access his Google apps. If these were all desktop apps, they would be unusable when his computer was dead.

To non-geeks, a dead laptop 'owns them', in the sense that they are powerless against it, as much as Google owns Gmail users.

<comment><USER3> But he _is_ geek. He is owned by a lack of control, not a lack of knowledge. Everything is so interlinked on this kind of web services that even if he did back-ups, he would still be helpless without the access to his social network.</comment></comment>


Is stealing ideas the best way to innovate? - <AUTHOR> https://medium.com/@invoker/is-stealing-ideas-the-best-way-to-innovate-1019cfca820b#.4rekci3mf <comment><USER2> It may lead to innovation, but it also leads to a landscape where large businesses destroy smaller startups before they even have a chance to succeed.</comment>


How Elephant Poop Is Helping Nab Ivory Poachers - <AUTHOR> http://www.smithsonianmag.com/smart-news/elephant-poop-helping-nab-ivory-poachers-180955664/ <comment><USER2> This may help at a policy level, but I feel like it is solving the wrong problem.

Most of the time, poaching is easy to discover because there is a dead elephant on the ground missing its tusks. These game parks already know they have a problem, and often it is facilitated by an insider.

One way it could be useful is if you can trace a set of ivory back to a single poaching network, to understand the network's reach.

<comment><USER3> >One way it could be useful is if you can trace a set of ivory back to a single poaching network, to understand the network's reach.

And that is exactly what they're doing - mapping the ivory trade back to the regions where its occurring, so that they can indeed find out where the network operates and therefore allocate resources to stopping it.

Discovering that a majority of the tusks came from a particular park _is stopping the network where it operates_. Governments can go to those parks and start their investigation into why there is so much ivory coming from their area - uprooting the corrupt networks that allow it to occur.</comment></comment>


If you're the first to enter an empty elevator, you're the new elevator captain - <AUTHOR> https://medium.com/japan-init/elevator-etiquette-in-japan-3cab23474e8c <comment><USER2> I can confirm this. I like that phrasing -- "elevator captain." Nice! What throws many Americans, however, is the need to press the "close" button to avoid waiting an interminable amount of time before the door closes.

<comment><USER3> Is this because the close buttons in Japan actually work? My impression as an American is that they serve no purpose other than to provide a false sense of control.

<comment><USER4> They are there for emergency responders. When the lift is switched to "fire service" with the fireman key the door close button actually will work as a close the doors right this instant button. Furthermore the doors will no longer open on their own. You'd have to hold down the door open button to get the doors to open. Pressing it briefly activates "peeking" mode where releasing the button will close the door back up.

See [https://www.youtube.com/watch?v=mMBnJal9lhA](https://www.youtube.com/watch?v=mMBnJal9lhA) [warning loud music] for how a fireman would use the fire service in an elevator during a fire.

</comment></comment></comment><comment><USER5> So funny. I just got back from Japan. Such a beautiful, respectful, well mannered, well ordered society.</comment>


Insane state of today's advertising part 3 - <AUTHOR> https://plus.google.com/+ArtemRussakovskii/posts/53n5LdCYTbF <comment><USER2> Awesome to see that subject #1 on HN.

At my startup Confiant [1], we block bad ads in stream on behalf of publishers. Cedato aka Algovid aka TLVMedia is one of our prime targets, we block millions of their ad impressions daily.

They are essentially buying cheap display ad placements to resell them as fake video preroll ad placements. They sell on video exchanges like AOL's AdapTV and others. To maximize their yield, they resend ad requests in a loop to multiple parties every few seconds until an ad clears, leading to this massive network load.

We're on a mission to drive them out of business (and we're hiring ;) )

[1] [https://www.confiant.com](https://www.confiant.com) (edit forgot link)

<comment><USER3> The only good ad is a dead one.

With very few exceptions, especially in the consumer space, you won't need advertising if you actually need something. You'll search it out or your friends will tell you what to buy.

Advertising serves as a way for the capitalist class to exert veto power over other aspects of society by yanking funding at opportune moments (see the current Google snafu or Bill O'Reilly's departure from FOX (which was an example of this power being used for good indirectly via public pressure)). It also allows for shows of dominance, strength, and to move fucking product by creating an awareness moat vs your competitors. This means that people often already know they want to buy something, but they'll pick you instead of the other one which is fundamentally different from advertising performing a public service.

<comment><USER4> Everyone thinks advertising doesn't work on them. And everyone is wrong.

<comment><USER5> My claim is that it does work. Astoundingly well. My further claim is that it is not in the public interest.

<comment><USER6> I think people will always try to influence others, and I don't think advertising is the worst form of doing it. If you say that it's not in the public interest you'd have to compare it to alternatives that are.

That said, I think there should be restrictions put on the methods that advertisers are allowed to use. What currently happens in online advertising hurts everybody, including those who rely on ad funded business models.

Another issue is aonymity. In a world without advertising, you'd have to pay for everything directly. Making anonymous payments is extremely difficult and easily outlawed entirely.

<comment><USER7> I'm a libertarian. And putting/enforcing rules on someone who's not aggressing you because you don't like it seems like needing coercion.

You're voluntarily consuming ad-based content, no one's forcing you. If you don't like their ad-supported content, shouldn't you use only content which paid for in different ways? Why should anyone be restricted in their actions because of your opinions?

<comment><USER6> _> Why should anyone be restricted in their actions because of your opinions?_

Because the rights and protections under the law that advertisers rely on only exist because of my opinion and the opinion of other citizens.

Without the law, the concept of private property would be largely undefined. Corporations would not exist. There would be no limited liability, no chapter 11, no enforceable contracts, no trademarks, no patents, no copyrights, no courts, no police, nothing of the sort.

If we want to enjoy the protection that the rule of law affords us, we will have to accept that there needs to be some sort of social process that determines what our laws should be. It's a negotiation.

And no, using ad-supported services is not voluntary in any realistic sense of the word. There are many essential necessities of modern life that are ad- supported and have no real alternatives.

Also, voluntary is a rather ill defined term when it comes to things that most people cannot even know or understand.

<comment><USER8> > If we want to enjoy the protection that the rule of law affords us, we will > have to accept that there needs to be some sort of social process that > determines what our laws should be. It's a negotiation.

I have seen this sentiment a lot on HN as a counter to libertarian arguments, but really it's a straw man. The argument you are making is essentially: as a society we make rules, therefore we can enact rule x. Whereas the libertarian argument is (phrased in the vernacular of your counter-argument): society should only have rules which protect private property and prevent aggression.

> And no, using ad-supported services is not voluntary in any realistic sense > of the word. There are many essential necessities of modern life that are > ad-supported and have no real alternatives.

So? Just because person A depends upon the services of person B doesn't mean that person A can make outlandish demands on the way person B provides said services. Let A and B negotiate and determine the most agreeable terms for their cooperative exchange, sure. Alternatively, A can choose to deal with person C instead.

<comment><USER6> _> The argument you are making is essentially: as a society we make rules, therefore we can enact rule x._

No, I was responding to this very general question by thecrazyone: "Why should anyone be restricted in their actions because of your opinions?".

I was interpreting this question in the sense in which libertarians are often framing it: "What gives society the right to get involved in voluntary agreements between individuals?"

So I was merely explaining my reasoning on why society has a legitimate role to play and why my opinion as a citizen counts for something.

Once that is out of the way, we can go on arguing about what specific rules are good or bad.

And on that point I have one key disagreement with some libertarians. I do not accept the absolute priority of private property over all other interests and freedoms that people value.

I find this primacy extremely contradictory given that there can never be a level playing field and libertarians keep arguing against levelling the playing field where that would be possible to some degree (inheritance tax)

I also question whether private property is sufficiently well defined or definable without taking into account other considerations of what it means to be human.

 _> Just because person A depends upon the services of person B doesn't mean that person A can make outlandish demands on the way person B provides said services._

I don't know what outlandish demands you are talking about.

<comment><USER8> > I find this primacy extremely contradictory given that there can never be a > level playing field and libertarians keep arguing against levelling the > playing field where that would be possible to some degree (inheritance tax)

> I also question whether private property is sufficiently well defined or > definable without taking into account other considerations of what it means > to be human.

I'm sure we could have a very interesting discussion on these objections but I'd hate to go completely off topic. But I'll easily bite :)

> I don't know what outlandish demands you are talking about.

In the context of the thread, clearly the outlandish demand would be regulating the advertising that B uses in providing A a service.

<comment><USER6> _> I'm sure we could have a very interesting discussion on these objections but I'd hate to go completely off topic. But I'll easily bite :)_

OK :-)

 _> In the context of the thread, clearly the outlandish demand would be regulating the advertising that B uses in providing A a service._

I don't want to regulate against annoying ads either. That's not what I'm talking about at all because this is something consumers can see with their own eyes, install an ad-blocker or stop using the service where there are alternatives.

But some of the things that ad networks are doing behind the scenes are so unexpected, complex or even malicious that consumers cannot be expected to understand them or to have voluntarily agreed to them. That's an area where I think something should be done.

We already have a lot of rules on the legality of contracts, on transparency, on duty of care, on liability for damage, etc. Not all of these rules have caught up to digital services yet.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> In related news, uBlock Origin has finally (today) been converted to a WebExtension and is now fully compatible with Firefox 57 and beyond.

[https://addons.mozilla.org/en-US/firefox/addon/ublock- origin](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin)

<comment><USER10> I've switched to Ghostery, and it seems to work fine. Should I go back to uBlock Origin?

<comment><USER11> Ghostery has or has had some controversial analytics called GhostRank that it collects(it may be opt-in I'm not sure). But uBlock Origin is definiently the best content filtering extension I've ever used.

<comment><USER12> It's opt-in, and has also been acquired by a company building a privacy- focused browser (I think?).

<comment><USER10> From what I see, it's a small German startup that puts emphasis on user privacy. Sounds fine to me.

</comment></comment></comment></comment></comment><comment><USER13> I'm actually rather surprised that companies like Google aren't offering solutions to integrate ads into the delivery of the page content itself rather than JavaScript at this point, as it's pretty easy to block the specific domains serving ads. It seems relatively straightforward; the ads would be pre-rendered on the server providing the response and could send the same info a script would for the most part, especially if there was an auxiliary script you could load from your own domain. Not that I'm endorsing the idea, it's just that it seems like an obvious solution to the usage of ad blockers.

<comment><USER14> I never quite understood why domain-blocking works so well for ad-blockers. I'm surprised why sites don't just use a reverse proxy or something to serve from those ad domains. What am I missing?

<comment><USER15> If the ads were static (e.g. advertiser A bought a specific place on one of publisher B's pages, for a month), and advertiser A didn't want independent verification that the ads were seen, then your proposal could be simply implemented.

"What am I missing?"

Many ads are served after real-time auction: whilst your browser is loading and rendering the page, an auction is going between advertisers for the ad spot(s) on the page. The auction happens quickly, but it adds latency. Adding a reverse proxy would add further latency, and would remove the ability for ad networks to properly target ads (e.g. using cookies) and account for impressions.

<comment><USER16> Would you mind expanding a bit on this real-time auction thing, like how common it is and what the process looks like, or could you point me in the direction of the sources you used to make that claim?

Thanks!

<comment><USER17> If you poke around AppNexus, you will find what you are looking for. The process is basically: a visitor comes to the site, each connected ad network/buyer has 100ms to provide a bid, the top bidder wins.

<comment><USER18> What happens with ad blocking visitors? They never become a visitor to bid for?

I'd actually like for my ad blocker to download all ads and pretend to download the ad, and give the impression of an impression. That way someone would have made a bid for that impression.

Otherwise what will happen is that as ad blocking use becomes more and more widespread, the ad viewers become fewer but more profitable (Ironically perhaps more profitable on average than the original set of viewers, because adblock users weren't likely to click in the first place).

If ad blocking is to be a way of killing online advertising in its current form, and not just improving the browser experience (and this is what I think should be the goal) then it needs to cheat the ad networks, they can't just pretend the request never happened.

<comment><USER19> > I'd actually like for my ad blocker to download all ads and pretend to > download the ad, and give the impression of an impression. That way someone > would have made a bid for that impression.

[https://adnauseam.io/](https://adnauseam.io/)

<comment><USER18> Yeah I don't really think the idea of cheating any further (i.e. fake-clicking the ad) is necessary. I just want to appear like a regular ad-viewing browser that doesn't click ads.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> <iframe max-transfer-size="300KB" src="...">

Proposed Transfer Size Policy will allow site owners and ad networks to block abusive ads - [https://github.com/WICG/transfer- size](https://github.com/WICG/transfer-size)

<comment><USER20> Ability to pause iframes, which Transfer Size Policy depends on, is already on Chrome's radar: [https://www.chromestatus.com/feature/5141555102875648](https://www.chromestatus.com/feature/5141555102875648)

</comment></comment><comment><USER21> If anyone is curious (like I was) what exactly is being shown here, the author initially wrote a post in 2016 describing VPAID ad interfaces[0].

It appears this whole thing got started when the Author (who founded AndroidPolice) got a bug request about an AP site ad[1].

[0]: [https://plus.google.com/+ArtemRussakovskii/posts/VgrLdYcoifr](https://plus.google.com/+ArtemRussakovskii/posts/VgrLdYcoifr)

[1]: [https://github.com/archon810/androidpolice- public/issues/67](https://github.com/archon810/androidpolice-public/issues/67)

<comment><USER22> This may actually explain why watching videos in the browser sometimes causes the computer to heat up comparably to a new AAA gaming title.

<comment><USER23> That's more likely a lack of hardware acceleration I recently learned, if you're talking about youtube. They use VP9 by default, which isn't hardware accelerated in most cases.

I installed this recently and the difference in heat and battery life on my Macbook Pro is astounding. [https://github.com/erkserkserks/h264ify](https://github.com/erkserkserks/h264ify)

</comment></comment></comment><comment><USER24> I didn't see any ad blocker recommendations in the comments, so I searched and came across a list on Tom's Hardware of the best ad blockers of 2017. The funny part is that Tom's Hardware was FILLED with these exact kind of ads from algovid and adaptv. Even worse, the list is in a carousel / slideshow format so you have to keep clicking if you didn't GTFO like I did.

<comment><USER25> If you are still looking for an ad blocker, I have had great experiences with ublock origin.

<comment><USER26> Any advantages over adBlock?

<comment><USER27> Their acceptable ads policy turned into "pay to whitelist" which basically pissed people off on all sides. The advertiser's weren't happy about being held to ransom, the users weren't happy with ad blockers that didn't.

</comment></comment></comment></comment><comment><USER28> Looks like they are calling other ads or reselling fake inventory. This is against every single supply source and publisher's rules. They're not only screwing the browser, they're screwing the advertiser too.

</comment><comment><USER29> IMO the way to solve this is a single-click "pay this tiny amount to keep reading" UI.

Now that Amazon's one-click checkout patent has expired this is actually legally viable.

But it won't happen until Chrome is overturned by a new browser because Google will never let such a model succeed :(

It's possible Firefox may successfully do the "phoenix re-viral" thing, in spite of the fact that it would be a literal miracle.

<comment><USER30> I co-founded Flattr and one of the things we learned is that even a one-click is to much effort. So we now have a zero-click solution that measures attention and visits in your browser locally (as Archon810 wrote.) and then your monthly subscription is distributed based on that. Happy to answer anything and or give an invite.

<comment><USER31> Would like to chat further. As CTO in a previous "fintech" start-up I tried to make something like that work: a tiny-pay-per-view is indeed something like the right goal for funding content.

<comment><USER30> Sure, drop me an mail at linus at flattr

<comment><USER31> Done.

</comment></comment></comment></comment></comment><comment><USER32> Has anyone attempted to quantify a rough cost for me to just pay for the http request I'm making and get rid of the middlemen?

I look at some of my spur of the moment purchases in shame, yet paying say $0.001 to browse a page somehow is the unthinkable?

Most don't like ads, as others have said they add latency and are easily subject to fraudulent clicks for the advertiser.

I get the feeling that content-creators and end-users are on the same side here and those in the middle are in the wrong. Not saying get rid of all ads, but it's amazing in 2017 there's no easy pay-to-play on the internet.

<comment><USER33> I quite like this idea. I run a basic http server with a nodejs backend. It gets ~3000 hits a month. It costs around $6 on AWS. It costs around 0.2c per request.

It would be simple to build a system that charges per use - most SaaS companies do this.

The problem is that someone is willing to pay for that content and repost it on the "free web". 99% of people will read the free version (see freemium mobile games).

While content creators agree that they would prefer to charge directly for their content, we live in the attention economy. This means if you don't make yourself hyper accessible then people will go to other places to get their dopamine hit.

<comment><USER34> I would never be willing to pay per page view. I could pay some specified price on yearly basis, but per page is way out of the question.

I'm fine with web sites that use adblocker-blockers. I just don't read their content. Imo that is the way of the future. Obviously these "publications" will lose readers, but maybe we also get rid of most of the junk that's floating around.

<comment><USER32> My problem is advertently blocking the small sites just to get at the big sites. It's not fair, and some really good content gets screwed over inadvertently by it. I am certainly guilty of this.

Adblocking is the hammer that thinks everything is a nail

</comment></comment></comment></comment><comment><USER35> Google Ads, interstitials, multiple Tag Manager accounts, Analytics' tracking cookies, Facebook and Twitter buttons + embedded feeds, Video pre roll ads, Nielsen Tags...

At every new request from marketing you die a little bit inside, because you know you'll never win if you try to make a case against this stuff.

Then one day a manager finally emails you and goes "the website is a bit slow". And you smile while you start preparing your technical report.

</comment><comment><USER36> Holding up AOL One (Adap.tv rebranded) to represent modern digital advertising is like holding up IBM to represent modern Database design. It's bad context bordering on negligence. Adap developed their ad manager before the IAB produced video standards. Utilizing a team in India, which made it compatible with strange workarounds and primitive browsers from decades past, it has been monkey patched to the current clusterfuck it is today...it will take you awhile to detangle it but you can watch the IFrames in IFrames making async requests all along the way.

Adserving platforms are more primitive, the older the company is. The reasons are the same as any other mega-system. Entrenched process and existing revenue stream (fear of change). That being said, look at an actual modern adserver and they don't have the massive multi-call overhead.

</comment><comment><USER37> A bit off topic, but something I'm interested in: would it be possible for a website to generate revenue by using client machines to mine crypto currencies? I would rather go to a website that uses up my CPU and network resources doing that than use up my CPU and network resources AND spam me with intrusive ads.

Edit: solid answers to my question. Thanks everyone.

<comment><USER38> More efficient to separate the mining aspect and just send a micropayment in a web request.

Brave (the browser) implements of version of this.

<comment><USER39> While true, using a browser for mining doesn't require the user to have any cryptocurrency, or even know what cryptocurrency is. It also has a similarly opaque cost to them (in the form of electricity).

<comment><USER38> Brave is getting around that with built-in support for their "Basic Attention Token" which will be rewarded to users just for using their browser.

It will be interesting to see how it works out.

Personally I am just sad that it takes so much energy to maintain the current cryptocurrency networks and they are already too slow for really interesting stuff -- which is why I wouldn't want to add more waste by mining in a browser :).

<comment><USER40> That sounds like a great target for automation abuse? Rev up a bunch of virtual machines, each with a bit of attention to distribute.

<comment><USER38> I am sure they've thought of that, but I am not familiar enough with their product to know how they deal with it.

</comment></comment></comment></comment></comment></comment><comment><USER41> I wish ads were sandboxed and given resource limits. I'd like - network limits (rate limited, bandwith capped), animation limits (low fps), sound limits (no sound), CPU usage limits (not much CPU - maybe a burst at page load), etc. Maybe a sandbox option for an iframe?

<comment><USER42> If it was in Google's interests, we'd probably have that already.

<comment><USER43> Why isn't it? I'm sure Google can make well behaved ads that bring them lots of money. Implementing this would make it even harder for any competition to get a foothold into the market.

Now a google ad is treated (by customers with adblock) the same way as the most shitty ads = gets blocked. Maybe if chrome blocked the worst kinds on its own, less people would use adblockers in general.

Ad blocking is not a hobby. It's a must nowadays. Google needs to step in or face the possibility of 80% of users adblocking. And when you install Ublock you don't pick and choose only "light" filters. You go all the way, to zero ads. Mozilla should have bundled an adblock with firefox ages ago. They could start with blocking only the worst ads. That would be some pressure on the market.

<comment><USER44> You can see Google and co stand on ads here [1]. Enforcing Coalition for Better Ads standards were marketed as adblocking is coming to Chrome for example [2] recently.

[1] [https://www.betterads.org/standards/](https://www.betterads.org/standards/) [2] [https://www.cnbc.com/2017/06/01/google-confirms-ad- blocker-c...](https://www.cnbc.com/2017/06/01/google-confirms-ad-blocker- coming-to-chrome-in-2018.html)

</comment></comment></comment></comment><comment><USER45> Once again I bring out my trusty analogy of ad tech consistently shitting in a well.

Except this time, that's basically where it stops. These guys are shitting in a well, for no good reason, full stop.

</comment><comment><USER46> I've seen some other pretty abhorrent behavior as well. The specific instance that comes to mind is an ad that would load all the resources and content of its click-through landing page into a hidden part of its own iframe. Then in the off chance you click the ad, your browser cache is already warmed and the resulting landing page loads fast. All of that for the 0.1% of us that click ads. It boggles the mind.

<comment><USER2> That's not the reason, it's ad fraud. They are most likely paid on CPC (cost per click) and forcing clicks in a hidden iframe. Or they are "stuffing cookies" for an affiliation link, betting that you might buy on that store later on - and getting a commission out of it.

</comment></comment><comment><USER47> Standards should never have allowed third-party scripts to load without insuppressible user prompts. This cluster-fuck could have been avoided.

<comment><USER48> Third-party script loading is as old as the <script> tag and predates any applicable standards. That is, browsers added <script> before standards did, and allowed cross-site loading of scripts, just like cross-site loading of everything was allowed at that point.

Simpler days, 25 years ago...

<comment><USER49> Now I have in mind the Terminator scenario, except we need to send it for the guy who though on this <script> tag.

</comment></comment></comment><comment><USER50> Might be off-topic. It seems a majority of people are against ads. What are the top few reasons why people dislike ads, excluding reasons such as them just being a nuisance?

My own guesses are:

* People don't like the idea that the platform serving the ads is making money through ads which is not directly tied to the main value they derive from that platform

* Maybe people feel that they are also indirectly contributing to the platform and that they also should have some stake in the revenue

Personally, I have found ads to sometimes remind me of certain things that I could do, or given me new information altogether which I wouldn't have otherwise been aware about normally. And for the most part, my mind mostly tunes them out even when they are there.

Are there other good alternatives to get a product known besides ads that can cover the same breadth?

<comment><USER51> I think for me it's mostly about not being in control over the content I choose to view.

I'm the kind of person who want involuntary ads to disappear entirely (so basically all ads on the internet). But at the same time I don't mind reading about new products, services, cheap offers etc as long as I can control when.

I look at ads in real life in grocery stores. Here in Norway (and I would assume elsewhere but I don't know what it's called) we have a wall at the entrance where people can put up things. It's usually missing cats, piano lessons, local cleaning services, etc. It's there at the entrance but you have to get close to read anything.

Maybe instead of ads disappearing entirely I just wish they were put in one place.

<comment><USER52> My thoughts exactly. If put in one place, maybe they would start competing for attention by increasing their quality. Because today's ads are at their lowest quality possible.

</comment></comment></comment><comment><USER53> I would love to be able to block JS files individually based on energy usage.

<comment><USER29> That would be fine until

      jquery-1.9.1-min.js: 3,389 hours of battery usage

would refuse to budge from the absolute top of the "probably the best to block" list.

The heuristics would be tricky to implement here...

<comment><USER53> That it's only a heuristic would be rather the point; users would be able to select urls they wished to disable.

In fact you could probably crowd source training data for a deep learning model so that it could eventually be automated.

</comment></comment></comment><comment><USER54> I wonder how much junk like this gets through Adsense.

I would have thought Google keeps the ads on their network under tight control. But I see tons of requests to other domains even on pages with just one Adsense ad and no other external content.

Example:

        googlesyndication.com
        google.com
        voicefive.com
        gwallet.com
        doubleclick.net
        doubleverify.com
        mediaplex.com
        scorecardresearch.com
        t4ft.de
        r1-cdn.net
        afy11.net
        dotomi.com

All contacted multiple times on a single pageview with a single adsense ad and no other external content.

What is all that?

<comment><USER55> Trackers, beacons, telemetry; stuff to follow you around the internet and compile a profile on you.

</comment></comment><comment><USER56> [EDIT: As other commenters have mentioned, the simpler answer is that OP's ad is probably an instance of click fraud. Setting that aside, though, the phenomenon I describe below is likely still in effect, even with players playing by the rules.]

I imagine that every stakeholder wants verifiable information that the ad was viewed. It would seem to be a problem of both trust (if some centralized ad server was to stream the analytics server-to-server to the stakeholders, there's no guarantee that that central entity is telling the truth, no way to verify unique IPs, and every economic reason for it to lie) and scale (why pay for bandwidth/CPU for a centralized server to make server-to-server connections when the end user can foot the cost).

The problem is that the number of stakeholders has ballooned significantly, the same way that any sizable financial market will attract intermediaries like flies. And now we have an untenable situation.

AppNexus is possibly the only player I can think of who's built both trust and infrastructure to address this, and indeed they are rolling out products like this: [http://productblog.appnexus.com/get-your-logs- streaming/](http://productblog.appnexus.com/get-your-logs-streaming/) ... but it's very possible that the ecosystem becomes fragmented faster than it becomes consolidated.

<comment><USER38> There are other ad server as API companies that provide raw logs of event data. Even DFP has that.

</comment></comment><comment><USER57> It seems so bad that uMatrix is not even allowing me to access the website. I opened up Chrome Dev Tools, and I really wish I hadn't. Holy hell.

</comment><comment><USER58> whenever there is a problem with ads: assume malice until incompetence is proved.

<comment><USER59> Yep, especially with the advertising industry: if you give them an inch, they will take a mile.

Unfortunately we're in the annoying position where they view themselves as top-shit and "gods gift to the internet" (and admittedly they do provide monetary support to a lot of things) but I don't think that excuses them from behaving as poorly as they have and do and it's long overdue that they're brought into line.

</comment></comment><comment><USER60> I had to install an ad-blocker today because I got an ad trying to scam me served by Microsoft's news website.

If they're not going to take _any_ responsibility for what they're attaching to their pages, then I'm not going to load their random bag of crap.

<comment><USER61> I'm actually surprised it took you this long.

I have had an ad blocker in one form or another continuously installed since the first ad blockers appeared on the scene. And I'll always have an ad blocker installed.

<comment><USER62> The first ad blocker (that I know of) was Interenet Fast Forward which was a Netscape Navigator plugin made around 1996 by PrivNet.

[https://youtu.be/pvzR_bON9qM?t=3m46s](https://youtu.be/pvzR_bON9qM?t=3m46s)

</comment></comment></comment><comment><USER63> I recently tried to browse Groupon to see whether they had any interesting deals. After opening a couple of deals in new tabs, the site became completely unresponsive and every page that I opened to ages to load. I noticed that uBlock was blocking hundreds of things and only after the counter stopped increasing, the page would become responsive.

Solution was to open a browser that doesn't have an ad blocker and the site became pretty responsive.

I understand that it's probably a bunch of tracking to predict what I want to see. But why would they need to much stuff if I'm probably there to buy stuff anyway?

</comment><comment><USER64> There is a trivial solution to this problem. If you don't like ads, just start paying for the content. Don't support publishers that use advertisement as their business model. Alternatives exist.

<comment><USER65> Yes, but then the whole ecosystem is missing micropayments. I subscribe to some sources, but sometimes I just want to read a single article. Would gladly pay 20 cents, if it was a matter of a click.

</comment></comment><comment><USER66> I don't understand. How can a big company like Cedato aka Algovid aka TLVMedia get away with this apparent abuse? I'm thinking that they would be shut down by the ad company immediately.

</comment><comment><USER67> The reason number 2567 why I am using and will keep using adblockers.

</comment><comment><USER68> And let's not forget about the "Ad Blocking DMCA Debacle" A good summary here: [https://www.plagiarismtoday.com/2017/08/15/explaining-ad- blo...](https://www.plagiarismtoday.com/2017/08/15/explaining-ad-blocking- dmca-debacle/)

My takeaway is that DCMA is a powerful weapon to use against ad blocking. It'll be interesting to see how this aspect of the industry plays out.

</comment><comment><USER69> It would be interesting to see how advertising works when Google blocks competitor's ads as "bad ads" in chrome & Apple blocks most ads in safari (iOS 11).

</comment><comment><USER70> Not sure if the requests are faking clicks or sending tracking information.

We had similar incidents before where the requests are for analytics firms to track you:

[http://donw.io/post/github-comments/](http://donw.io/post/github-comments/)

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

<comment><AUTHOR> What's actually happening is they're loading ads in iframes, destroying them, then rinsing and repeating over and over, thus causing all those insane requests.

</comment></comment><comment><USER71> Why are they doing it?

<comment><USER72> Money. They're faking ad delivery.

<comment><USER73> Do the ad suppliers have some sort of analytics in place to catch fraud like this? "This ip viewed 200 adds within 10 seconds!"

<comment><USER46> Not really, all these shenanigans occur in a nested series of iframes. The original webpage that served up the initial ad iframe can't see down into these. Whatever supply partner the webpage is using doesn't want to shed light of this to the publisher or else that supply partner may be replaced.

This issue is illuminated to some degree by 3rd party ad analytics companies that monitor this via crawlers and user panels. This problem is also attacked from the advertiser side that will use 'viewability' providers to ensure their ad is, well, viewed.

<comment><USER74> Advertisers should have a centralized reporting service that pays bounties for submitting violators. Is fraud worth enough to support a whitehat community exposing the ad equivalent of "vulnerabilities?"

</comment></comment></comment></comment></comment><comment><USER75> Possibly best represented by this ridiculous infographic: [https://martechtoday.com/infographic-marketing-technology- la...](https://martechtoday.com/infographic-marketing-technology- landscape-113956)

</comment><comment><USER76> Javascript is the new Flash.

</comment><comment><USER77> If we can't fix this problem, no one is going to be able to do it.

</comment><comment><USER78> "uBlock Origin has prevented the following page from loading: [http://adap.tv/"](http://adap.tv/")

</comment><comment><USER79> Is this what is bricking Safari on the occasional YouTube video? Sometimes a reload works, other times I need to copy the URL and paste in a new tab.

</comment><comment><USER80> Hope ads like this will drop form internet soon. You are right, they are annoying and useless.

</comment><comment><USER81> Looks like cookie stuffing.

</comment><comment><USER82> I can't make it work, what does the ad do?

</comment><comment><USER83> Brave browser?

<comment><USER34> How has it been hardened? It's not just about blocking ads, it's also about preventing malicious content. I'm not willing to risk a beta browser for ads.</comment></comment>


Airbnb seals $500m Olympics sponsorship deal ahead of listing - <AUTHOR> https://www.ft.com/content/3d5e5684-09d0-11ea-bb52-34c8d9dc6d84 <comment><USER2> Brian Chesky said the actual amount is not $500M, although he's not able to disclose what it is due to confidentiality agreement [source: [https://twitter.com/bchesky/status/1196521238752948224](https://twitter.com/bchesky/status/1196521238752948224)].</comment>


Show HN: Run any command and get an SMS message of it's exit code when it's done - <AUTHOR> https://www.npmjs.com/package/noe <comment><USER9> Similar project but with different backends: [https://github.com/dschep/ntfy](https://github.com/dschep/ntfy)

      - <USER2>
      - <USER3>
      - <USER4>
      - <USER5>
      - <USER6>
      - <USER7>
      - <USER8>
      - {linux,mac,windows} desktop notification</comment>


SaleSpread: Review Us - <AUTHOR>

Hello Forum,
I have a new startup business which I am keen on feedback for. It's called SaleSpread.com, and should be in your sphere of interest as an innovative online tech firm.
SaleSpread helps businesses share unwanted or irrelevant business leads, buy enabling them to share these leads with other businesses who are interested in taking on the prospect and client for their own use. We operate an online exchange where users can buy and sell their leads, and we have iPhone, Android and Desktop apps on the way to make it a really connected experience for users.
Take a look at www.salespread.com and let me know what you think about the concept, it's execution, presentation and any ideas etc.
I am really interested in any constructive feedback you might have (negative feedback as well, it really -is- all good ...), so fire away.
Thanks for your time,
Matthew Jackson www.salespread.com <comment><USER2> Very interesting approach. I would say the main page needs to be easier to navigate to content areas.

</comment><comment><USER3> <http://www.salespread.com> \- Linkifying</comment>


Ask HN: What do you think when you hear "I just need a tech co-founder"? - <AUTHOR>

Specific to programmers and based of the Quora post - https://www.quora.com/Startups-and-How-Important-Are-Ideas/Programmers-what-do-you-think-when-you-hear-I-just-need-a-tech-co-founder <comment><USER2> It depends.

If they only say that, then I hear that they have an idea, but haven't done anything to bring it about. Because any business person should be able to tell you what they have been doing to pursue their idea, and give me an elevator pitch.

Did they look at the potential market? How big is it? How many buyers? Consumer focused or business focused but consumer serving? Do they have customers lined up? Investors? Do they have a budget and time table they can show? How long until they are profitable, once they have a product? Do they require network effects to grow and be successful? Who are they competing with? Is there regulation in the industry? And they should be able to answer questions that I, a developer, haven't even considered.

If they can talk about it, show how the market is there, and have buyers lined up, that's like a technical founder having a program written and just needing someone to sell it. It's still not an insignificant amount of work, but the end is in sight.

But if it's just "I just need a tech co-founder for my idea", and they can't talk about it, can't show how it would work, don't have anybody interested, that's not having the program, or even not having written the program yet. That's like not knowing how to program.

They are the business person, they need to be the one talking and selling their product. They need to be able to show how if the idea is made into a product, they can take that product and get money.

Ideas are great, but the old saying is 10% Inspiration, 90% Perspiration. So the person who says that, his or her job is to show that the idea is marketable and potentially profitable.

</comment><comment><USER3> "Please do all the work while I act like a diva about the vision."

</comment><comment><USER4> "I have nothing to bring to the table, not even dumb money, but let me try to fool an engineer."

</comment><comment><USER5> "rrrruuuunnnnnnnnn"</comment>


Google smothers designers - <AUTHOR> http://blog.fawny.org/2009/03/19/google-antidesign/

<comment><USER2> Could you get any more pretentious sounding?

This sounds like a good thing. Google knows where its success comes from and doesn't shy away from that.

But it does sound like there's a bit too much bike-shedding going on in terms of design.

 _These people have less taste than Microsoft, previously the low-water mark._

Less taste, really? I highly doubt it. I've found all of Google's interfaces to be clean. Microsoft's stuff on the other hand...</comment>


Dependency Injection for Android with Google's Roboguice - <AUTHOR> http://www.programmingmobile.com/2011/06/dependency-injection-for-android-with.html

<comment><USER2> Technically speaking it's not Google's Roboguice, it's a library built using Google's Guice.

</comment><comment><USER3> I've used this on several android apps. It's a nice lib and keeps your code clean.</comment>


Hipmob (YC W12) Wants To Become The Premier In-App Customer Service Tool - <AUTHOR> http://techcrunch.com/2013/01/31/yc-backed-hipmob-wants-to-become-the-premier-in-app-customer-service-tool/

<comment><AUTHOR> Hey HN. Excited to open to the public. We're working on live chat, in app helpdesk and a knowledgebase for mobile apps, so if you're going mobile (or tablet) and have features you want, talk to us (ayo@hipmob dot com)

<comment><USER2> This looks great - what kind of API do you guys have? Looks like you've already done the smart thing of uploading transcripts to where people can use them (their CRMs, etc.). Would be awesome if we could query for transcripts given a user identifier.

And then, living in dream-land, would be OAuth and webhooks. We could build some really wonderful off of that!

Excited to see where you guys go, to say the least.

<comment><AUTHOR> Thanks! We already have webhooks, and access to transcripts via the API is on the roadmap. Shoot me a line so we can get you started ayo at hipmob.com</comment></comment></comment>


Vault 0.4 released – a tool for managing secrets - <AUTHOR> https://hashicorp.com/blog/vault-0.4.html <comment><USER2> Can somebody tell me how Hashicorp makes money? They seem to employ people, and they have a page that sends traffic off to technology and solutions partners, but where do they make their own money?

We use Vagrant at work and I'm considering whether and how we could use more of their tooling. But I always want to know about the business model behind the tools I recommend before I recommend them.

Anyone?

<comment><USER3> As the founder of HashiCorp, I feel qualified to answer this.

The adjacent comment about Atlas is correct. Atlas itself is admittingly poorly marketed (something we're working on right this very moment) right now. The best way to describe how we make money is: we target the enterprise user and give them the features, integrations, and support they need in their regulated, legacy-encumbered, etc. environments. Atlas in particular is focused on giving enterprises a flexible application delivery pipeline that is opinionated in a certain way, but flexible enough to support their diverse environments (all at once: containers, VMs, physical machines. Windows, Mac, Linux. Etc.)

Due to our adoption we have the rare benefit of primarily letting open source adoption happen organically, and having large companies approach us as they get more serious about our software.

Vault, in particular, is a good example of this. Vault suffers from an issue where most impressive people who use Vault can't actually publicly say they use Vault. So we have a hard time talking about how widely adopted it is. The best I can give you is from what I said at our HashiConf keynote: "If you traded stocks, used a credit card, or did anything involving a bank, then you've interacted with Vault-secured data." As specific as I can be as to how widely spread Vault is right now.

Anyways, a digression from the original question: enterprises have interesting needs they're willing to pay for. We address those needs in enterprise products (Atlas, others that aren't public yet) and support. We don't have any SaaS-like "enter your credit card and pay us" (other than the Vagrant VMware plugin which predates all of this), and instead do deals with larger companies in a way that most of HN would likely perceive as old school in some sense. :)

Note when I say "enterprise" I'm not trying to exclude anyone. If you're a relatively small company (I didn't click your name to find out), then still feel free to email us any of your concerns and we should be able to either help you ourselves or route you in the right direction.

<comment><USER4> On a slightly more serious note, how do you build your sales pipeline? Is it really as lusciously simple as build great OSS stuff, promote the hell out of it, get a call from Dev lead at Mega Corp? do you have traditional enterprise sales people?

<comment><USER5> Mega Corp has engineers who know what's up. When they're ready, Mitchell gets a call.

This works in specialties where an enterprise solution is very hard and only a very few are tackling it well.

</comment></comment></comment></comment><comment><USER6> Someone correct me if I'm wrong but Vault on its own (without an agent) would be quite difficult to use in a simple web application setup, no?

For example let's say I store an API token in Vault and want to use that in my Node.js application.

That means I can't do "var api_token = MY_API_TOKEN;" because the secret needs to come from vault and get refreshed, etc...

I'd imagine you will need some agent to manage the secret lease/expiry and for that to reload your entire application to ensure you don't end up with old secrets hanging around in the memory.

This topic is not addressed anywhere in the Vault documentation, I looked everywhere I could.

<comment><USER3> We plan on augmenting the documentation with a user-friendly "guides" section. A big rework of a lot of the docs is actually very high on the near term TODO list, so I'm sorry for the current state of it.

As for how you can more easily use it, we recommend [the now weirdly named] consul-template or envconsul. The former ([https://github.com/hashicorp/consul- template](https://github.com/hashicorp/consul-template)) will put secrets automatically into files and watch for changes, update the file, and refresh the process. If you put the files onto a non-swappable ramdisk, then it is reasonably secure (relative to most things, less secure than deeply integrating with Vault).

Envconsul, on the other hand, injects secrets as environment variables to a process. This is also reasonably secure but users have to be aware of the various ways that env vars can be read out of process (/proc for example).

These are the two easiest ways to get started that allow Vault to be used with brownfield software. If you greenfield something, integrating Vault 1st class is the way to go for the most security and is what we're seeing bigger users go for.

</comment></comment><comment><USER7> There sure are a lot of these systems these days. While I'm always happy to see innovation in this area, I'm personally beginning to get confused as to why I might prefer to use (and probably then contribute to) one of these projects over another. After all, there's this, and Lyft's Confidant [1], and Square's Keywhiz [2], and plenty more that don't come to mind right now. They all have nice documentation about what they do, but none of them sufficiently explain to me what architectural differences they have, their pros and cons. I think it would be great to see that added to these products' pages at best, or at least some guy write a blog post about it.

[1] [https://lyft.github.io/confidant/](https://lyft.github.io/confidant/) [2] [https://square.github.io/keywhiz/](https://square.github.io/keywhiz/)

<comment><USER8> > none of them sufficiently explain to me what architectural differences they > have, their pros and cons.

Have you looked at [https://vaultproject.io/intro/vs/index.html](https://vaultproject.io/intro/vs/index.html) ?

<comment><USER7> +1 to what whisk3rs said, as that's how I feel, as well.

For example using Vault v. Keywhiz [1] since I made that comparison earlier, this page feels like it's written to say "Vault does X. Keywhiz does too." That's not really what I'm looking for; I can diff the two projects' features in that way as well, but I want to know why it is that Vault is _better_ , i.e., why is it that it exists, what sets it _apart_ from other solutions I can use? Why should I invest my time and port my infrastructure into this project? Should I expect it to be around or abandoned in a year if there is no adoption?

I probably should have clarified this in my original post; sorry for the confusion.

[1] [https://vaultproject.io/intro/vs/keywhiz.html](https://vaultproject.io/intro/vs/keywhiz.html)

<comment><USER9> I'm one of the Keywhiz developers, and we've been considering writing such a page, though I've been hesitant to do so because I'm not totally familiar with the alternatives: I have no operational experience with Vault or alternatives, and haven't put a ton of thought into this comparison.

From my limited perspective: Keywhiz is a system to take secrets, stored in a database, decrypt them with an HSM backed key, and expose them as files on a server. Because the secrets are exposed as a fuse filesystem, they require zero special code in your applications. Most other secrets stores just provide you with an API that requires custom integration work. You could probably even modify keywhiz-fs to talk to a Vault server.

On the other hand, Keywhiz doesn't know anything about the secrets inside it, so there's not much out of the box for secrets revocation, and other operations like that. There's also minimal secrets generation: We just provide an API to handle that. The biggest sources of secrets for us are service-to- service TLS certs, generated from our deploy system, which just calls the automation API to put the certs it gets from our internal CA. Keywhiz has a plugin system for generating secrets, but it's quite simple compared to what Vault has.

Vault also has some operational decisions that seem scary to me. They have a scheme for "unsealing" a vault with a set of secrets an operator has to input. This seems quite likely to cause an outage, while defending against an attacker you've noticed but who hasn't managed to steal the secrets out of your unsealed vault. While operating, your vault is unsealed, so an attacker who gets root has your secrets in both Keywhiz and Vault, but a service restart causes an outage. If you could somehow (via physical access, perhaps) boot a malicious OS onto a Keywhiz server, and your HSM doesn't defend against that, you could read secrets. For Vault, you also need to steal the keys to unseal. But those are accessible to humans, so that's probably easy.

As for lifetime, we don't expect Keywhiz to go anywhere. It's a crucial part of running Square. We've been using it for years now (though only open-sourced it earlier this year), and will probably continue to exist as long as the company does.

I'm happy to answer any other questions, too.

<comment><USER10> I hate to nit, but do the applications really not need special code? Most applications require secrets in one of their own config files, or through some other mechanism that is not _some_ file in _some_ format. If you need to write the code to get this secret off the file system and to where the app can use it.. What's the difference between using a simple client to fetch from vault vs fetch from the file system?

I don't currently use either vault or keywhiz(we rolled our own solution using KMS and dynamodb) so I'm not really knocking either method. The current state- of-the-art with configuration management and secret distribution(particularly for container stuff) still requires a lot of customization code specific to each wrapped application, unless you wrote it all yourself to suite.

At the risk of sounding like a fanboy though, I will say that my own solution and others that have come out feel very itch-scratchy compared to vault. From what I have read about vault it has a much more thought out and productized vibe. Lots of cool features beyond delivering an encrypted blob from point A to B. I get this impression from a lot of Hashicorp components in general, and feel it's a shame larger open source projects like Kubernetes aren't integrating them while letting scaling to 200 hosts be a blocker to their next release... But I digress.

<comment><USER9> Well, our #1 use case is TLS certs, and basically every app supports reading them from a file.

For config files with secrets, there's often a way to include another file, or sometimes we just drop the whole config file into Keywhiz.

Here's an example from the Keywhiz codebase, of a file that's loaded from disk, but in prod could be swapped for a properly secured secret [https://github.com/square/keywhiz/blob/master/server/src/mai...](https://github.com/square/keywhiz/blob/master/server/src/main/resources/keywhiz- development.yaml.mysql#L91)

In development, you don't need to run Keywhiz, so you can just write a file on disk, so that's a nice advantage: Less things to depend on.

</comment></comment></comment></comment></comment></comment><comment><USER11> Vault fits in with my existing stack very well. Though a simple tool it solves so many of the common security issues with modern architecture (secrets distribution, multi-factor auth, compatible with multiple public/private networks simultaneously, has an API and GUI...). It's clear the authors have run into the problem time and time again.

And yesterday I got it to build and run on SmartOS too, for extra security and scalability. Thanks to Hashicorp team for their work, and their commitment to open-source.</comment>


Launch HN: Trip Share AR (Demo) - <AUTHOR> https://play.google.com/store/apps/details?id=fr.jgl.triparexperience <comment><AUTHOR> Hello,

I am Jacques and I am playing around ARCore (Augmented Reality SDK for Android) to create new experiences.

Trip Share AR (Demo) permits you to record short videos of your trip and customize it with AR (3D characters and objects) and interactive experiences (360 visit, Photo album, etc.)

Have a try !</comment>


'Carmack Lines': Playing with Javascript - <AUTHOR> http://csbrooks6.github.io/2014/01/04/carmack-lines-playing-with-javascript/

<comment><USER2> Took me less than 5 minutes: [http://play.golang.org/p/RnrpAs- iH5](http://play.golang.org/p/RnrpAs-iH5)

I really like the outcome with multiplication: [http://play.golang.org/p/vF9aq6xF10](http://play.golang.org/p/vF9aq6xF10)

<comment><USER3> That is nice! I couldn't resist the curiosity about the other operators, so I extended your code to include them all on one page for easy comparison;

[http://play.golang.org/p/O0F1FiAl6C](http://play.golang.org/p/O0F1FiAl6C)

mod looks super interesting too.

<comment><USER4> try y^2 + x^2 and y^2*x^2

</comment></comment></comment><comment><USER5> Wonder why this was hard to imagine. x+y is constant along diagonal lines, and any given bit flip will happen every 2^b pixels. Multiplication may be a little harder but still it's a quick way to paint contour lines.

</comment><comment><USER6> > I'm kind of amazed at how fast Javascript executes, at least in Chrome. I'm > iterating over 16,384 pixels every time you hit the button, and there's no > perceptable delay at all, at least on my Macbook.

You have a computer that can execute 3 billion synchronous instructions per second* . Suppose that javascript was extremely _in_ efficient (it's not), and required 10,000 machine instructions to iterate through the loop and set a pixel. The time to execute 10,000 machine instructions is about 50 milliseconds. I found that I didn't notice a delay until about 200 milliseconds (modifying the code with a setTimeout function). Such excessive waste would not be noticeable to a casual observer (you can run randomized A/B tests on yourself to investigate this :) ).

The work that has gone into v8 is very impressive. Arguably, however, the sheer brute force power of modern CPU's is more so. Don't underestimate it. :)

* Give or take. Setting pixels is an offscreen operation and should incur minimal I/O and scheduling overhead.

</comment><comment><USER7> That's nothing. I was _blown away_, absolutely blown away, when I saw a Sierpinsky triangle emerge out of bitwise AND:

[http://play.golang.org/p/VQ-gEFB271](http://play.golang.org/p/VQ-gEFB271)

(Sorry for the ugly code, I just copy/pasted and changed the example from mseepgood here, and I'm not a Go coder.)

</comment><comment><USER8> Nice!

There is a bug though that confused me a bit. The input has the value 1, but the hardcoded call of the draw function uses 7 on page load. I.e. line 66

      draw(7);

<comment><AUTHOR> Oops, sorry about that! Fixed now.

</comment></comment><comment><USER9> > I'm kind of amazed at how fast Javascript executes

I'm a little surprised by the author's surprise. I am on an old 1GHz laptop right now, and on both firefox and chrome it runs so fast there is no noticeable delay between clicking and seeing a result.

Which seems reasonable because it's doing a pretty small computational loop that browsers are quite good at optimizing these days. Browsers have been competing on exactly these things for years.

</comment><comment><USER10> I've been making these for a long time. One of my favorites is (x XOR y) MOD 3 != 0

((x ^ y) % 3) != 0

Other primes like 5 and 7 look interesting as well.

<comment><USER11> With ((x | y) % 7) != 0), I get this result in Processing: [http://i.imgur.com/K35xxI7.png](http://i.imgur.com/K35xxI7.png)

I think I know what I'll do for the rest of the evening.

<comment><USER12> Wow, very cool: [http://play.golang.org/p/1X6UljMqpD](http://play.golang.org/p/1X6UljMqpD)

</comment></comment></comment><comment><USER13> Awww I see optical illusion!</comment>


Using Prediction Markets to Enhance US Intelligence Capabilities (2006) - <AUTHOR> https://www.cia.gov/library/center-for-the-study-of-intelligence/csi-publications/csi-studies/studies/vol50no4/using-prediction-markets-to-enhance-us-intelligence-capabilities.html <comment><USER2> Prediction markets have consistently proven to be one of the best ways of predicting the future (per tfa). For them to be most effective however, they need scale (many participants) and real material value at stake (money). Unfortunately, the underlying mechanism that makes them work is gambling, and most societies have rules to control and limit that. As a result few prediction markets have been able to form and remain in operation. This costs the world quite a bit, because the emergent value they create - the most accurate knowledge of the future - is applicable to so many people beyond those doing the gambling.

Imagine a big corporation studying the feasibility of a large capital outlay for some factory in a semi-stable country. It would be very valuable for them to know the probability of a government coup, the odds of a natural disaster, and various other hard to estimate metrics before they spend their X billion dollars. If there was a highly liquid and active global prediction market, they could look up the current odds of any event that interests them, and factor it into their feasibility, without ever having to gamble.

Additionally organizations can better protect their businesses by using these markets to hedge against events that aren't covered in the few positions available on financial markets.

I could go on and on with valuable use-cases that go far above the gambling.

I'm the lead UI engineer at Augur, a decentralized blockchain-based prediction market, and we're attempting to solve this. I really hope we do, the world would be a better place.

</comment><comment><USER3> Looking at the date, this isn't that surprising.

The idea itself is a bit older: the Iowa Electronic Market had been taking election bets since the late '80s, but they exploded in popularity in the mid 2000s. HP had an internal prediction market that allegedly estimated DRAM pricing very accurately. Pfizer had one where employees could "bet" on new product ideas and there were tons of startups trying to build them for movies, sports, etc.

I haven't heard much about this since then, or perhaps the idea of crowdsourcing has just become pretty standard.

</comment><comment><USER4> This is a classic plot. I highly recommend the futurist John Brunner's "Shockwave Rider". [https://en.wikipedia.org/wiki/The_Shockwave_Rider](https://en.wikipedia.org/wiki/The_Shockwave_Rider)

The immediate and obvious problems stem from self-satisfying actors. "Oh, 10,000:1 on blowing up Country Y's embassy in Country Z this week! Lets go make some money boys."

<comment><USER5> Lets think carefully about the immediate and obvious problem.

If a terrorist plans to blow up an embassy and places bets on this action, he's _directly transmitting his plans to the public_. The price of "embassy bombing" skyrockets, security agencies are notified, and his odds of success go way down. (His odds of surviving the attack and collecting his money also aren't that high anyway.)

Now consider the possibility that the terrorist leaks information to his supporters/criminal underworld/etc - e.g. the gangsters selling him semtex. These guys would never betray him, but on the other hand they see some free money sitting on the table. They place bets on an attack, the price goes up, and again agencies are notified. That's a good thing - a truly anonymous way for criminals to probabilistically inform on each other.

When smart people like Robin Hanson (who was in part behind this proposal) and various CIA types get behind a proposal, you should always think twice about the "immediate and obvious problem". The folks proposing this aren't stupid, so they probably thought about it too.

</comment></comment><comment><USER6> After reading The Human Factor by Ishmael Jones, I can't help but think this is a boondoggle misdirecting the Agency from human intelligence gathering. I hope I'm wrong.

<comment><USER5> The entire goal of this proposal is to gather human intelligence and combine it with analysis and other forms of intelligence into a coherent probability estimate. If I have knowledge of an attack, I'll bet in favor of it (to cash in). This leaks information about it that you probably wouldn't get any other way.</comment></comment>


Web Bot - <AUTHOR> http://en.wikipedia.org/wiki/Web_Bot

<comment><USER2> wow, I never knew that "new age" made it to the web.

</comment><comment><USER3> How would it be possible for a fucking computer to predict the Space Shuttle Columbia disaster, knowing that the cause of the disaster was "a result of damage sustained ___during_launch___ when a piece of foam insulation the size of a small briefcase broke off the Space Shuttle external tank (the main propellant tank) under the aerodynamic forces of launch." o,.O</comment>


Ask HN: Does Facebook marketing work for any of you? - <AUTHOR>

Use this article as a baseline of the discussion: http://www.cnbc.com/id/101151565#_gus<p>Does Facebook marketing work for any of you? I'm in ecommerce and no one I know in the industry can make FB work on a profitable CPA-basis. I'm curious to see if anyone out there has made it work. <comment><USER2> Facebook marketing works. But I think you have to look at it from a different approach. Social media is about building human-to-human relationships. That's why ads don't work too well. But there are companies who do get good conversions with FB ads. Depending on the creative, the product and demographic.

There are 3 things that I've done to make social media work for me.

Actively sharing content - I use a combination of Feedly/Buffer to post content. So it automatically posts 5 times a day. My followers like, re-share, and comment.

Be engaging - If people message me or comment, I always respond. I believe having a high quality one-to-one relationship is important above all else. I NEVER ask them to try out my product on the first conversation. NEVER. Most of the time I get turned off when businesses do that to me.

Audience building - I think this is the hardest and most important part. If you have no audience there's nobody there to read the content you're posting. And in turn there's nobody there buy the products you're selling. You need to actively find people to engage with.

<comment><USER3> I agree with audience building. It's like the huge elephant in the room. Everyone knows you need to share engaging content, blog, etc.. but how do you do so when you have no audience to begin with?

<comment><USER2> It's quite easy to build your audience. All you have to do is search for conversations you're interested in and insert yourself. So let's say "lean startup" example. Find people who are talking about that now and engage.

The hard part is doing this at scale while still preserving the human-to-human relationship.

</comment></comment></comment><comment><USER4> I've had great luck with retargeting on the FB news feed. Here's my writeup: [http://planscope.io/blog/putting-retargeting-to-work-for- you...](http://planscope.io/blog/putting-retargeting-to-work-for-your- startup/)

</comment><comment><USER5> I just started using FB ads for a sports trivia app I launched ([http://www.playhattrick.com](http://www.playhattrick.com)). So far it's been surprisingly good. We had a big surge in downloads and usage today. Both news feed in in-app ads are getting about a 1% CTR which I consider good for FB.

It's too early to tell if I can make it profitable. Tying ad clicks to installs and in-app purchases (conversions) is also something I'm still getting the hang of.

</comment><comment><USER6> There was a discussion on that article here earlier

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


Ask HN: Why do many websites use a country code as the top-level domain? - <AUTHOR> Many top-level domains correspond to a specific country code, such as <i>.ie or </i>.nz. I'm familiar with the .com, .edu, .org, .gov convention used in the United States, so using the country code as the top domain seems pointless and confusing to me. For example, for a long time CERN used cern.ch despite the fact that they're located in both France and Switzerland.<p>Why is this the current practice? <comment><USER2> In Sweden, my home country, the se TLD became the de facto default for local companies, or the Swedish branch of international companies. Using an se domain just seemed like the correct choice for a Swedish site. I'm guessing it's for practical reasons to begin with. It was probably much easier to deal with the local registrar, for example. Payments and the registration process were not as simple or fast as they are today.

RFC1591 may also give a hint:

"This domain has grown very large and there is concern about the administrative load and system performance if the current growth pattern is continued. Consideration is being taken to subdivide the COM domain and only allow future commercial registrations in the subdomain."

[https://tools.ietf.org/html/rfc1591](https://tools.ietf.org/html/rfc1591)

</comment><comment><USER3> Probably because the domain was available in the country code and not the .com? Many CC TLDS opened up registration to those outside of their country, making it more common to register domains in those TLDS.

</comment><comment><USER4> Many public institutions use the .us TLD. The Sonoma Public Library in the northern county of Sonoma in California is sonoma.lib.ca.us

</comment><comment><USER5> I can't answer fully, but TLD governance does vary. That will sometimes contribute to the decision to use one or another.</comment>


Adding Empty Set Literals to Python - <AUTHOR> http://philipbjorge.com/2013/03/16/adding-empty-set-literals-to-python/

<comment><USER2> "I thought {@} would be a good for an empty set because it arguably looks like the empty set symbol"

I'm just nitpicking but I don't think this is a good justification - If the @ symbol looks like the empty set symbol, then {@} is the set containing the empty set

</comment><comment><USER3> I personally prefer dict() to {} anyway, so I don't really miss the lack of an empty set literal.

Adding a set literal was a slippery slope anyway. Where's my frozenset literal? Where's my namedtuple literal?

(I also don't particularly like the {} syntax for dicts, because there is {'too_much': 'quoting'} which I find rather ugly. I much prefer dict(too_much='quoting') or, even better, Perl's solution: { too_much => 'quoting' }.)

<comment><USER4> I also prefer the dict() function as well as JS object literals but it's too bad there's a performance penalty to using dict().

<comment><USER3> There's a performance penalty to using Python, too. I wouldn't let miniscule detail affect whether or not you like the code you're reading. (By that logic, you should represent sets as {'element': 1} instead of set('element'), because calling the function "set" is slower than making a dictionary object from the special syntax.)

<comment><USER4> > There's a performance penalty to using Python, too.

I agree, but if it wasn't for the fact that using dict() is _six_ times slower than using literals then it wouldn't make much of a difference arguing code style [1].

> (By that logic, you should represent sets as {'element': 1} instead of > set('element'), because calling the function "set" is slower than making a > dictionary object from the special syntax.)

Which is why I guess there are now set literals in Python (just not for empty sets :).

\-- [1]: [http://doughellmann.com/2012/11/the-performance-impact-of- us...](http://doughellmann.com/2012/11/the-performance-impact-of-using-dict- instead-of-in-cpython-2-7-2.html)

<comment><USER5> You're worrying about a constant slowdown (6x) on a constant operation (constructing a dictionary with a fixed number of items). In terms of computational complexity, that amounts to two times a negligible constant, i.e., nothing.

I think the reason for having set literals is not performance but completeness and prettier syntax.

</comment></comment></comment></comment></comment><comment><USER6> Executive summary: If you don't like part of the language, it is really easy to add your own hack and make it worse ;-)

Really, you should trust the core developers on this one. Empty set literals are missing from Python for a reason.

<comment><AUTHOR> I just wish someone could find the old discussions...

The main argument I could see against empty set literals was how wrong it felt adding it to the grammar. Even adding 3 lines of code for the feature, felt like it was just creating chaos in a zen-like codebase.

<comment><USER7> [http://mail.python.org/pipermail/python-3000/2007-April/0066...](http://mail.python.org/pipermail/python-3000/2007-April/006620.html)

[http://mail.python.org/pipermail/python- ideas/2008-January/0...](http://mail.python.org/pipermail/python- ideas/2008-January/001316.html)

<comment><USER8> In both of these replies, Guido is referring to older discussions. I'm curious now.

<comment><USER7> [http://mail.python.org/pipermail//python-3000/2006-August/00...](http://mail.python.org/pipermail//python-3000/2006-August/002786.html)

[http://mail.python.org/pipermail/python-3000/2006-April/0014...](http://mail.python.org/pipermail/python-3000/2006-April/001400.html)

</comment></comment></comment></comment></comment><comment><USER9> That ain't orthogonality, _this_ is orthogonality:

        dict() = {}
        set() = <>
        tuple() = ()
        list() = []

(btw, does anyone actually use `<>` as `!=`?)

<comment><USER10> They finally got rid of <> in Python 3 (together with the `` as being alias for repr).

<comment><USER11> And they're not going to add new syntax to Python 2.7 (and the core team has been empathetic that there would not be a 2.8), so `<>` could easily be repurposed for "empty set".

Of course `<1, 2, 3, 4>` would then have to be an alternative set literal.

<comment><USER5> This would conflict with greater/smaller than operators, which are also used on sets to express sub/superset relations. If it wouldn't cause trouble in the formal grammar, then at least in terms of readability.

<comment><USER11> > This would conflict with greater/smaller than operators, which are also used > on sets to express sub/superset relations.

Not any more than `[` being used for both literal lists and indexing.

> If it wouldn't cause trouble in the formal grammar, then at least in terms > of readability.

It wouldn't cause the slightest trouble in the grammar, and I don't think it'd cause much if any trouble for readability either.

<comment><USER5> In terms of readability the angular brackets arguably don't nest well: <<<0, 1>, 2>, 3>.

Also, having braces for sets happens to coincide with mathematical notation. Angular brackets would be more appropriate for tuples, in this regard-- although the brackets used for tuples in mathematical notation are less acute: \langle and \rangle in LaTeX.

I think it's pretty unfortunate that for practical purposes we're forced to make do with what's available in the ASCII character set, which is pretty much an accident of history. My favorite solution to the OP's problem would be to use the Unicode empty set symbol. People who for some reason aren't able to type it could fall back to set(), and in terms of reading it will be immediately obvious to everyone that the empty set is intended, which doesn't hold for all the ad-hoc solutions suggested until now.

</comment></comment></comment></comment></comment></comment><comment><USER12> I think it would be best if empty dictionary was {:} and empty set was {}. Of course, it would be insane to make this change.

</comment><comment><USER13> Maybe Guido doesn't like it because it looks weird when compared to the rest of Python's syntax? Still, I think it's cool. Having sets availably without importing anything is one of the things I love about Python.

set = <> is still available.

<comment><USER14> _set = <> is still available_

Did this get misformatted? I don't know what you mean.

<comment><USER15> I believe sciencerobot is saying that "<>" could be used as the empty set literal.

<comment><USER14> Oh I see, thanks. "s=<>" is less ugly than "s={@}" but, obviously, is inconsistent with "s={1, 2, 3}".

<comment><USER16> Then fix that: s = <1,2,3>

I think that's better than using the same brace-type for sets and dicts anyway, and it can't be as confusing as () == tuple(), (x) == x, (x,) == tuple([x]).

</comment></comment></comment></comment></comment><comment><USER17> The webfont doesn't load for me because I have Ghostery installed (it blocks remote tracking scripts) so the page is all blank except for the code snippets (because Adobe Typekit is blocked). You should consider adding a fallback font.

<comment><AUTHOR> Thanks and will do!

I just added a 1 second timeout that puts a default font on if the webfont hasn't loaded. Just tested with ghostery and it should be good to go.

</comment></comment><comment><USER18> > What I learned: It's not always hard to make interesting changes to large > projects.

Should be, it's not always hard to make interesting changes _to very well- designed and well-architected projects_

</comment><comment><USER19> I vaguely recall seeing a mailing list thread where `{-}` was proposed. I think it was rejected based on parsing ambiguity, i.e. `{-1}` vs `{-}`. (Or it's possible I might be losing my memory)

<comment><AUTHOR> I originally implemented it that way and had that exact same issue (it's one of the revisions on github). Similarly, {/} would also be a problem.

<comment><USER20> How about {,} or s{} ?

<comment><AUTHOR> I didn't think to do {,} which I like. s{} looks weird to me, but I couldn't tell you why.

<comment><USER20> The s{} alternatve is based on the strange r'' or u'' syntax i've gotten used to.

</comment></comment></comment></comment></comment><comment><USER21>
        There should be one-- and preferably only one --obvious way to do it.
        Although that way may not be obvious at first unless you're Dutch.

<comment><USER22> Which is more Pythonic?

list() or []

dict() or {}

set() or ????

I would argue that the left is more pythonic and expressive.

<comment><USER21> Don't forget tuple() and ().

I don't think any are more pythonic. They are all valid python.

</comment></comment></comment><comment><USER23> Is it just me, or is it a little ... obsessive to be _this_ annoyed with having to use `set()` instead of `{@}`?

<comment><USER24> What, you've never gone and hacked an interpreter because you were mildly annoyed by something? I don't think he actually means for it to be used in production.</comment></comment>


Introducing GraphAware Neo4j Framework - <AUTHOR> http://graphaware.com/neo4j/2014/05/28/graph-aware-neo4j-framework.html

<comment><USER2> Nice framework! I released another Neo4j framework, but using Clojure:

[https://github.com/zubairq/coils](https://github.com/zubairq/coils)

<comment><USER3> Hey, this is interesting. Does it rely on Neo4j server or embedded?

I'm the founder of GrapheneDB, a managed hosting service for Neo4j databases. I'm interested in knowing if our service would be compatible with your framework.

<comment><USER2> I just tried GrapheneDB but got an error, can you help:

[http://testdb.sb02.stations.graphenedb.com:24789/](http://testdb.sb02.stations.graphenedb.com:24789/)

Network Error (tcp_error)

A communication error occurred: "Connection refused" The Web Server may be down, too busy, or experiencing other problems preventing it from responding to requests. You may wish to try again at a later time.

For assistance, contact your network support team.

<comment><USER3> Thanks for trying it out!

Sorry, I've been taking a few days off and have had very limited internet access. Would you please open a support ticket so that we can help you figure out what's happening with your connection?

<comment><USER2> I figured it out, it is a firewall issue. Can it work over port 80, as most European companies block other ports

<comment><USER3> Not at this time, I'm afraid.

<comment><USER2> Ok, no worries. I'll try to find another solution then. Thanks anyway</comment></comment></comment></comment></comment></comment></comment>


Show HN: Host your 3D printable projects with version control - <AUTHOR> https://cubehero.com/ <comment><USER2> This looks like it's come a long way from the demo a few months ago with the visual diffs of objects. Good job on getting this far! I might have to bring in a few of my projects just to play with it.

<comment><AUTHOR> Thanks! I've found it useful so far, for my own printable projects. Defn play around with it, and let me know what you think. Any feedback is helpful, both good or bad. Always looking to make it more useful and friendlier to use. firstname.lastname@example.com

</comment></comment><comment><USER3> Interesting, I wonder how this compares to what Ezra's working on.

He mentioned a git-based community site for 3D models that incorporated visual diffs at RailsConf 2012: [http://confreaks.com/videos/911-railsconf2012-what- a-long-st...](http://confreaks.com/videos/911-railsconf2012-what-a-long- strange-trip-it-has-been)

<comment><AUTHOR> At which point in the talk does he mention it? I did talk to him on the phone a while back. So unless he met others doing the same thing, or he's doing the same thing, I guess he was talking about Cubehero.

<comment><USER3> It's about 38 minutes into the video:

<http://www.youtube.com/watch?v=Alko6wQo8mk#t=38m>

<comment><AUTHOR> Ahh, I guess he's working on his own version of git-based hosting with visual diff

</comment></comment></comment></comment><comment><USER4> For an interresting approach to 3d model diffing, please check this site - <http://3drepo.org/> (not affiliated with it, but found it while doing some research on my own)

<comment><AUTHOR> Cool, I hadn't heard of these guys, but I'll defn check it out and read the papers.

</comment></comment><comment><USER5> I am going to host my projects here instead of Thingiverse.

<comment><AUTHOR> Sweet. I'll get those features you asked for soon!

</comment></comment><comment><USER6> Someone should also come up with 3d printable objects marketplace service too..with payment option etc built in

</comment><comment><USER7> Why would anyone want to post their projects here w/o any kind of license details? "All rights reserved." to me means that you own what I upload.

<comment><AUTHOR> Hrm, I can see where the confusion is. Actually, on the sidebar of each project, you can see that the projects are creative commons.

The "All right reserved" is for Cubehero itself, not the projects hosted on it. I actually took the lead from Github, as they also have "all rights reserved" at the bottom of their website as well, even though they don't lay claim to the projects hosted on their site (AFAIK).

It wouldn't make sense for me to own what you upload. I want to provide something useful to people, not to Own All The Things.

What would make it more clear when you're looking at the project? Bigger license badge?

<comment><USER7> Well, I looked and I didn't see anything at all about license. Do you only see the badge for already uploaded projects? Why would I look at existing projects for licensing terms?</comment></comment></comment>


Killer captca: These guys really don't like spam - <AUTHOR> http://www.geek.com/articles/geek-cetera/killer-captcha-these-guys-really-dont-like-spam-2011034/

<comment><USER2> Already discussed in <http://news.ycombinator.com/item?id=2287980> as mentioned in the geek.com article at the end.</comment>