Bill to End Patent Office Validity Challenges Introduced in House - <AUTHOR> https://news.bloomberglaw.com/ip-law/bill-to-end-patent-office-validity-challenges-introduced-in-house <comment><USER2> Okay, what does the bill actually do?

1\. Switches the US back from first-to-file (which is the norm in literally the entire rest of the world) to first-to-invent. This is something that sounds like a good idea, but in practice ends up being more bureaucratic hassle than any sort of actual improvement.

2\. Repeals inter-partes review, i.e., a means to assert "this is a bad patent." Note that SCOTUS decided in April that inter partes review is in fact constitutional, so I assume this is basically a change of tactics of litigators from "try to get SCOTUS to rule it unconstitutional" to "try to repeal the law."

3\. Eliminates fee diversion. I don't know the law well enough to understand what exactly it's trying to do here.

4\. Overturn most of the recent SCOTUS §101 decisions of the past decade (e.g., Bilski, Alice). It's debatable if this is actually possible, though-- these decisions didn't rest on "well, they're not actually authorized by law" as much as "it's been well-agreed by common sense that these things can't be patented."

5\. Explicitly declares patents as "private property rights." This calls into mind the argument in Oil States, that the government can't revoke these kinds of rights without means of a court (which, if they had been private rights, would have made inter partes review unconstitutional). But I again wonder if it's actually within Congressional power to make this kind of declaration.

6\. Stops patent applications from being published automatically. Because publishing patent applications creates prior art, and that would retard innovation. No, seriously, that's the literal argument in the text of the bill itself.

7\. In legal cases, the defendant would now have to argue that the patent is invalid, that each individual claim is invalid (even if the claim depends on an invalid claim), and that a permanent injunction is not appropriate, even if the patent owner doesn't make its own patent.

In other words, this bill attempts to undo every aspect of patent reform in the past decade, both from SCOTUS and from Congress. I can't think of anyone who'd be happy about any of this, save for patent trolls.

<comment><USER3> > these decisions didn't rest on "well, they're not actually authorized by > law" as much as "it's been well-agreed by common sense that these things > can't be patented."

By their own terms, these decisions purport to be based on the statute section 101. The Supreme Court rarely if ever bases a decision only on what it considers common sense.

If the text of 101 changes, there's no reason to think the caselaw that's grown up around it would stay valid.

<comment><USER2> I haven't read the opinion of Alice directly, and it's been a long time since I read Bilski, but my recollection is that both of them turn on "it's long held that some things can't be patented as a matter of nature, and this patent is an example of something that falls into that category." There are things that Congress can't do, and given that SCOTUS is very likely to have an originalist rather than a legislative intent majority, the framework for analysis is very likely to be "what would an 18th century lawyer say about this?" rather than any amount of exhortation about how this is necessary to promote the progress of science and useful arts.

I'm not sure about the exact interplay of different kinds of law here, and I'm certainly not an expert in any variant of law. That's why I pointed out that the legislation might not have any actual effect as opposed to saying that the legislation will not have an effect.

<comment><USER3> Well regardless of the statutory interpretation tools employed, they purport to be interpreting section 101, not the constitution. If 101 changes, those cases _should_ be out the window.

</comment></comment></comment></comment><comment><USER4> Calling this "bipartisan" because they got Kaptur on board is in that "extreme technicality makes this correct" correct category. Kaptur is perhaps one of the most pro-intellectual-property-is-the-province-of-corporations folks in the House and in general is tightly aligned with Republican fiscal policy.

The linked article links to a draft: [http://src.bna.com/z0P](http://src.bna.com/z0P)

It's H.R. 6264: [https://www.congress.gov/bill/115th-congress/house- bill/6264](https://www.congress.gov/bill/115th-congress/house-bill/6264)

I'm not a patent lawyer but it looks like a bad idea to me. I'm especially nervous given how excited certain orgs who I usually DIS-agree with are hyping it as a solution: [https://cpip.gmu.edu/2018/06/29/rep-massie-introduces-new- le...](https://cpip.gmu.edu/2018/06/29/rep-massie-introduces-new-legislation- to-restore-americas-patent-system/)

</comment><comment><USER5> This would be a disaster that would fundamentally unbalance the patent system -- in favor of trolls -- which would be a disaster for innovation in the US.

The problem is, large numbers of patent applications come in and the patent office can't possibly review all of them upfront in extreme detail. Of course the great majority of them are not especially high-stakes so don't warrant extremely detailed, considered review.

The administrative review process lets them focus their limited resources on high-stakes, contested patents.

Anyway, it would be bizarre to give the patent office the responsibility to grant patents but not give them the ability to fix mistakes in this extremely complex domain.

Bringing a judge into it makes matters worse since courts are more expensive and much less able to evaluate the validity of patents than the patent office itself.

An obvious land-grab by patent trolls that would strangle tech .

</comment><comment><USER6> Most comments discuss the usefulness of the PTO but it seems like a major section of it is that one:

>> PATENTABILITY OF SCIENTIFIC DISCOVERIES AND SOFTWARE INVENTIONS.

>> ...

>> this amendment effectively abrogates Alice Corp. v. CLS Bank International, 134 S. Ct. 2347 (2014) and its predecessors to ensure that life sciences discoveries, computer software, and similar inventions and discoveries are patentable, and that those patents are enforceable.

See the bill text linked: [http://src.bna.com/z0P](http://src.bna.com/z0P)

</comment><comment><USER7> This is a bad bill. The PTO is notorious for issuing bad patents; examiners don't have the time or the information necessary to do a good job. Giving the PTO a chance to re-evaluate bad patents saves literally billions of dollars; the courts are far more expensive.

<comment><USER8> They also get paid more for approving patents than rejecting them.

<comment><USER9> The examiners don't get bonused on allowing patents. But if too many of their decisions are challenged, their career prospects dim. At least that's the way it was in the 70's when my dad was a patent examiner. The way the game worked then was for the examiner to negotiate with the filer to reduce the number and size of the patent's claims until the patent could be allowed, but was so weak as to not be worth challenging by the filer's competitors.

<comment><USER8> > The examiners don't get bonused on allowing patents.

Yes, they do. They are paid based on how many patents they process, and it takes less hours to approve a patent than to reject one.

<comment><USER10> Citation please? I've never heard of any federal agency employee getting any kind of commission such as this.

<comment><USER11> Not the best article to cite to make this point, but: [https://www.washingtonpost.com/news/the- switch/wp/2014/07/31...](https://www.washingtonpost.com/news/the- switch/wp/2014/07/31/inside-the-stressed-out-time-crunched-patent-examiner- workforce/?noredirect=on)

> "Our data finds that as examiners are given less time to review > applications, the less prior art they cite, the less likely they are to make > time-consuming prior art rejections, and the more likely they are to grant > patents," the researchers report.

...

> Patent examiners have an incentive to approve or reject a patent as quickly > as they can. That's because every time they do, they get two "credits" that > go toward a progression system that determines when they get promoted (and > how much they make). One interesting feature of the progression system, > though, is that as you rise in rank (from, say, a GS-7 to a GS-14) the > amount of time you're expected to spend on each patent decreases.

</comment></comment></comment></comment></comment></comment><comment><USER12> This sounds like a huge boon to patent trolls, undoing the modest reforms passed earlier. Is this correct?

</comment><comment><USER13> All this does is screw the USA even more than it already is. The rest of the world just laughs.

<comment><USER14> Unfortunately, I think you're right. From my perspective, this is exactly the sort of government-sanctioned monopoly / rent-seeking that's causing so much income inequality and economic pathology. The government should be encouraging competition, not destroying it.

I think the idea of intellectual property per se is fundamentally flawed, but I can see patents as incentives. This just shifts too much power to trolls and undeserving patents.

<comment><USER13> I think the government should be there to provide a general interface to general policy, perhaps create, check, enforce it, and ensure some sort of level playing field so people that miss the genetic lottery aren't screwed by default.

(basically, just making sure people can work together if they want to, but without having the will of the strongest/most powerful be the law)

If you undermine any of that by making bad rules or doing bad governance, you are screwing the whole country and all the people in it.

</comment></comment></comment><comment><USER15> Sadly, the primaries are over, but you can make your displeasure known to: Rep. Thomas Massie (R-Ky.), Reps. Marcy Kaptur (D-Ohio) and Dana Rohrabacher (R-Calif.).

</comment><comment><USER16> Innovation will rush to china if bills like this become law

</comment><comment><USER17> Really evil move no doubt driven by patent trolls and patent racketeers.

</comment><comment><AUTHOR> tl;dr Congress is apparently trying to pass a law that makes it impossible to challenge patents, and opens the door for an ever escalating abuse of invalid patents sneaking into the system.

</comment><comment><USER18> Wow, could they get any more stupid if they tried?

<comment><USER19> This isn't stupidity, this is malice.

<comment><USER13> It's an example where Hanlon's Razor doesn't apply. So if you ever need one to point out the rare cases where this is so, this case would be a really good one to use.

</comment></comment></comment><comment><USER20> One biotech person's perspective is that these are changes in the right direction. Things were certainly not perfect in the pre-AIA era, but post-AIA and recent court decisions have had many negative impacts on our industry, particularly diagnostics and particularly new ventures. The uncertainty associated with an "issued" patent has decimated their value, to the loss of innovation in our industry.

<comment><USER21> I hope you get down voted not for taking a contrarian position but just because your comment does barely support the argument. Maybe anecdotes would help to illustrate your point?

<comment><USER20> I wasn't intending to advance an argument, merely present that as a biotech entrepreneur in the process of forming a new company I for one like many of the changes in this proposal. I completely get why software people take umbrage with patents, but wanted to politely put forward that it isn't a universal feeling.

<comment><USER22> > I completely get why software people take umbrage with patents, but wanted > to politely put forward that it isn't a universal feeling.

The obvious solution would be to not have software patents, but this bill seems to be proposing the exact opposite of that.</comment></comment></comment></comment>


Netflix new, brilliant strategy for China is to stay the hell out of the country - <AUTHOR> http://qz.com/811941/netflixs-nflx-new-brilliant-strategy-for-china-is-to-stay-the-hell-out-of-the-country/ <comment> norea-armozel It's about the only thing they can do considering how much of a mess the laws are regarding foreign investment. Best to work with an established player that has a good reputation than gamble on finding someone else to create the whole system from scratch. At least then the govt won't give you much guff.</comment>


Why Biz Stone Really Left Twitter - <AUTHOR> http://www.fastcompany.com/1763873/why-biz-stone-really-left-twitter

<comment><USER2> Correct title should have been: Why I would have left twitter if I were Biz Stone.

The article has no sources, only mentions Biz by name twice in the content, and uses "he" (as a reference to Biz) only twice in the closing paragraph.

The most benefit I got from this article was knowing that Biz left at all.

</comment><comment><USER3> (Spoiler) Because Twitter is DOOMED!</comment>


Twitter's Default Settings Can Leak Your Phone Number - <AUTHOR> https://www.eff.org/deeplinks/2020/02/how-twitters-default-settings-can-leak-your-phone-number <comment><USER2> > In Twitter's case, one of the limitations in place was to reject anyone who > tried to upload a long list of sequential phone numbers—a sign that this > person was almost certainly not uploading an address book in an attempt to > find friends.

> The workaround is almost comically simple: someone could just upload a long > list of randomized phone numbers instead. And that's how the security > researcher whose work tipped Twitter off to this problem was able to match > up ... for 17 million unsuspecting Twitter users, including high-profile > officials and politicians around the world.

The biggest tech companies in the world, ladies and gentlemen.</comment>


Curated list of data models and database schemas - <AUTHOR> http://www.databaseanswers.org/data_models/

<comment><AUTHOR> Posted this site because I have been browsing Github for database design ideas, for applications similar to the one I am building. Without reinventing the wheel (or missing common use-cases), I have already come across lots of ideas I would not have thought of (especially ones which would help make the system more extensible in the future, because in general, I was looking at more mature projects, who have already been through a few schema redesigns)

Idea: I would like to see a site (similar to this) which lists common application domains, and lists relevant data models for each, along with use- case, ERDs with annotations, description of the intent. And, "Stackoverflow" style, it would be interesting to see models voted up, if they were particularly useful, extensible, and so on.

Example would be a "blog" use case, and then show the default data model for Wordpress, Drupal, or other popular applications. In each example, we could see a graphical ERD, with notes ("This M2M field allows us to keep all revisions of a blog post" or "Each blog post can have multiple categories").

Relatedly, having a Gist-like ERD tool which supports annotations & feedback would be helpful too, for realtime collaboration in IRC. Example: "I am designing an calendar event system for my application, which needs to support views like "Show me all events containing 'change requests of X type"; How would I model the tables & relations?"

If anyone has come across a tool like any of these, would love to hear about it!

</comment><comment><USER2> Would be nice to have DDL for various databases included for each one. Fun time-killing resource, though.</comment>


Show HN: A tool for online learners to visualize your skills - <AUTHOR> http://www.skill.bar/ <comment><USER2> I really like this, as "simple" as it is...kind of feels like gamifying online learning. I assume monetization will be for "advanced features" in the future - or what's the gameplan?

I might actually use this. I have an IRC group who might be interested in it.

<comment><AUTHOR> Gamification is the word indeed! Do tell me about the IRC group :) Money-wise I think this will have some applications in recruiting, project staffing or corporate training, so something along those lines + affiliate.

</comment></comment><comment><USER3> Public high school teacher, we'd love to bring have this running in-house for our students. Sent you an email!

</comment><comment><USER4> Will modern memorization techniques be implemented (for example Leitner boxes)?

<comment><AUTHOR> You can track any source of learning, online course, youtube video, book, or any modern technique as long as you have a link to it

</comment></comment><comment><USER5> You should add the skills and/or courses, certs, etc from linkedin. Good job.</comment>


Code icebergs - <AUTHOR> http://www.gabrielweinberg.com/blog/2010/11/code-icebergs.html <comment><USER2> Code iceberg is in the eye of the beholder. Recently started bizdev-people consistently underestimate the time requirements for certain well-exercised tasks.

Some of the most common icebergs are:

-form validation (seriously -one of the most highly exercised user-interaction paths; it's all over the place, and scales semi-exponentially with the number of fields)

-search ("how hard could it be? you just put an input form there, then figure out what the user thought, then display it" -exact quote)

-anything that has to process natural language. I mean _everything_. Wanna split up a text into sentences? How do you differentiate between dr. mr., 2004. jun. , and valid sentence-enders? Generating a definite article ("a", "an") before a noun? Keep in mind that 1,2,@,$,=, and other characters might also be valid noun first-letters :) etc.

In my experience, the best anti-iceberg pattern is to follow a portfolio approach, and for each requirements which smells like iceberg, have a fallback plan in place -ie. after N hours of sunken investment, execution shifts to plan B. Usually works out much better, than banging away on the same problem for days.

<comment><USER3> _"How do you differentiate between dr. mr., 2004. jun. , and valid sentence- enders?"_

Fun fact: there exists a convention stipulating a double space after a period that ends a sentence. Not that I'm advocating relying on this for any serious purposes

<comment><USER4> HTML ended that. I have followed all periods with two spaces in this post. How can you tell on the screen?

In fact I just checked, and HN is honoring the two spaces, in that they are output to the actual HTML sent to your browser. And of course, yes, there were other trends that would have ended this anyhow, "two spaces" in meaningless in a non-monospaced font and ever more stuff is going proportional as the computing power necessary to do that continues its steady march from "prohibitive" to "trivial", but the WWW certainly beat the corpse to death again.

<comment><USER5> The monospaced or proportional fonts aren't the issue; it's that HTML treats all sequences of whitespace within text as a single space. It's quite annoying to those of us who like our double-spaced sentences. When a word processor generates HTML, every double-spaced sentence ends with this:

      [space]

Or even this:

      [space][space]

<comment><USER4> HTML and proportional fonts are two separate issues. HTML ignores them, which is one problem; two spaces in a proportional font being less immediately obvious than on a typewriter is another problem. You can come up with some other issues too if you think about it. It all adds up to a dead tradition.

</comment></comment></comment></comment></comment><comment><USER6> Try to beat this one:

I spent _4 months_ , _full-time_ (I think I was a bit depressive and unproductive, though (that might have to do with the difficulty of the problem a bit)) to make a goddamn "error message merging" system where you specify some merge rules for error messages, and then said messages are "merged" efficiently at runtime (with another of my adaptations of the awesome Rete algorithm).

For instance, as a trivial example merging "Please enter your Username." and "Please enter your Password." could yield "Please enter your Username and Password."

Merging error messages efficiently with a great concise syntax looked SO EASY =/ I was wondering why the hell no websites (that I know of) do that because it's a pretty obvious feature to me... Well, now I know. People don't really mind that much about these things (maybe they just have low expectations) AND it's really hard to implement.

I finally made it, right now the implementation is utter crap, with some missing features and some bugs but the general architecture is there and works. I'll clean it up and document it within a few months, probably.

It's one of the hardest things I ever made so far in programming.

<comment><USER7> Heh, I was asked to do the same thing for the current system/website we're building here at the corporation I work for.

Fortunately we were able to convince them it wasn't time well spent, but it would be neat.

</comment></comment><comment><USER8> Steve Yegge once wrote a post on this sort of thing. It's called "Have you ever legalized marijuana?", but it doesn't focus on marijuana all that much.

Well worth the read: [http://steve-yegge.blogspot.com/2009/04/have-you-ever- legali...](http://steve-yegge.blogspot.com/2009/04/have-you-ever-legalized- marijuana.html).

<comment><USER9> Except that his conclusion is way off for the Marijuana part. There are lots of countries where Marijuana is legal and/or tolerated, so apparently the legal systems are a lot more flexible than the US, or Yegge's estimates for refactoring costs in the legal system are way off.

</comment></comment><comment><USER10> I've probably fallen for these more often than I'd like to admit. Yet sometimes a naïve "how hard could it be" is exactly the right approach that leads to unexpectedly simple solutions.

</comment><comment><USER11> Every now and again I'll remember that guy who said he was going to build a Stack Overflow clone in a weekend. I still chuckle.

<comment><USER12> This might not be such a fantasy as you think it is. Yes, it will be very unpolished. But you can get the basics in place in a couple of hours: login, questions, answers and voting. I agree though that to get it to the level of stackoverflow will be very hard indeed in a weekend ;)

<comment><USER13> Anything is easy if you ignore the hard parts.

</comment></comment></comment><comment><USER14> I think a code iceberg is actually a symptom of either working at too low a level, or relying on a library with missing/broken features. You see libfoo, and you think "great! I'll use that to implement foobar-ization functionality!" but then, after playing with it for a bit, you realize that foobar-ization actually requires you to do all sorts of crazy things with the output of libfoo before you can use it in XYZApp.

Now, you can put all those crazy foobar-izing things _into_ XYZApp, and that'll work—but they should really either go into libfoo itself, or into a new library (libfoobarize) that uses libfoo.

This is the case with the example in the article: DuckDuckGo shouldn't be parsing Wikipedia to make its own abstracts. MediaWiki already creates abstracts—they're just _bad_ abstracts. The correct thing to do, since MediaWiki is just a regular ol' FOSS project, is to write a patch that makes MediaWiki spit out _good_ abstracts, that _are_ actually trivial to use in DuckDuckGo. Or, even better, if you know MediaWiki cares about having good abstracts, just submit it as an issue to their tracker and let them do it for you. In other words, repeat the programmer's litany to stave off NIH: "It's not my job. I shall buy, not build. 80% of the features at 20% of the cost. Don't ask a question, send a message. No god-objects. Encapsulate, encapsulate, encapsulate."

Note that, of course, there are cases where there really _is_ no libfoo—but then you're doing something totally new, and you can tell the client right up- front "no one's ever done this before, so we have to schedule time for R&D before we can even tell you how much time this feature will take."

There is also the case where the only libfoo/libfoobarize is a proprietary one used by the people you're trying to steal market-share from by implementing this feature, in which case you can tell your client "we know it's possible, but we don't know how long it took them to build it. What we _do_ know is that no one else has yet copied them, which means that foobar-ization _isn't_ trivial. It'll probably take a while."

</comment><comment><USER15> Another class of code icebergs are numerical algorithms. Often a few dozen lines of Matlab or R can be the result of months of effort. Failed approaches, tolerance thresholds, manual data cleansing, and more can all end up living as a few lines of math.

<comment><USER16> Most math takes the form of icebergs. :-)

</comment></comment><comment><USER17> Hey it's great you got a name for them now!

You won't believe how many times I've been in a discussion about something and the other person has said "oh that's easy to do" or "it can be done in a few hours" when in fact if they were to go into the details, they would see the hiding devil...

<comment><USER3> My personal red-flag phrase is "You just need to ..."

Favorite occurence: "You just need to build a state machine." Yeah, saving the whole browser-side state (did I mention third-party GUI components?) of an application and reestablishing the server-side session state to match it is really easy with this piece of sage advice.

<comment><USER18> "Just" is unofficially a banned word around here. :)

</comment></comment></comment><comment><USER19> I always annotate these on development plans with HBG: Here Be Dragons.

<comment><USER20> Enquiring minds want to know: Why does G denote Dragons?

<comment><USER19> iPad typing is not recommended before morning coffee.

</comment></comment></comment><comment><USER21> I think great products tend to have a lot of complexity, but most of the complexity is hidden away from the user. This picture sums up this thought (and it mimics Gabriel's iceberg metaphor quite well): [http://amix.dk/blog/post/19555#The-essence-of-minimal- produc...](http://amix.dk/blog/post/19555#The-essence-of-minimal-product- design)

</comment><comment><USER22> I think this is one way that J.P. Lewis' "Large Limits to Software Estimation" (<http://scribblethink.org/Work/Softestim/softestim.html>) comes out in reality.

Naturally, there's an uncountable infinity of ways that comes out in reality, but Code Icebergs are a common way.

</comment><comment><USER23> On the topic of mining Wikipedia, DBpedia (<http://dbpedia.org>) is a fantastic source for structured Wikipedia content. Extracting data is pretty easy with SPARQL.

Freebase (<http://freebase.com>) isn't bad, either.

<comment><USER12> The DBpedia license would force him to license his code under GPL or similar, no?

<comment><USER23> I haven't read the GNU Free Documentation License ([http://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_...](http://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License)), but I don't think so.

"DBpedia is derived from Wikipedia and is distributed under the same licensing terms as Wikipedia itself" <http://wiki.dbpedia.org/Datasets#h18-19>

Please correct me if I'm mistaken!

</comment></comment></comment><comment><USER24> Twitter is one of my favorite examples of this. Lots of people look at it and say, "it's so easy implement to build." I'd like to see them scale it to millions of users.

<comment><USER25> scaling twitter _is_ easy. it is getting the users that is hard. I can say this because I was part of a service in 1999 that had more users and volume (bytes/hits/etc.) yet didn't have nearly the same issues.

<comment><USER13> _I can say this because I was part of a service in 1999 that had more users and volume (bytes/hits/etc.) yet didn't have nearly the same issues._

Not to be rude, but I doubt it.

Twitter currently has 175 million users[1]. Estimates in 1999 for the online population of the entire internet were 259 million, with 110 million in the US [2].

In 1999, I imagine Yahoo and maybe a couple of other sites (Microsoft/Excite/AOL/Lycos?) were getting similar traffic numbers to what Twitter does today. BUT the scaling is very different, because Twitter requires fan-out of messages, which none of those sites did.

[1]: <http://www.pcmag.com/article2/0,2817,2371826,00.asp>

[2]: [http://web.archive.org/web/20000208141450/http://c-i-a.com/1...](http://web.archive.org/web/20000208141450/http://c-i-a.com/199911iu.htm)

</comment></comment></comment><comment><USER26> A great example comes from 37signals - [http://answers.37signals.com/basecamp/52-how-can-i-move- or-c...](http://answers.37signals.com/basecamp/52-how-can-i-move-or-copy-to- do-lists-between-projects) \- look for Sam Stephenson's reply (from Sept 8th) in which he explains all the edge cases below the surface.

</comment><comment><USER27> There's the classic rule of thumb from Brooks' Mythical Man Month: turning a project into a product takes 9x the effort.

</comment><comment><USER28> Icebergs are a good analogy for technical debt as well. The hackish stuff below the surface, often done against better advice invariably causes serious damage.</comment>


Ask HN: Review quick tool to check if an email is disposable (one time) - <AUTHOR>

We have been getting quite a few account email spams from disposable address. So we started blacklisting a few of them and came up with a few solutions to detect if an email is disposable (one time).
You can try here: https://gudado.com/tools/freeemail.php
Would love to hear your thoughts on that.
thanks, <comment><USER2> Having to enter my email on a site is a major roadblock. Enough sites keep sending me unwanted mail that I seriously hesitate before signing up; I don't give out my email unless I'm pretty sure I know what I'm going to get, and I want it badly.

I often use a mailinator address when I'm not serious about signing up. It's very convenient.

</comment><comment><AUTHOR> Valid link: <https://gudado.com/tools/freeemail.php>

It also has a simple/open API that anyone can use (being using that on our own sites).

thanks,

</comment><comment><USER3> I have no use for it, but I don't think it is a bad idea by any means. Keep up the good work :)</comment>


The Culture Bot - <AUTHOR> http://www.culturebot.tech/index2.html <comment><USER2> [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html) Read the part about reposts again and follow it please.</comment>


Ask HN: How do you hear about local news? - <AUTHOR> <comment><USER2> A combination of old school and new tech: TV news shows (which are usually playing at my fitness club while I'm on the treadmill) and Twitter feeds.</comment>


Show HN: Scrumr, Make stand-up meetings easier, especially for distributed teams - <AUTHOR> http://www.scrumr.us/

<comment><AUTHOR> Hi Guys, Please feel free to leave any comments or feedback. I started it during a hackathon last week, and decided to finish up the product to MVP. Hopefully it will be useful for all of you.

Cheers.

</comment><comment><USER2> Can't wait to implement this on our project. Love it.

</comment><comment><USER3> Mind blown. Cheers!

</comment><comment><USER4> Good stuff</comment>


Business As Usual In The New Silicon Valley - <AUTHOR> http://techcrunch.com/2014/02/20/business-as-usual-in-the-new-silicon-valley/?utm_campaign=fb&ncid=fb

<comment><USER2> I think this is completely wrong. Just because one area - in this case, social media - works well does not mean others do not. Stop defining yourself through success relative to others. Yes, social media is a particular low hanging fruit - which also implies that there is a lot more competition.

Tesla. SpaceX. Palantir. They are real, hardcore technology companies. Do these not count? What about Uber, Airbnb and Addepar? They are also changing they way important industries work.

There is enough disruption and technological change to offer opportunities in many different sectors.</comment>


Parsing 10TB of Metadata, 26M Domain Names and 1.4M SSL Certs for $10 on AWS - <AUTHOR> http://blog.waleson.com/2016/01/parsing-10tb-of-metadata-26m-domains.html <comment><USER2> I have about the same amount of data in a Postgres database as part of the TLS Observatory project [1].

        observatory=> select count(distinct(sha256_fingerprint)) from certificates;
          count
        </comment><comment>---
         1239943

        observatory=> select count(distinct(target)) from scans;
          count
        </comment><comment>---
         6483386

The scanner evaluates both certificate and ciphersuites and stores the results in DB, so we can run complex analysis [2,3]. There is also have a public client [4].

I don't have a good way to provide direct access to the database yet, but if you're a researcher, ping me directly and we can figure something out.

[1] [https://github.com/mozilla/tls- observatory](https://github.com/mozilla/tls-observatory)

[2] [https://twitter.com/jvehent/status/684127067005390848](https://twitter.com/jvehent/status/684127067005390848)

[3] [https://twitter.com/jvehent/status/686938805413232640](https://twitter.com/jvehent/status/686938805413232640)

[4] [https://twitter.com/jvehent/status/687429007680376833](https://twitter.com/jvehent/status/687429007680376833)

<comment><USER3> > I have about the same amount of data in a Postgres database ...

I'm curious, how fast can one load data into Postgres? Is it possible to import data directly from CSV files?

<comment><USER4> > I'm curious, how fast can one load data into Postgres?

Hard to answer considering the number of variables impacting. pg_bulkload[0] quotes 18MB/s for parallel loading on DBT-2 (221s to load 4GB), and 12MB/s for the built-in COPY (with post-indexing, that is first import all the data then enable and build the indexes)

> Is it possible to import data directly from CSV files?

Yes, the COPY command[1] can probably be configured to support whatever your *SV format is. There's also pg_bulkload (which should be faster but works offline).

[0] [http://ossc-db.github.io/pg_bulkload/index.html](http://ossc- db.github.io/pg_bulkload/index.html)

[1] [http://www.postgresql.org/docs/current/interactive/sql- copy....](http://www.postgresql.org/docs/current/interactive/sql-copy.html)

<comment><USER5> 18MB/s sounds rather low. It obviously rather depends on the source of data, format of data (e.g. lots of floating point columns is slower than large fields of text), and whether parallelism is used. But you can relatively easily get around 300MB/s into an unindexed table, provided you have a rather decent storage system.

</comment></comment></comment></comment><comment><AUTHOR> On a side note, I recently discovered [https://scans.io/](https://scans.io/) where you can find pretty much all of the data that I collected as well. Might be interesting.

<comment><USER6> Censys ([https://www.censys.io/](https://www.censys.io/)) is also from them and it's a search frontend for a quick lookup in their data. It can come in real handy.

</comment></comment><comment><USER7> Sort uses only a fixed amount of memory, you can sort files larger than memory, but for such situations where you have only a few tens of millions of distinct values you can just use a python dictionary and it works even faster. While sort would shuffle data around a lot, the memory dictionary would just hold a key and a count as it gobbles the logs. It works because it is a special case of sorting where there are relatively few different values relative to the count of the whole list.

<comment><AUTHOR> Don't you mean a python set? But yes, for use cases containing many duplicates where the result easily fits in memory, that is probably the fastest.

<comment><USER8> Fun fact: they are nearly the same implementation. See: [http://markmail.org/message/ktzomp4uwrmnzao6](http://markmail.org/message/ktzomp4uwrmnzao6)

<comment><USER4> As one would generally expect, the backing store of most hashsets is little more than a hashmap with zero-sized/no values.

In fact, that's exactly how Rust's standard library hashset is implemented since rust supports zero-sized types "in userland" (and unit `()` is a ZST):

        pub struct HashSet<T, S = RandomState> {
            map: HashMap<T, (), S>
        }

[http://doc.rust- lang.org/src/std/collections/hash/set.rs.htm...](http://doc.rust- lang.org/src/std/collections/hash/set.rs.html#112-114)

</comment></comment></comment></comment><comment><USER9> it will not help for data transfer pricing but for cpu/vm time spot instances can be amazing value for these short lived projects. typically 1/8 of the price of the on demand. always take care to not set your bid higher than on demand price as wild fluctuations can happen. also if you are afraid of losing your work, there is an api you can query from within the vm that tells you 2 minutes ahead that its going to get killed. also, price is per ZONE, so there are zones in the same region that people use less.

</comment><comment><USER10> The key to the low cost seems to be that he needed to process 10TB. You get 10TB "data in" free, per month. Had it been 10TB more, or if he needed to run more than once a month, or if he needed to get that 10TB back out, the bill is around $920.

Edit: Inbound might be unlimited free. The calculator did show me an inbound total a few times, but I can't reproduce it now.

<comment><AUTHOR> Pretty sure it's unlimited.

<comment><USER10> Appears that way. Still $920 if you had wanted to extract the 10TB back out though.

<comment><USER11> Yeah... that is one of the really unfortunate lock-ins with AWS. Hopefully they will add data export to their "Snowball" product, but they don't really have a lot of incentive to.

<comment><USER12> I haven't used it, but I do see that they have both data in and data out on their Snowball pricing[1] page. Data in is free, but data out is $0.03/GB(plus $200 per job). So it would cost a minimum of $500 to use Snowball to transmit 10TB.

Still, it does appear to reduce the price of getting data out of Amazon compared to using the internet.

[1] [https://aws.amazon.com/importexport/pricing](https://aws.amazon.com/importexport/pricing)

</comment></comment></comment></comment></comment><comment><USER13> Great write-up; really interesting that the CPU ended up being the bottleneck in this experiment! Regarding the cost of sending this data _out_ of AWS, did you run into any issues there using rsync? IIRC rsync copies the data over TCP, so wouldn't this end up being expensive as well? Generally, though, that was my favorite part of the experiment!

<comment><AUTHOR> My use case converted 10TB in only a couple of GB after processing. Downloading that was very cheap.

</comment></comment><comment><USER14> How much did storing the data on S3 cost where you said, "However, the data is on S3" or was it there for such a transient time that it didn't cost much? Bandwidth costs in/out of S3 too?

Edit: Actually I read the S3 parts again, it sounds like the CommonCrawl project pays the S3 costs, I think, since it looks like you're using their domain data?

<comment><AUTHOR> The results of the Common Crawl project are hosted on AWS Public Data Sets, so it's not in my account. [https://aws.amazon.com/datasets/](https://aws.amazon.com/datasets/)

<comment><USER14> I see, without CommonCrawl paying for S3 (or AWS maybe eats that cost to help the public); this would be an expensive project.

<comment><USER15> Actually, on the paged linked on your parent post, it says

> AWS is hosting the public data sets at no charge for the community

</comment></comment></comment></comment><comment><USER16> Can you comment on how many additional domains you mined - compared (for example) to the 1M domains from alexa top-1M

<comment><AUTHOR> $ cat alexa myset myset | sort | uniq -u | wc -l

773733

0.77M of Alexa top 1M were not in my list.

$ cat alexa alexa myset | sort | uniq -u | wc -l

25842205

I mined 25,842,205 additional domain names.

<comment><USER17> Did you consider using the gTLD zone files (from the respective registries) and the ccTLD zone files found @ [http://viewdns.info/data/](http://viewdns.info/data/)? A much bigger initial dataset than 25M domains right there?

<comment><AUTHOR> No, getting access will probably take a couple of days (or in case of viewdns, more than 100$) and thereby all the fun out of the project. If you know of any other way to get the list I'd be happy to hear it though!

<comment><USER18> [http://meanpath.com/freedirectory.html](http://meanpath.com/freedirectory.html)

Feel free to grab a copy of our domain list. The "All domains with NS records" is the one you want. Has 191 million in it.

<comment><AUTHOR> Wow! That's awesome!

</comment></comment></comment></comment></comment></comment><comment><USER19> Sorry, but is this golang concurrent networking pattern correct:

        func main() {
            ch := make(chan string)
            for i := 0; i < MAX; i++ {
                go fetchCert(ch)
            }
            scanner := bufio.NewScanner(os.Stdin)
            for Scanner.Scan() {
                line := scanner.Text()
                ch <- line
            }
        }

All goroutines receive on the same channel! Instead a new goroutine should be launched for each net conn. One should be able to spawn 1000s (or 1Ms) of conns and avoid ulimits using buffered chans, waitgroups, timeouts, or counters...

<comment><USER20> This pattern is correct (but has a flaw). It is a simple worker pool. The first available worker will grab the first piece of work from the channel and process it.

If you set MAX to 1000, you will have 1000 workers — and simultaneous connections.

The flaw is that when the last piece of work gets taken from the channel, the program will end, thus the last pieces of work that at the time are being processed, will get canceled. You could mitigate this by using a second channel, that the workers will access at the end of their work, thus ensuring that it will close only when the last worker finishes its work.

<comment><USER21> The in-article version has a time.Sleep(2 * time.Second) after the scan loop. Not exactly reliable (waitgroups or channel signaling would be better) but better than nothing.

<comment><AUTHOR> As you can see from almost all commands / snippets in the article, I took the pragmatic approach for this project ;)</comment></comment></comment></comment>


Show HN: 131 Years of Average Temperatures in Sound - <AUTHOR> https://datasounds.id.hn/ <comment><USER2> Neat and Menacing!!</comment>


Programming a Bot to Play the "Sushi Go Round" Flash Game - <AUTHOR> http://inventwithpython.com/blog/2014/12/17/programming-a-bot-to-play-the-sushi-go-round-flash-game/ <comment><USER2> Can't find the original submission but the source[1] was already on HN 3 years ago.

[1][http://code.tutsplus.com/tutorials/how-to-build-a-python- bot...](http://code.tutsplus.com/tutorials/how-to-build-a-python-bot-that-can- play-web-games--active-11117)

<comment><USER3> Hi, I'm the author of the post. (My friend pointed out that someone posted a link on HN to my Sushi Go Round bot tutorial.)

I have a link to the post you're talking about in the first paragraph of my post (the same that you link to.) That is indeed the source of inspiration for my tutorial (which I did a couple weeks ago from scratch). I use the PyAutoGUI module instead to make it a lot easier to control the mouse/do screenshots.

Basically, I wanted to create a much easier/shorter version of Chris's tutorial. Complete thanks to him for doing his tutorial though.

</comment></comment><comment><USER4> Anyone know of some libraries that would allow a Mac-based attempt at this off the top of their heads?

<comment><USER5> [http://www.sikuli.org/](http://www.sikuli.org/) (it's a better library IMHO)

</comment></comment><comment><USER6> Reminds me of my older efforts:

[https://www.youtube.com/watch?v=IsVmEr9G-NQ](https://www.youtube.com/watch?v=IsVmEr9G-NQ)</comment>


Facebook to train AI by handing out bodycams to police - <AUTHOR> https://newsroom.fb.com/news/2019/09/combating-hate-and-extremism/ <comment><USER2> Sound strange

So the police incentive for this is by getting FB funding this equipment?</comment>


Permanent Weight Loss - <AUTHOR> http://www.crockford.com/pwl/ <comment><USER2> This has gotten a lot of upvotes in a very short time, so it must be ringing true with a lot of readers. I'd encourage some healthy skepticism.

1) It is really tempting to try to understand ourselves based on the assumed lives of our evolutionary ancestors, but the fact is we know almost nothing about their lives, and conclusions we draw from what we can guess are unlikely to be accurate.

2) There is not one citation in this entire article. This is all opinion, no matter how true it sounds.

3) He offers medical advice based solely on his personal experience. Sleep apnea may not be the same to all people.

<comment><USER3> With all that "paleo diet" rage, raw-foodians etc, I think that pop evolutionary biology is the new pop psychology.

Nutritional science is friggin' hard. Extrapolating from biological reactions has to take a huge load of variables into account and empirical studies have to monitor a huge bunch of people over a long period of time -- and all of them are lying.

<comment><USER4> Do you know of any _good_ nutritional science resources/explanations? I wish I knew where to find a readable overview based on careful research.

<comment><USER5> There was an article on HN about the subject a while ago ([http://www.nytimes.com/2007/01/28/magazine/28nutritionism.t....](http://www.nytimes.com/2007/01/28/magazine/28nutritionism.t.html)) that was quite interesting and modest.

<comment><USER6> That article is as much BS as the rest. Take the first line:

> Eat food. Not too much. Mostly plants.

Why should I eat "mostly plants"? He hands out a bunch of advice and never bothers to lay out a basis for his opinions.

<comment><USER7> He spent 4 books laying out the basis for his opinions, along with citations, medical research, and the like. That article is just a summary of a long body of work by Pollan.

</comment></comment></comment></comment></comment></comment><comment><USER8> _"There is one other thing. You must exercise at least an hour every day. Walking is best."_

Last month, we exhibited at our largest trade show of the year–at the MGM in Vegas. I ate like a pig for a week. The Grand Buffet. Kobe ribeye at Craftsteak. Sushi. Beer. In N Out Burgers. You name it.

When I came home, I had lost 6 pounds.

We also walked a ton that week, stood in our booth for 8 hours a day, and hauled a lot of stuff during the setup/teardown.

I think people misunderstand what it means to "exercise" (at least in terms of losing weight). You don't have to go to a gym ... just get on your feet and move.

<comment><USER9> Agreed. It's remarkable - My weight has varied between 160 pounds and 210 pounds, and almost has 100% correlation with a single factor - whether I was carpooling or walking into work. Diet, secondary exercise, type of food I'm eating - none of them seem to have anywhere near the causative impact as just simply walking 25-30 minutes into work (and back) each morning. Every morning. Every Day. For months on end.

I have friends who mock this, and talk about how much more important it is to get into their peak-heart-rate on their at-home treadmill. That they've actually used maybe a couple dozen times.

I don't have a choice - have to walk to work. And Back. 3 1/4 miles a day. Every day.

That's almost a marathon a week. :-)

<comment><USER10> Walking 3.25 mi in 25-30 minutes? That sounds a bit too fast :)

PS. Sorry I'm just in a bad mood and feel the need to be anal.

<comment><USER11> I read it to be 3.25 mi total each day and 25-30 minutes each direction making the 3.25 mi tile ~ 1 hour. That seems a reasonable pace to me.

</comment></comment></comment></comment><comment><USER12> Yes and no. To be honest I think right now nobody has a god damn clue how the body regulates fat and how weight gain really works. People recommend fruits, while fructose is probably one of the worst things you can eat. I can only recommend the book "Good Calories, Bad Calories" from Gary Taubes. Basically it explains the philosophy behind low carbohydrates, no sugar and high protein & fat. Makes evolutionary sense, too. At least that's what I believe in.

<comment><USER13> > To be honest I think right now nobody has a god damn clue how the body > regulates fat and how weight gain really works.

And, it's unclear that it necessarily works the same way in all people.

My opinion is that decomposition is the only permanent weight loss. Before then, there's maintenance, both successful and not which varies by both individual and circumstance.

</comment></comment><comment><USER14> _the initial role of big brains was for sexual attractiveness. For a long time, hominid females were selecting for big brains. Big brains served the same purpose as big tails do for peacocks. I think perhaps that those females were determined to someday produce a man with the mental capacity to understand women._

While this abstract is slightly funny, I suddenly realized that I have no idea about why humans evolved big brains. Why most of the other species do not select for bigger brains, while human evolution seems to suggest that a bigger brain is a much better survival tool compared to sharp claws or protective colour? Certainly, other species would have offspring which have slightly larger/smarter brains. Why is that only a few species (humans, dolphins ...) evolved relatively large brains?

<comment><USER15> Probably random mutation that happened to turn out beneficial for us. In evolutionary sense, a larger brain doesn't seem to be of utmost importance for reproduction.

<comment><USER16> _Probably random mutation that happened to turn out beneficial for us._

Yes, but isn't that just restating the theory of evolution and natural selection?

</comment></comment></comment><comment><USER17> There's strong evidence that exercise is actually counterproductive when trying to lose weight.

<comment><USER18> bs. How many fat joggers do you see?

It's pretty simple - burn more fat, eat less crap.

<comment><USER17> If you assume that's a causation rather than a correlation do the world a favor and don't go into science.

<comment><USER18> My point is, if fat people jog, they don't stay fat for long.

Perhaps I should have been clearer. But I'm lazy.

<comment><USER17> Yeah, but evidence suggests that isn't true. Studies of people trying to lose weight show that those who exercise and those who don't lose the same amount if you control for eating.

People who cut out calories and exercise lose the same as people who cut out calories and don't. People who exercise without changing eating habits don't lose weight, just like those who do nothing at all.

<comment><USER18> It's best obviously to do both though. You really don't want saggy skin falling off your body all over the place...

</comment></comment></comment></comment></comment></comment><comment><USER19> Consult an attorney before applying any of the tips</comment>


The Technology Behind A Low Latency Cloud Gaming Service - <AUTHOR> https://blog.parsec.tv/description-of-parsec-technology-b2738dcc3842 <comment><USER2> We built the exact same technology at Agawi([http://arstechnica.com/gaming/2012/09/report-cable- companies...](http://arstechnica.com/gaming/2012/09/report-cable-companies- planning-to-stream-games-to-subscribers/)). The only difference was that we did not have the parker API. We worked very closely with Microsoft and NVidia to make it work back then with full headless Windows GPU servers. H264 encoding both in GPU and CPU. We could have reduced latency by distributing the servers but we did not get to the stage of distributing GPU cloud back then. But the business never took off. I was not on the business side so I cannot tell exactly why. Probably latency but there are 3D strategy type games that you could stream. If you need, I can ask the business head of our team and he can elaborate.

<comment><USER3> One hard nut: the cost of provisioning datacenters with enough GPU capacity to meet the demand curve of a "hot" title, and still make sense in terms of inevitable idle time and depreciation.

Either you have insufficient capacity to meet day 1 load when everyone piles onto a hot new title, or you over-provision, meet that demand and have much of that hardware doing nothing during doldrum seasons (or when a title bombs).

Probably you need to figure out how to make GPU capacity useful when it's not rendering games, and sell that as a service as well (GPU-based machine learning?). It doesn't help that OSes have been prickly about letting processes share GPU resources; I imagine there are a fair number of thorny security problems, even with GPU MMUs.

This doesn't seem like something a cloud gaming start-up can really tackle; lots of capitalization, with lots of competition from entrenched providers, and no really compelling reason to put games in the cloud to begin with. The bigger (console) players probably realized that having consumers buy their own compute is not only cheaper and more resilient depreciation-wise, but also causes a nice platform lock-in effect once the customers have purchased a few titles.

</comment></comment><comment><USER4> This stuff always seems to be _just_ around the corner, however there's some fundamentals that are always going to keep it from working.

1\. Some games just aren't built for _any_ latency. I'm talking fighting games(1 frame windows), majority of FPS' and anything that has a reaction instead of a prediction game model. These can be made network compatible with a time-rewind gamestate resolution(which many good ones do), however they aren't drop-in.

2\. The market that's interested in this tends to be much more demanding than your traditional consumer. Drop ~150ms of packets at a critical time? You've got a really frustrated customer where a game designed for network degradation will handle this gracefully.

Kudos to them for trying but you're not dealing with just technical issues, there's fundamentals of design that need to be adjusted for that can't be done without direct developer involvement.

<comment><USER5> 1) You can simply have vector clocks, and resolve differences like anything else. Most of the time the game's prediction would be correct. Sometimes there would be a small adjustment.

2) Yes, anything real-time is like this.

<comment><USER4> Except you don't have access to game state in these cases so there's no adjustment that can be made.

You can only move forward in the frames you display. You can't walk back in time to evaluate a player's action in relation to their latency and then reconcile game state with all other clients.

<comment><USER5> Yes you can. When the server sends the "official" record of moves made, if the client detects any discrepancy with expected results, it resets the game to a slightly earlier time and replays the "real" moves to reach the current point. All this is done instantaneously, and only at the end is the interface refreshed.

<comment><USER4> > resets the game to a slightly earlier time and replays the "real" moves to > reach the current point.

That's exactly what properly engineered network games do. However we're talking about video streaming here, in which you don't have access to _any_ game state. It's not possible to do without the developer going in and adding specific feature support for your streaming service.

</comment></comment></comment></comment></comment><comment><AUTHOR> Hey guys, I'm the author of the post. Let me know if you have any questions!

<comment><USER6> I'm very interested is streaming 3D content creation UIs.

A major issue with virtual filmmaking is the datasets are huge, which makes it very, very difficult to work with a remote team, because you can't effectively get the dataset to people's machines even just to work on.

What I'd like to do is host our dataset AND the 3D content creation apps on our own hardware at Switch (in Las Vegas), and then have our employees and contractors throughout California access 3D content creation apps remotely, via something like your streaming approach.

Thoughts?

<comment><USER7> I just tested this service with a full blown 3D Development Environment like Unity3d using an AWS Instance and it works amazingly well and is very responsive. Through Amazon Gigabit connection everything installs in seconds as well. I had a fairly low resolution (800p) set, but i can totally see this being viable for CAD/3D Development etc.

<comment><USER6> Thanks for the feedback!

</comment></comment></comment></comment><comment><USER8> This is really interesting, I did not know it was possible yet.

A future advancement that could be made possible by this technology is the complete elimination of "laggy hitbox" type effects: if the server that handles physics is also handling rendering, it can make sure to show a consistent picture of the environment to every player.

<comment><USER9> That would be equivalent to disabling lag compensation, which isn't possible anyways if you're just streaming video. Some older FPS games (Quake 1 original netcode, Halo) don't do lag compensation, and it's not pretty.

The "laggy hitbox" effect only happens because the client predicts non-player actions before the action data actually arrives. The alternative is to have actions "officially" occur when the packet hits the server instead of when the player actually acts, which means that players with high latency will be at a disadvantage. With streaming video it seems this problem is unavoidable.

<comment><USER8> All of the rendering would be server-side, so you won't even see the muzzle flash until the server is aware of it.

With client-side rendering, the client draws a muzzle flash as soon as you fire, and there could still be an enemy in the line of fire at the time the muzzle flash goes off, and the shot still not hit if the enemy has already jumped out of the way.

</comment></comment></comment><comment><USER10> To sceptics: John Carmack believes that cloud gaming can be successful. Here's his view on this (2013): [https://www.youtube.com/watch?v=Uooh0Y9fC_M&t=26m24s](https://www.youtube.com/watch?v=Uooh0Y9fC_M&t=26m24s)

</comment><comment><USER11> I've been wanting to do a project to let a group of friends play multiplayer in a certain turned based 4X game by streaming from a remote server like this. The latency wouldn't need to be super low since it's turned based, so a browser based streaming client could work. The game has a hotseat multiplayer mode, so one person could take a turn, and then the server could go into a suspended mode while it waits for the next person to log in. The idea is to save the time of having to load up the game to take one turn, and having to be at a computer that has it installed already.

<comment><USER12> RDP/VNC should work for this.

</comment></comment><comment><USER13> Tried the AWS configuration, things went great (from Geneva to eu-east, symmetrical 1Gbit at home). Indeed, major source of frustration were videocodecs, not networking.

</comment><comment><USER14> I saw the post on using AWS to play games too. Used it to play the division for a while. Glad to see a service being built for this.

Signed up and will be trying it out this weekend.

</comment><comment><USER15> Interesting. I'll have to try it and see how it compares to my current gaming AMI where I just use Steam or Remotr to stream things like Dirt and ARK.

</comment><comment><USER16> As someone who does not live near any major datacenters, this kind of service just doesn't work for me. At all.

The absolute lowest ping I can reliably maintain from my house to a major datacenter are those in CA, and it's around 60ms. So, I'm effectively attempting to play a game at 15fps. Workable for some 4x games and a few single player action games, but nowhere near pleasant.

Since my real world pings to game servers are much closer to 100/150ms (10fps) with the occasional burst of packet loss (especially in the evenings), cloud gaming is unrealistic (PS Now basically says "No, you can't use this service").

I'm getting 60ms averages from work (which is on fibre) to AWS-East (where parsec hosts their website from), so there's no way this would ever be viable for me.

Seems like it would have limited appeal to non-casual gamers, if I'm honest. You have to near a major datacenter with reliable broadband, and you could never play competitively in a broad set of latency-sensitive games. On the other hand, I could definitely see the appeal for those who want to play the latest Peggle or Parking Dash games.

<comment><USER17> You can't convert latency into FPS like that. You can have seconds of latency but stream at 60 fps, or 5fps streams with very low latency. The two numbers are independent.

</comment></comment><comment><USER18> ELI5 version:

\- use a video encoder variant with low latency and CPU/GPU usage

\- keep video output in video memory as much as possible

\- no solution to the problem of getting low latency high bandwidth internet to the customers

</comment><comment><USER19> Um.... could PlayStation 4 implement something like this and have the game played via local network?

<comment><USER20> They already do!

Playstation bought Gaikai and turned it into Playstation Now. They also use the technology for PS4 Remote Play.

Its awesome and you should check it out :D

</comment></comment><comment><USER21> People laughed when onlive said they could do it. And then onlive went bankrupt.

As you admit yourself you can't do anything about network lag and reliability. Even if you get down to 0ms video enc-dec this will be not viable for any games where the camera moves.

<comment><AUTHOR> I've played CS:GO from NY to Virginia with Parsec (to an AWS machine) and topped the scoreboard consistently (in pugs).

Also did a 3 hour raid night on the new Legion content with it on WoW, lot of dynamic camera movement there. Cleared Nythendra on Heroic as the 4th DPS.

May not be to everyone's liking, but worked for me.

<comment><USER22> Hmmm. I have 10Gbps fiber in my office that is 3ms away from us-west-2...

</comment></comment></comment><comment><USER23> Don't NVIDIA, AMD, and Steam already provide this?

</comment><comment><USER24> I do not support the idea one bit. Sure, great stuff an all, if you do not care having everything behind a bottleneck, in the hands of other people. I do.</comment>


Dat – Distributed Dataset Synchronization and Versioning - <AUTHOR> https://github.com/datproject/docs/blob/master/papers/dat-paper.md <comment><USER2> We use Dat in Beaker[1] to host sites and files from the user's device. It's a pretty interesting protocol. It's developed by Code for Science[2], a 501(c)(3) led by Max Ogden[3] and with protocol dev led by Mafintosh[4]; their mission is to help with archival of science and civic data.

Some interesting properties:

1\. It uses a BitTorrent-style of swarm, but primarily to sync signed append- only logs, which are in fact flattened Merkle Trees (similar to Certificate Transparency). The Dat archives are addressed by public keys. The tree is used to enforce the append-only constraint by making it easy to detect if the history has been changed by the author.

2\. The "Secret Sharing" feature. The public key of a Dat archive is hashed before querying or announcing on the discovery network, and then the traffic is encrypted using the public key as a symmetric key. This has the effect of hiding the content from the network, and thus making the public key of a Dat a "read capability": you have to know the key to access its files.

There's a reference implementation in JS available at [https://github.com/datproject/dat-node](https://github.com/datproject/dat- node), and a fair number of tools being built around it.

1 [https://beakerbrowser.com/](https://beakerbrowser.com/)

2 [https://datproject.org/](https://datproject.org/)

3 [https://twitter.com/denormalize](https://twitter.com/denormalize)

4 [https://twitter.com/mafintosh](https://twitter.com/mafintosh)

<comment><USER3> I wish Beaker had picked a different name. It collides with the Beaker Notebook, a Jupyter alternative that unfortunately never seemed to gain traction but had some really killer features that Jupyter has yet to pick up, especially the ability to mix Python, R, and Julia cells in the same notebook.

<comment><USER2> Yeah I regret that. We'll consider a rename at some point. Here's their project: [http://beakernotebook.com/](http://beakernotebook.com/)

<comment><USER4> Will you keep the laboratory glassware theme?

Flask is already used ( [http://flask.pocoo.org/](http://flask.pocoo.org/) )

Maybe Retort? Funnel? Or maybe a proper name? Berzelius? Erlenmeyer would be difficult for people to pronounce.

</comment></comment></comment></comment><comment><USER5> As someone who creates open, medium-sized, reusable datasets, is Dat something I should try? Is it too early? The linked page is very much about technical details of the implementation and not about how one would typically use it.

I maintain ConceptNet [1], a multilingual knowledge graph. I do everything I can to make its published results reproducible. The biggest hurdle for people reproducing it has always been getting the data -- building it requires about 100 GB of raw data or 15 GB of computed data that can be imported into PostgreSQL.

I once tried git-annex. It turned out not to be a good choice -- its tools were flaky, its usage patterns confusing, it leaves a permanent record of your mistakes in configuring data sources, and it was very hard to convince to use ordinary HTTP downloads instead of trying to get read-write access to S3 (which wouldn't work for anyone but me). Now I have weird branches and remotes in my repositories, and weird data in my S3 buckets, that I can't get rid of in case someone tries to use git-annex in a way I told them would work.

After that I just went with distributing the data with plain HTTP downloads from S3. I wish I could do better than this. The only semblance of versioning is putting the date in the URL, and also people in Asia tell me that the build fails because their downloads from us-east-1 get interrupted. Oh, and if I ever stop paying for S3, everything will break.

If I tried making data reproducible with Dat, would it be safe to promise people that they could use Dat to get the data? Even if in the future I don't like Dat anymore?

For instance, do I have to commit to hosting the data somewhere? If not, who does? Does it disappear when people lose interest, like BitTorrent?

[1] [http://conceptnet.io](http://conceptnet.io)

<comment><USER6> Thankyou for your work on ConceptNet. It's the best public knowledge graph in existence.

Just today I was using the multilingual Conceptnet-numberbatch word vectors[1], which would not be possible without your work.

To your point though - you can use Amazon S3 as a seed for Bitorrent downloads, which might help some and reduce what you pay. See [2]

[1] [https://github.com/commonsense/conceptnet- numberbatch](https://github.com/commonsense/conceptnet-numberbatch)

[2] [http://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.htm...](http://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html)

<comment><USER5> Yep, ConceptNet Numberbatch is my work too, and it's been the most effective way to show that knowledge graphs matter -- that there is more to know about word relationships than you can get from distributional semantics ("word2vec") alone.

<comment><USER6> Oh really? Very nice... although I'm only using the aligned distributional semantic nature of them.

I have some background in question answering over knowledge graphs, though, so I'm familiar with their strengths.

<comment><USER5> I'd be interested to hear about what you're doing with it.

In my company Luminoso's work, it's important in building domain-specific models that can be used for topic detection, search, and classification. Beyond that, I use it for mostly the basic demos -- word similarity, text similarity, analogies, et cetera.

I believe based on its performance there that it should be a pure upgrade to the kind of applications that use word2vec, but I'd like to know what particular applications it's being used in besides my own.

</comment></comment></comment></comment></comment><comment><USER7> Wasn't dat originally going to be a part of ipfs or was it the browser? What are the reasons for dat vs ipfs?

<comment><USER8> Contrary to IPFS dat is more focused on what can be achieved right now while sacrificing true decentralisation, and is more opinonated with providing in its use case with providing things like versioning.

<comment><USER9> What do you think it sacrifices? IPFS is more focused on static blob addressing while Dat focuses on data sources, and in that sense, there's a single authority over a dataset. But I see that as a positive, since mutability is pretty valuable.

TBH, I'm not sure how a site can work without mutability.

<comment><USER10> a dynamic site can't work without mutability, ipfs can't deal with mutability, so ipfs comes with ipns, which allows you to statically reference content that might change.

<comment> vertex-four Of course, the design of IPNS makes it impossible to prove that you've got the latest version of a name's value, and makes it relatively easy to attack. I don't know if Dat has the same issue, I haven't looked at it.

<comment><USER11> It's not impossible by design, it's simply a feature that hasn't been implemented so far. IPFS is by design pluggable on all layers and thus theoretically capable of a ton of stuff.

<comment> vertex-four So IPFS is, according to you, not defined as its protocol, but instead as its API? So I could build an IPFS implementation that just grabs stuff from my (centralised) web server and say I'm using IPFS? Either nonsense, or useless - the goal here, I thought, was to build a global decentralised filesystem that looks the same from everyone's perspective.

All DHTs suffer from this issue. It's just particularly likely that IPNS's use of a DHT will lead to attacks. Making it not susceptible to this would require a redesign of IPNS's protocol.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Max Ogden and Mafintosh are incredibly talented and productive. Awe-inspiring to see the things they make.

</comment><comment><USER13> It seems like Dat has some usability quirks that might take some getting used to:

\- You can publish new versions to a URL until you somehow forget the private key, and then it's fixed forever, so long as people hang onto copies.

\- There's nothing to prevent people from passing around a URL with a version in it. So, although it looks like the author has some control, this is an illusion; publishing is irrevocable and anything published could go viral. (This is generally true of making copies, but it's the opposite of Snapchat.)

\- Suppose someone chooses to publish a private key? Is it a world-writable URL? Hmm.

<comment><USER14> Great analysis. We anticipate that in order to fix these three usability issues around trust we will need to provide a centralized identity provider in the future. This would also address privacy issues especially regarding leaking what dats you are accessing. The design philosophy around Dat is to start from the end of the completely decentralized spectrum but be flexible in letting the application choose the tradeoffs as they move more towards centralized components.

<comment><USER13> Good to know.

It would be good to figure out key rotation for Dat URL providers since this probably has to be built into the protocol.

Any thoughts on integrating with keybase? I like keybase's model where you have device-specific keys. But this would probably make moving a Dat URL provider to a different machine trickier.

This all assumes that well-known Dat URL's become an important thing to preserve (they are published in papers, etc) even though they are very user- unfriendly, even more than IP addresses.

A naming system on top of them would make key rotation a non-issue (rotate Dat URL's instead) and you could completely replace or remove the history, sort like a git rebase. But that loses other nice properties of the system?

I suppose irrevocability is something we deal with in git repos all the time. Although you can do a rebase locally, once a commit is accepted by a popular project, they're unlikely to let you remove it from history. The review process makes it unlikely that any really embarrassing mistake would be accepted, so this seems ok in practice.

</comment></comment></comment><comment><USER15> Nice, are you sure they aren't going to change the protocol to something totally new and with radically different features in maybe two months.</comment>


Vim Color Scheme Test - <AUTHOR> http://vimcolorschemetest.googlecode.com/svn/html/index-c.html

<comment><USER2> The linked page _explicitly_ asks you to link to the top level: "Do your friends a favor. Link to the front page instead. Thanks!" Which makes more sense anyway. So:

<http://code.google.com/p/vimcolorschemetest/>

<comment><AUTHOR> Sorry, I scrolled right past that. Unable to change the submitted link, so thanks for the correction.

</comment></comment><comment><USER3> I find it very helpful to start with a blank color file, and build from there. I've been using my own personal file for quite a while now, and it consists of about 3 colors, and some highlights. I like the simplicity of it, as a lot of the scheme's I've tried have used too many colors and proved to be distracting to me. Just my .02!

</comment><comment><USER4> Consistently times out about half-way down every time for me. So half the preview iframes are left blank by the script.

<comment><USER5> It's a webkit bug - it won't load more than 200 iframes.

<http://code.google.com/p/chromium/issues/detail?id=16184>

</comment></comment><comment><USER6> Thanks for posting this, just today I was browsing <http://www.vi- improved.org/color_sampler_pack/> and wondering how the colouring was done in HTML (assuming that's what the link uses...)

<comment><USER7> Vim has an useful :TOhtml function that converts Vim syntax highlighting to HTML. Read more about it here: <http://vimdoc.sourceforge.net/htmldoc/syntax.html#:TOhtml>

</comment></comment><comment><USER8> Zenburn is still my favourite colour scheme. Shame the preview for it doesn't seem to work on that page.

</comment><comment><USER9> Wombat, if I may.

</comment><comment><USER10> for a TextMate like scheme try vividchalk

</comment><comment><USER11> Desert.

<comment><USER12> I used to go with that, then I found zenburn. When I go with desert (forgot to download zenburn to a laptop... ) I have to darken bgcolor.</comment></comment>


Create - <AUTHOR> http://zenhabits.net/create/

<comment><USER3> book shill.

edit: perhaps this is a bit harsh, let me rephrase. This article is a series of paragraphs with one obvious statement, if you want to make something you have to find the time to make it, followed by an advertisement for his book.

<comment><USER4> I voted you up. This was an obvious advertisement with a few paragraphs of fluff formatted to have the appearance of an "inspirational" piece of text (I'm not saying they aren't passionate or honest about it - it just doesn't contain any nugget of insight, or artistic spark).

And it's fair enough - there's obviously a market for that, but I don't think it should be allowed to get by riding on the coat tails of truly inspirational, thought-provoking pieces.

"Random inspiration quote" - famous person.

<comment><USER5> Zenhabits has always been one of the fluffiest of the original 'productivity' blogs. For years they've found the lowest common denominator self- help/productivity inspirational approach—follow your dreams! Write! Do, live, drive, discuss!—And wrapped it in a veneer of trendy aesthetic signifiers. As some who tries to practice Buddhism I find their wholly superficial co-option of the word 'Zen' to be irksome, but even past that, they always seem to have the most banal, uninsightful take on whatever the self-help blogger concept of the moment is, whether everyone's agreeing this week that you should write something every day, or use a full-screen text editor, or work _less_, or get rid of all your possessions... Frankly, it's a cushy gig.

<comment><USER6> I agree they aren't very Zen. But Zen isn't very Buddhist either, it's more Taoism with a Buddhist gloss.

<comment><USER7> _Zen isn't very Buddhist either, it's more Taoism with a Buddhist gloss._

Are you sure? That doesn't sound right to me. Zen is traced back to Bodhidharma, who came from Southern India. Taoism certainly didn't come from India. Moreover, Zen's almost nihilistic austerity seems at odds with the back-to-nature lyricism of, say, the Tao te Ching. It is difficult to imagine Lao Tse beating disciples with sticks.

</comment></comment></comment></comment></comment><comment><USER8> Sounds inspiring, but

>Time is often said to be our most limited resource, but it's not true. We can create time. It takes the sheer force of will to do it, but it can be created.

Not really. We have exactly 24 hours each day. We can (and should) find ways to use it more effectively, and he explains that this is what he means, but it is definitely possible to get to the point where if you want to add something valuable to your life, you have to give something else equally valuable up.

<comment><USER9> Don't take it literally, as in "add more hours to a 24 hour day".

Think deeper: "spend less time with 'watching TV' as your top priority".

LOTS of people want to learn to program, want to write that book, want to start a company.

But rarely do they want it bad enough to do anything about it, including changing their habits.

<comment><USER10> I have to say, he lost some credibility with me right there. I have trouble believing that anybody who watches TV really understands the concept of a busy schedule.

</comment></comment></comment><comment><USER11> The philosopher Mark Kingwell puts it in existential terms: "Procrastination most often arises from a sense that there is too much to do, and hence no single aspect of the to-do worth doing. . . . Underneath this rather antic form of action-as-inaction is the much more unsettling question whether anything is worth doing at all."

In that sense, it might be useful to think about two kinds of procrastination: the kind that is genuinely akratic and the kind that's telling you that what you're supposed to be doing has, deep down, no real point.

From: [http://www.newyorker.com/arts/critics/books/2010/10/11/10101...](http://www.newyorker.com/arts/critics/books/2010/10/11/101011crbo_books_surowiecki#ixzz1K1qxkGFR)

</comment><comment><USER12> My favourite reminder of the importance of not wasting time is On the Shortness of Life by the Roman Stoic Seneca: [http://www.forumromanum.org/literature/seneca_younger/brev_e...](http://www.forumromanum.org/literature/seneca_younger/brev_e.html)

<comment><USER13> Reminds me of a quote I'm fond of: "Procrastination is our substitute for immortality". - B. Kunkle

</comment></comment><comment><USER14> I have been unemployed. And I can tell you: lack of time is not the problem, for most projects. What is lacking is the will to actually _do it_. I find it often easier to actually do something, when you already have a (nearly) full schedule.

</comment><comment><USER15> I can certainly appreciate and understand Leo's point not only philosophically but also through personal experience. I work at an investment bank and have about $200k in student loans. I want to start a company. My time is extremely constricted due to the nature of my job, and I can't quit because I have loan obligations each month. I've backed myself into a corner at a young age. I still have found time to begin putting into place some of the pieces necessary to launch a startup. At the same time, I have been training for a marathon, acting as a member on the board of director for a grade school and catching a few drinks with friends on the weekend. It is not easy and not always fun, but if something is important, we can always find more time. Sometimes you just sleep less...

Taking this a step further, there is something left out of Leo's discussion. Efficiency. Not sure where I read it, but the was a book by a CEO. He discussed how he used to work on his plane trips across the country because he didn't want to "lose" that time. After a while, he found that he was jet lagged and would be tired while on the ground for his meetings. It would take him days to recover. Now instead of working on the flights, he sleeps or gets enough sleep so that he will be rested and more efficient when he has landed.

The question that arises is simple. By jamming another 30 minutes or an hour of blogging or whatever into your day, do you jeopardize your efficiency throughout the day? It is the economic question of not only diminishing returns, but negative returns. The common example given in economic textbooks is that of an additional farmhand not only not adding value, but detracting from the value of the current farmhands.

I think we should be asking how can we prioritize more effectively.

</comment><comment><USER16> Though true, it's easier said than done. Personally, I make music - <USER2> it's what i really like to do it'll probably never pay my bills. On the other hand I'd love to learn ruby on rails - without any developer background...unless you count FileMaker. After work there are only some hours to cover those interests, which are certainly not the only options and it's tough to figure out what to prioritize. In my opinion that's the real problem: Options. It may sound very general und superficial but there are so many things of interest, it can be overwhelming.</comment>


Taiwanese "Blink of the Eye" Chip - 100 X WiFi - <AUTHOR> http://www.physorg.com/news145636894.html <comment><USER2> An extremely poor article (in the typical mainstream science journalism style). I guess this is a 60 Ghz chip which means its range is very short.</comment>


Ask HN: Is there a decent JS library for drawing paths between nodes? - <AUTHOR>

Our startup is building a simple mind-mapping app. (We're doing other things too; this is just a little side project.) We have our nodes resolved, etc. But we can't seem to find a decent JavaScript library for drawing paths between them.
Here's what we need: - Paths would be drawn between nodes over the shortest distance. - Paths would not overlap/underlap nodes; rather, they'd bend around the nodes. (We'll specify the margins.) - Adjust color and thickness of paths on the fly. (We've got an algorithm sketched for that.)
We found a couple of libraries, which are promising, but they don't do what we want them to, and they're poorly documented, so we can't modify them easily.
Figuring that there are so many mind-mapping tools out there, one would think that there are standard JS libraries for drawing paths between nodes. So, HN Community, do you know of any such libraries, or have advice about where to start looking? <comment><USER2> Try the list found here: [http://wiki.neo4j.org/content/Visualization_options_for_grap...](http://wiki.neo4j.org/content/Visualization_options_for_graphs)

Looks mind-mapish: <http://mbostock.github.com/d3/ex/cluster.html>

</comment><comment><USER3> I just saw this recently: jsPlumb <http://code.google.com/p/jsplumb/>

Here's a demo: <http://jsplumb.org/jquery/demo.html>

</comment><comment><USER4> I believe you are looking for <http://jsplumb.org/jquery/demo.html>

</comment><comment><AUTHOR> Thanks, everyone! We'll be sure to let the HN community know when our mind- mapping tool is ready for some more serious publicity... e.g. when it's ready.</comment>


The Unreasonable Effectiveness of TDD - <AUTHOR> http://blog.bignerdranch.com/2379-the-unreasonable-effectiveness-of-tdd/

<comment><USER2> Most pro-TDD articles I read take the perspective that people who don't agree with it just haven't tried it, or don't understand it enough yet, or things along those lines.

I'm curious to hear back from anyone who has bought into TDD full-bore and recognized all the benefits, but has instead decided to go back to test-last development (write the features, and then write tests purely for code coverage). If so, why?

<comment><USER3> Such people, if they exist, are heretics and kulaks, enemies of responsible software development, and should be liquidated as a class.

<comment><USER4> Can we liquidate those responsible for the unfooable barness of baz while we're at it?

<comment><USER5> Resource Acquisition is Initialization, so just wait for current trends to go out of scope and you'll enjoy automatic, orderly and all but guaranteed destruction of kulaks and unfoobers.

</comment></comment></comment></comment><comment><USER6> The original paper on Mathematics was able to appeal to a long history where mathematical advances led to new discoveries in science, particularly physics. This blog post simply borrows the phrase while failing to demonstrate any sort of effectiveness for TDD. How long must we endure programming cults with no science behind them?

<comment><USER7> > How long must we endure programming cults with no science behind them?

Until someone invents a cost-effective way to do science on programming techniques. I'm not holding my breath, because we're talking about workplace habits, communication through code, and team dynamics, which is an altogether different beast than mathematics or physics.

</comment></comment><comment><USER8> I'm personally interested in reading articles about TDD in the game development sphere. Such tests are much harder to write (I didn't say impossible!)

<comment><USER6> TDD aside, I'm personally interested in any testing approaches that apply to user interaction.

<comment><USER7> I'm doing a lot of that (UI testing) in my Let's Code Test-Driven JavaScript series (<http://www.letscodejavascript.com>, starting with episode 41). My next Lessons Learned video (#10, coming out this Friday) covers the underlying theory. There's a free trial if you want to check it out.

If you're more into Java, or then I also do a lot of test-driving of a Swing GUI in my original Let's Play TDD series (<http://www.jamesshore.com/Blog/Lets-Play>). It's a lot less polished than Let's Code TDJS, but it's free.</comment></comment></comment>