skysight-inc/HackerNews huggingface dataset:
I use Tetris to learn too, here my last implementation in javascript, I've started to learn Nodejs and how to reuse code with browserify, the version worked in the terminal and the browser.
I would like to take time to rewrite it again in ES6/7, and then start learning other things like AI.
edit:
https://github.com/alfonsodev/tetrinode/tree/dev-0.2
To paraphrase Mark Twain, the difference between the right phrasing and the almost right phrasing is the difference between lightning and a lightning bug. We're here for the lightning.
> For example, the recent DDoS attacks were just a bunch of skids with Mirai, but it was discussed as if it was the end of the internet.

As far as I'm aware it was the biggest DDoS attack on DNS ever. Whatever the cause, the effect was massive. The potential to effectively blackout major parts of the Internet for more than several hours is pretty concerning to me.
Ban Sought in U.S. For YouTube Ads ‘Masquerading’ as Kids’ Shows
China wants to give all of its citizens a score [video]
> By simply not downloading and seeding it. ;)

You seem to have glanced over the qualifier I used: accidentally.

Given a hash for an IPFS resource, how do you know it does not contain child porn before you retrieve it?

Once you have downloaded it you have committed a crime. There are no take backs with strict liability crimes and IPFS provides no anonymity, so there is a record of you downloading and seeding child porn.

> In IPFS you do not automatically relay things, you have to explicitly decide to.

Really?

Correct me if I'm wrong, but I was under the impression that immediately once you retrieve a hash via IPFS, you cache it and start seeding it.
I'd reccomed guile or cyclone of you really need native threads: because of Cyclone, the potential is there, but it would be very, very hard.

Chicken does have fork, concurrent native callbacks and mpi, among other stuff, so you can do parallel stuff. It's just more expensive.
You're pointing out an important point: third-party services have to be fast, too. The call that starts the checkout does a synchronous request to Paypal Plus, which has very ugly request latencies from time to time.

The shop is indeed quite minimal at this time. The optimizations scale very well to regular ecommerce sites, though. Detail pages and categories can be cached very well, as they only change by actions of human editors. A notable exception are recommendations. If they are item-based (e.g. a-priori algorithm) they can also be cached very well. If they are user-based (e.g. collaborative filtering) that part has to be fetched from the server-side recommendation model. The same is true for search results. The heavy-hitters, i.e. the most-searched-for keywords are cached, while the others are fetched from the database. That is the part where server-side scalability and latency optimization is of utmost importance. At Baqend we support both MongoDB full text indexes and automatic separate indexing in an ElasticSearch cluster with automatic CDN and browser caching for the most frequent search results.
> There are still requests sent, there is still network latency. [In the case of small JS/css/icon files, the latency can be as much as the transfer time].

What? When the "Expires" header indicates the item is still valid the browser should use the cached object without making any requests.

Some servers (Rails for example) just serve assets with "Expires" set to some distant future time. When they want to expire these files, they simply change the name (hence the long numeric suffix appended to js/css/etc. files)
I predict you're going to get a lot of different answers and that you may not find a strong consensus.

My advice is that there is no clear winner. Each technology serves a spectrum of needs, some better than others. If you're experienced enough to know what you need, then vet each technology in terms of what they offer to solve your problem. If not, my advice is to pick something that appears reasonable and go with it; you'll learn a lot, and eventually you'll arrive at the conclusion that all of these things are just tools--your own experience is the strongest thing you bring to the table.
Service interfaces should be well-typed. Almost by definition, the cost to update a service interface will be a fraction of the time associated with updating its consumers and testing their integration. Dynamic types can lower a part of the cost (although not by much, in comparison to modern languages and frameworks), but add more expense in many other ways.

When operating at any sort of scale, a system that's "easy to change" stops sounding virtuous. Communicating and integrating service changes effectively is usually more expensive than making the changes themselves, for a large organization. Providing service descriptions which can be converted into static types (e.g. swagger) is very cheap, and can prevent a host of expensive human errors.

In truth, poorly specified services or documents can end up impossible to change, since the risk and impact of doing so is difficult to size (or the exercise of doing so costs more than the change is worth).
I work in energy, and there's a saying: "The cheapest kwh is one you don't use."

Want to make your website faster? Don't send so much stuff. Removing unnecessary code or content from your site has always had the biggest impact on performance. Unfortunately, it seems that often the people in charge of increasing performance aren't the people who get to choose what has to be on the website.

The Website Obesity Crisis: https://vimeo.com/147806338

I want to share with you my simple two-step secret to improving the performance of any website.

1. Make sure that the most important elements of the page download and render first.

2. Stop.
PHP :-)
The logic is backward, actually.

The low risk that any breakthrough in batteries would happen IS the reason for the vast amount of securities dependent on it.
>Code completion is a fundamentally harder (if not impossible) problem with dynamically typed languages, as you might need whole-program and control flow analysis to even get the types of local variables.

This pre-supposes that you don't have a test to run the program, because if you do you can just embed an interpreter in it and you have access to everything - tab completion included.

IMO This approach is partly what made IPython notebooks so spectacularly successful, and the future of dynamic language programming will look something like that.
> It doesn't, but the fact that there's nearly as much variation within statically typed languages in terms of how difficult this is to do as there is between statically and dynamically typed languages does.

I really don't buy this. Yes different languages present different degrees of difficulty, but the ceiling is much lower for dynamic languages compared to static ones. In dynamic languages, there are absolutely (very common) situations where types cannot be accurately inferred (or inferred at all). If I write

def f(x, a): return x[a]

That's practically impossible for an IDE to do anything with.

The reason why not every static language has great tool support is more to do with A) if the compiler was designed with hooks/apis for tools to use (like clang and rust do), and B) if the language has enough popularity for anyone to bother. I'm pretty sure if you take two languages of relatively equal popularity, and compare the dynamic one to the static one, the static one almost always has better IDE/tool support. For instance, lets take Swift vs Ruby (they're next to each other on the Tiobe index). I've yet to see a Ruby IDE that is much of an improvement on a text editor, whereas Swift is pretty young and already has tooling comparable to much more mature languages.
"No diaspora of English nobility, many of whom left rather than become subject to Normans" - do you have any other links or more information about this comment, i.e. which nobles and where did they go? I'm curious to find out more as was not aware of this aspect. Thanks
The time segments would have indicators of low user activity in that case, plus you'd have the exact same screenshot for a long time in a row.

Yes, you can game it even so, but it would be at least inconvenient for you.

Besides, if you do keep the stuff you don't want your client to see on another machine, then there's no reason to worry about being "spied" on. :)
We have an open position for an Kaldi Engineer, in case anyone's interested.

https://news.ycombinator.com/item?id=12630618
Good point about Elephants, I didn't consider that. Thanks for the enjoyable and informative exchange.
This is definitely a way better approach than hourly billing, for sure.

On the flipside, stating daily billing is not much different than hourly since the client will just divide by 8 (usually). I stated my daily rate after hearing it from you and Patrick and Brennan Dunn, and one client just said - ok so your rate is "$xxx" per hour?"

My point is that daily billing is an improvement over hourly, and with your approach of an overall fixed price and also daily that's a great approach, but the client still knows a daily rate is essentially hourly. A better approach is retainer pricing if not a fixed one-time project!
how does this differ from maidsafe?
You have a point there. I found jMeter, however, really easy to use. I could simply let it monitor my browser (via a proxy) while i clicked through the website and the checkout process to record the requests of an average user. Then I configured the checkout process to only be executed in 20% of the cases to simulate the conversion rate. Even executing the test distributed over 20 servers wasn't that hard.

Which tools would you use to generate this amount of traffic?
> i find it hard to skim conversations in narrow screens.

It's practically impossible to read comments nested more than one level deep on mobile and keep track of what level of nesting you're at. In contrast, Reddit handles this pretty well.
>
I suspect no one structure is optimal for all contexts.

I would rather assume "no one structure is optimal for all people".
Availability bias is definitely one aspect, but I think a big part of it is also how easy it is to tell a story that separates oneself from the victims (this often takes the form of victim blaming, but not necessarily). It's easy to tell yourself the story of how heart attacks happen to people with different lifestyles or genetics, or how car crashes happen to drivers who are less attentive, or how violent crime happens to people who live in other neighborhoods. It's a lot harder to tell yourself the story of how you'll avoid the plane with the latent mechanical fault or how you'll never be at a gathering place that would make an attractive terrorist target.
The Fatal Mistake That Doomed Samsung’s Galaxy Note
A Declaration of the Independence of Cyberspace (1996)
Personal story (P.S. I am not the author, I just worked in startups as well):

For me it didn't, especially when we were not prepared for it, and we know that we couldn't take the traffic if it happened.

What really killed me instead, was when our site was slowish or half-fucked during some events. And people still managed to use it harder and harder for the entire day. And we made unusual loads of money and new customers, with a crap site xD

There is of course a feeling of "how much did we miss out? that must be a lot considering how much we did get.", but it's less prominent than the feeling of "how the hell did all these people manage to pay us at all? and why the fuck did they keep using the site?". That does contradict every known blog and article out there about people just leaving.
Credit markets can sustain expected / anticipated losses. Car makers all have low ratings when they are not fresh out of chapter 11. The problem with credit markets is when there is a big blow in a credit that was deemed to be very safe. Then it hits portfolio that aren't designed to sustain large loses like money market funds or smaller banks or people overleveraging their position. Then you have 2008. But a slowly degrading credit quality to which investors will have years to adjust shouldn't be a problem.
Well, you got an influx to this:

https://en.wikipedia.org/wiki/Varangian_Guard

"Composed primarily of Scandinavians for the first 100 years, the guard began to see increasing numbers of Anglo-Saxons after the successful invasion of England by the Normans.

[..]

the Guard was commonly called the Englinbarrangoi (Anglo-Varangians) [after a point]"

(That is all I really read about that subject.)
To be more clear on this:

It doesn't mean that IF i get the question, i can say "just look at the log".

It means that i have gotten questions like that and similar before (think "keep a regular logbook of what you're working on") in other jobs; and have never gotten anything like that on Upwork.

You might argue my clients are simply different, and it's possible, but i think i simply don't get things like that because they feel comfortable enough with my work and are mollified by the logs if they have worries.
I can tell you first hand what they do! They call a company like "Accenture" (which we call "Accidenture" or "HP Consulting" and a GE Capital Porta-building appears with H1-B programmers. They're there for a few months, and then they go away.
This is what Stack Overflow does. Since it "hurts" their own karma, people downvote less. One implication of that is that when threads stay at zero, it can be hard to differentiate the reason why. Sometimes it's just that the question is well written but obscure.
I suspect something I came up with a few days ago would address this. It's based on the concept in this video: nxhx.org/maximizing/

The guy in the video suggests companies collect users' reasons for using products/services & feelings around those reasons. Companies would then be able to choose which reasons to design for.

The thinking goes like this:
Right now, companies use metrics based on how much things cost in terms of time/money/attention. Those are abstractions on top of our reasons, so if companies can create a system to directly measure our reasons, those more meaningful metrics will allow them to produce better products.

That idea doesn't get rid of the politics in companies...unless you remove the company from the equation when collecting user reasons.

My idea is to build a public blockchain-based system for collecting those reasons publicly & anonymously. If every company has a public user-generated set of reasons for using their product & whether or not the product is a good choice for fulfilling those reasons, the internal debate changes to which reasons should they choose to fulfill. Arguing over whether this or that change better fulfills this or that reason would be silly because testing the idea is the only thing that makes sense.

There'll still be politics around funding tests, among other things, because political people aren't just going to change how they act overnight, but I'm betting this system will give them far less to play with.
In my particular area of work (programmer to hire by hour) the differences between a boss and a client are neglible.
Amusing that we've gone from talking about Peak Oil Supply to Peak Oil Demand...
"The method name getAbsoluteDifference() means to get the absolute difference between the pair of numbers. The method name contains a verb get.
It would not make much sense to name the method simply absoluteDifference(), because such name does not indicate any action."

I disagree. I want the property of 'absolute difference' between the two numbers. Getting that value is what I do when I make an assignment. Whether this value is cached or calculated is of little consequence to outside code provided it has no side effects on other state within the object. Should a method (member function, whatever) cause side effects within the target object, then the method has become a verb. Like, 'increase(by:)' - that's a verb, affects the state of the object ... well-named, friend.

Aside from that, I think the rest has embodied well Apple's talk about Swift API style from WWDC with a nice dose of input from this author.

Edited to add: 'getAverage()' shows up later. I fail to see how 'get' adds anything of importance considering its company 'reversed' and 'sorted' - they should all prefix with 'get' or they should not. I'm in the 'not' camp.
How to learn better as a Developer
It seems so, but in Germany it is not #1 priority. In my research lab in Germany, we were PhD students from about 15 countries, and the work language was English. This is very common for science and engineering research. So a student from China can either spend time learning German to improve his/her social life, or spend time reading and writing in English to achieve better academic results. Usually it is difficult enough for them to become fluent in English, which is necessary to publish papers. Guess what happens.
Regardless of whether I think this is a bit of a far fetched use case or not, this really does nothing for Joe Blow and his content distribution needs.

But let's roll with it anyway. How does IPFS solve this problem, and more specifically how does IPFS solve this problem any better than just publishing a torrent of Joe Blows collected ramblings?
Penetrating the Police Brotherhood
It's not that I worry. It's just that I don't think it's correct. Same way as I don't have anything to hide in my email inbox but I don't like the idea of NSA (or anyone) having reading access to it.
Really? Half of them are "I can't read it! It's paywalled". The other half is pointing out that it's a dupe. And the third half is people whining "NOT FAIR! I posted the same story and didn't get any sweet karma points."
Volvo seems to have caught up, more or less:

https://www.youtube.com/watch?v=HM1-Yh5fwB8

Building a good embedded touchscreen UI is not so much rocket science as it was just 5-7 years ago. There are a lot more people with the knowledge nowadays - because of the mobile app revolution.
As a long-time UpWork user, this has saved our butts a few times, especially with technical hires.

We've had times we had hires billing full work weeks but seemed not to be getting much done. But how do you know if it really ought to take 10 hours or 40 hours to complete a task? I've done enough research, writing, and coding myself to know sometimes the thing you think will take 10 minutes ends up taking 2 days instead.

In these cases, we can look at the screenshots, and usually rest easier seeing yes, he's working, every screenshot (just about) is on the assignment.

Sometimes we will check the screenshots and notice the guy just opens his computer up, opens a document up, and then leaves it there for an hour or more with no work. Maybe he scrolls midway down the page at the half hour mark. So then we confirm he's milking the clock and can boot him for someone who isn't going to suck us dry for nothing.

And in a few cases, we've checked screenshots, only to see that almost none of his time is spent on our project. In one case we discovered a freelancer was billing us for time he spent surfing a website called "Boob Forest" and googling instructions on how to hack the CD player in an old Honda.

Generally we will allow freelancers we've worked with for a while to use manual time. We know what their productivity is like and we established enough trust earlier that we don't need to monitor them as closely. But it's pretty important from the client's perspective to make sure you're not getting screwed with this new hire you know nothing about. And especially if it's a new task you don't have a good metric for what the productivity / turnaround time should be like.

It'd be nice if there was a reliable way to know up front who the bad apples are and who are the totally trustworthy folks, but no matter how good your hiring instincts are you'll still get it wrong some of the time. Screenshots, while perhaps an annoyance for the freelancer, are a significant downside reducer for the employer.
The last one looks better: http://epsilonwiki.free.fr/lambdaway/?view=com2
Harold's mother, Gytha, left England with other prominent nobles. I seemed to recall her going to Flanders, Wikipedia (that credible source) suggests somewhere in Scandinavia instead.[1]

[1] https://en.wikipedia.org/wiki/Gytha_Thorkelsd%C3%B3ttir

Edit: Worth listening to are these BBC 4 In Our Time Podcasts.

The Battle of Stamford Bridge: http://www.bbc.co.uk/programmes/b011jvlt

The Domesday Book: http://www.bbc.co.uk/programmes/b040llvb
Time saving chrome extension
The Slides Left Behind
You don't want them reading it if you're working for them, but if they're paying you to do mailing they'd have a right to ask to take a peek in, i think.
>I can understand why some would not like this, and maybe it's because i'm german, but i do not mind this at all.

Well, remember where this attitude took Germany in the previous century....

(tongue in cheek)
I discovered Jane's work very recently through the "The Economy of Cities" (I haven't read her classic "The Death and Life of Great American Cities" yet but I've read others) and it's been a real eye opener for me. It's was very enlightening to discover a theory on how important cities are to growth and well-being.

Some of her concepts such as "import replacement" (a free market process of discovery and division of labor within a city) can be very helpful for cities aiming to mimick San Francisco / Silicon Valley such as Lille in France (with its Euratechnologies neighbourhood, where I work) or Shenzen (now that it's losing its toy factories and moving up the economic laders). And the importance of "eyes on the street" for everybody's safety, of diversity of shops/works for economic resilience, of serendipity for the process of innovation (the creation of new work, in Jane Jacobs terms), etc.

And by the way, her books are an easy read too ! I'd say a real "classic" : even more 40 years later there's still some real insights for non-urbanists.
I'd do a few things. First, keep a journal for 30 days. pick a few criteria up front, what you eat, physical activity, amount of sleep, and the events you're having seems like a good base.

Second, talk to a psychologist. Follow up that diagnosis. Maybe you are depressed, but maybe the cause of the depression is the pain you're in. Maybe you're not depressed at all. Having that diagnosis will cut off that set of probabilities, and force your doctor to move down the list to less likely possibilities.

Third, maybe get a heart rate monitor, and track that for a few nights. If your heart rate does shoot up to 150 while you're lying down (sometimes) you'd want your doctor to come up with a good explanation for that.

Fourth, perhaps most important, try going to a teaching hospital. It's much much better to have several residents with something to prove thinking real hard about your problem. Get several eyes on your case at the same time.

Think like a scientist. Accept you don't know what's going on, talk with your doctor about what the possibilities are - ask your doctor to assign probabilities to those possibilities. Come up with a plan to work through the list from most likely to least likely. Accept that maybe it is depression, rule that out so you can work further down the list.

Your doctor is just a person, maybe they're having a bad day or a bad year. That's fine, but you still need their expertise to get an answer. Don't contradict, but ask why they think X is most likely, and what's the best way to resolve or rule out X. They may not want to work with you, but you can certainly work with them.

At the end of the day, you want to feel better. I hope you can find someone that'll help solve that problem.
(aside:) The current fashion for people, like cattle, having to show they have nice strong teeth produces quite a few manic-looking photos ... (besides lots of income for dental cosmetology)