skysight-inc/HackerNews huggingface dataset:
so from that thread seems like Altis from Arma 3 is roughly 16 X 16. I think that is quite big enough. Maybe if one was building a MMO sort of map, you would patch those 20x20 maps somehow.

I was thinking of creating a giant map like Altis and then putting players on it to roam around and stuff. Cryengine makes this very easy I think but haven't gotten to it.
I've asked a similar question to candidates, which allows me to have an open ended conversation. My question is: "On a scale of 1 to 10, how do you rate yourself as a programmer." The answer to this question rarely matters, but it opens up room for follow-up questions. For example:

1. Why did you pick the score that you did?

2. Have you identified areas of improvement that will help improve your score? What are those?

3. What are you doing to improve in the identified areas, and when do you think you will get there?

4. Give me an example of a strength that contributes to your current score? What is the sample population that you used to evaluate that strength?

etc...

I ask this question towards the end of the interview, and only if I have decided to hire the candidate, and only if there are no more specific questions to ask. Asking this too early and before having enough data points from specific questions, is a waste of time and energy - both for me and the candidate.
I have 2 children and found the workload goes up significantly on the second. No economies of scale there, in fact the reverse as with one you can take turns with your partner to look after them but with 2 it's typically all hands on deck.

Also regarding extra curricular, people might spend the same time socialising etc but this counts as time to re-charge and get back to work. If you spend a couple hours getting your kids dinner and into bed you don't feel like heading back to the desk the same way you do after a game of tennis with friends.
Using Docker to build a data acquisition pipeline with Kafka and HBase
So they did, I wasn't aware of that.

This sort of proves my point from another comment: they stopped updating the list shorting after it was posted, and so all of these domains are forever stuck on the shame list.

Viewing domains from the Alexa top 1M list so many times today also makes it very clear that it is total crap.
mux is probably the most popular routing library: http://www.gorillatoolkit.org/pkg/mux

As far as application structure, I'm not really sure what you mean. Go projects are divided into packages which can be any number of files. At some point you'll have a main package which has a main() function which gets called to start your server. It's similar to C, for example.

That said, the variety can also be a plus. Some people chose to use something like Martini that does dependency injection. Others think that's not a great idea.
Initially I used https://revel.github.io because I wanted to use many inbuilt things and hot reload.

Later I started use just standard library with http://www.gorillatoolkit.org and used fswatch for hot reload. Now there are lot of alternative in routers but no clear winner.(and thats good thing) I will suggest go with standard library and simple router but be ready to revert back to framework like revel if that doesn't workout.
Brilliant piece of work. The kind of coding that you do when space is expensive, been there, done similar things. And as others say an emulator lets you see exactly what your code is doing.
Things seem extremely nice in go when you start out in go and see "go get", but then you'll quickly ram into not wanting the latest master, and then get extremely puzzled about how to do library dependencies.

I wish I saw some sort of consensus on library dependencies in that thread. Too much of our work build relies on setup scripts.
It's approaching very slowly, at bicycle speed.

From the article, Ceres diameter:

Mar 1	: 207 pixels

Apr 10	: 306 pixels

Apr 14	: 453 pixels
It also made you learn quickly how to debug.
Would someone care the elaborate on the following?:
"They use nginx to route requests to either the microservices or the main Ruby app... The Go microservices treat the Ruby application as an API client or upstream proxy, which allows authentication to be simple."

What I read this to mean is that the Ruby app accesses the microservices over HTTP with some kind of token-based authentication. This would make sense if there some form of shared session store which each microservice could validate the token against. What I'm confused about is how nginx fits into this? Is it routing requests directly from the client to microservices? Or is it a proxy layer in between the Ruby app server and the microservices which allows the Ruby app to forward auth-token information? In the former scenario, would the Ruby app server be pinging the same nginx instance that forwards it requests in the first place?
Unsigned int >= 0 in a decrementing for-loop is a classic trap
I think the appropriate term for this article is "overwrought"
> (especially C programmers)

Author needs to stop his anti-intellectual everyone-is-as-ignorant-as-me bullshit. I see that a lot re programming to justify a lot of silly positions. If you only know Javascript, that's great, I rather like having shiny things in my browser (I like it too much, even). That doesn't mean that C programming is obsolete; some of us know C. For example, I got #5 and #9 wrong, and the rest I got right including the general idea of the justifications. (10/12 is pretty good for someone who grew up in the Java era, but I want to get better.)
After refactoring the alert feature into a Go microservice, they’ve seen the following improvements

The same number of workers (that required 12 GB in Ruby) now requires just 5 MB of memory.

Not that I don't approve of pro-Go articles, but doesn't this maybe indicate that something was wrong or inefficient in the Ruby implementation?
slower compared to what? as far as i can tell the sites wouldnt get slower than before, they just would not use the full potential of HTTP2 , which makes them slower compared to the optimum? hmmm
My CS101 prof would give 50-100 line blocks of code, and hidden in them somewhere would be something like:

if(condition); {
some stuff
}

Note the semicolon after the if-statement.

The tests became games of "find the semicolon or = in place of ==". Ugh.
> Is this guy genuinely suggesting that people fell in "love" with distributed version control solely because of GitHub?

The author suggests that the "tipping point" for Git adoption vs e.g. Mercurial was when Github made open source development a much more gameable, visibly social activity. Prior to that, every OSS project had a web page, a mailing list, a Sourceforge or code.google.com repo, etc. But no single use ID existed for developers across all of those little islands of identity and conversation. Github changed all of that.

Coming from the scientific Python community, I can absolutely attest to the huge long email threads as projects decided whether they were going to stick with SVN+Trac or Mercurial+Bitbucket or Git+Github. (This was before Bitbucket supported git.) In the end, all of them ended up going to Github because of the social stickiness, even though its ticket and tracking system is really primitive compared to what even Trac was able to do.
I just got the first one wrong and haven't written C code in a decade. I have to admit I haven't seen that construct used in any programs. I guess, no harm no foul, but still seems like an odd construct to allow.
Project Morpheus: PS4 VR Upgraded, Coming in 2016
https://blog.cloudflare.com/cloudflare-sites-are-protected-f...
The "micro" in "microservices" refers more to the size of their conceptual complexity than how large of a task it actually is.

PDFs are one conceptual bucket that can have their own datastore and a simple API. Sending email isn't included in that service's contract, as it actually outsources this task to Mailgun.

REST/JSON can have formal specification – check out http://json-schema.org/. Swagger (http://swagger.io/) is another example of this and works really well for automatically generating client libraries in many languages and auto-updating documentation.
This reminds of me of the Quiz books that were popular years ago. They'd show some code that inadvertently tripped some obscure corner of the language.

Rarely did the quizzes provide great insight. Rather, they confirmed the benefits of keeping your code idiomatic.
Startup culture - check! (https://42floors.com/team)

Startup success - uncheck!
Jesus and the Uber Driver
Which is why the nvie.com "git flow" (that everyone points to as the ideal branching model for git) is not actually on the git site?

And as for git man pages... I have been hacking on Linux and complex codebases for 20+ years at this point but have never been so befuddled as I have been by the git man pages.
Trick is: Stay long enough in the game, earn enough money to stay afloat, then find the gold at the end of the rainbow. Expose yourself to luck.
> people already forgot about OnLive

NVidia just announced today at the GDC they would be doing the same thing, at a premium cost, at full 1080p, 60 fps streaming.
Some would twitch at this:

for(i = length - 1; i < SIZE_MAX ; i--)

but it is completely valid.
We did some measurements with Padrino applications in the wild and found that all of them could be improved a lot in relatively simple ways. E.g. by not loading multiple JSON parsers. Padrino being a rather slim framework on top of Sinatra, that often meant getting below 80mb memory usage (on a full stack!).

Our takeway was that the (Rails) monolith model tends to put a lot of things into one process space. Controlling library loads can be a chore.
I agree that line bit confusing, Ruby app doesn't connect with Go service directly, every requests goes through balancer and then nginx router. Nginx routes then using simple location directive. Authentication is not shared, its either token based or Go service act as proxy and send request to Ruby app and modify response received from Ruby app before sending to client(i.e covering html to pdf)
Yeah, and it would be awesome if we didn't have to have squeaky clean, unrealistic politicians. That is a really small sample of people, who are a) weirdly repressed, or b) amazing liers.
So, so meta.
This makes the assumption that their bottleneck is the overhead of HTTP. This assumption is common on HN, but (in my experience) is a rare problem to have for most companies.

It looks like they do a good job of tackling performance problems as they see them, even at the architectural level. My guess is they didn't tackle this because it wasn't a problem worth prioritizing compared to the compounded shitshow of a monolithic Rails app.
I live in Silicon Valley and even I don't get 15mbps with my home Internet, which I pay $40/month for (which illustrates how bad the Internet situation is in the US as well).
Does anyone know of a tool which can automatically scan source code for these types of oversights?

Assuming of course the compiler doesn't already check for all of these...
Already the first example is wrong. So I stopped reading.

% cc -std=c11 -o dingens dingens.c
dingens.c:6:9: error: redefinition of 'i'
int i = 10;
^
dingens.c:5:9: note: previous definition is here
int i;
^
1 error generated.
% cat dingens.c

#include <stdio.h>

int main()
{
int i;
int i = 10;

printf("hello, world\n");
return 0;

}

%
I'm a C fan, too, but not when it comes to dependencies. In a world where using someone's library typically requires one or more of (a) having everyone compiling your code also manually compile the library, (b) hoping the library has found its way into N different OS package managers, and (c) vendoring requiring manual maintenance, you end up with a lot of real world C and C++ code reimplementing basic things that would be better done in a library, because importing a library is too much work. This sucks - certainly it's possible for libraries to be too small, dependency graphs too convoluted, and you can see some of that on npm, but C/C++ are so far on the other end of the spectrum that it's hardly worth thinking of.
Too much of a coincidence!

Did he make sure the behavior he mentioned is uniform across all ISO standards? What is his source for coming up with a certain answer to a certain piece of code? any of the standard documents? K&R book? gcc output?

As an example:

In the answer to point 2, he claims:

> ... the compiler thinks that x cannot be a null pointer ...

First of all, this gives a strong indication that he's analyzing a compiler output, a compiler that he didn't reveal in the article.

But even if we ignore that, and he truly is going by a rule that is uniform across all of K&R, C89, C99, and so on, could you or him point me to any page in the C99 standard document where it is explicitly stated along the lines that the compiler "should assume" the pointer to be not NULL after an undefined dereferencing in line (1) and hence ignore (2) and (3)? (Based on my experience, I have a very strong hunch that a standard would not enforce assumptions as a result of an undefined operation.)

If you could, you/he "may" have a point ("may", because I still have 11 other points to critique). If not, he and you clearly have no idea what you guys are talking about!
Every time I read something like that, I get the feeling that "Monolith to Microservices" is the pattern and the language doesn't matter.

At the beginning, a Monolith has huge advantages: easy to deploy, all in one place, smaller operational overhead, easier to manage with unclear requirements.

Later, it's easier to find out what you can split out and you can learn how to route and manage things piece by piece.
He clearly mentions that the statements are not in a function body, rather just in the global portion of a C file.
There are two ways an agency can react when presented with a case like this. On the one hand, by interpreting the law absurdly broadly, you expand your own authority until some check-and-balance comes along and pushes you back in line, which could very well be never. On the other hand, the more you push the boundaries, the less you can focus on where the real problems are. An agency which can't evaluate a situation like this, and in an hour walk away with a 'Have a nice day,' is a broken agency. The bar must be higher than this.

Kids are incredibly safe in these neighborhoods, and the more kids that are out, the safer it gets. We need to be encouraging this behavior, not apply some seriously chilling effect. What can be more chilling than the threat of taking away the kids?!

The idea that this could reach to that level is I think the worst part of the whole ordeal. This is so far removed from 'we need to get the kids out of here' it is absolutely ridiculous that could even come up.

But I think, again, it's about the state trying to maintain 'easy access' to their biggest weapon, so they can use it easily when they need to. I think what there needs to be is a bright line test which assures parents their kids are not at immanent risk of being seized by the fucking state. For this, I think the answer is simple, you cannot ever remove children, you can merely arrest the parents. If you can't legally arrest the parents, then you shouldn't be taking the kids. I can't even imagine how traumatic that must be.

I mean... if I was actually working at an agency like this, if I got a call about those kids walking on their own with multiple residents calling the police, the reasonable thing to do is first establish the parents knew where the kids were, and then second ask a few basic questions of the kids, and see if the eldest knows the right answers. It's really no different than if you encounter a park ranger, some of the questions they might ask you to ensure you are safe. We/They are there for your protection. So it's hugely concerning for such a simple case to get this out of hand.
I’ve been using Open Torque Viewer combined with the Torque App and a basic OBDII bluetooth sensor to log my car’s sensor data over the past month and a half. Charts are in the link.

Plotting was done with seaborn - the code is available as an ipython notebook : http://ryancompton.net/assets/torque/mpg_plots.py.html
Quadriplegic woman flies F-35 simulator with nothing but her thoughts
Majority isn't a good argument you know. Let them explore. Personally too thick and square watches repel me, and I don't intend to read Shakespeare from my wrist either. 2 'full length' rows at the center are probably enough text to read.
What happens when you outsource testing to India
Exactly, Ruby app was monolith so it was consuming much more then this single feature would require. Now there is double benefit Go already uses lot less memory and its microservice. Plus with Ruby we have to run multiple processes so whatever memory single process consume * # of workers.

I could have rebuilt in Ruby and that was my first thought but deploying and maintaining Ruby apps are lot harder then you can imagine. I didn't like idea of maintaining lots of small ruby apps. Once you deploy single Go application, you might not want to deploy another Ruby app.
> When will Chrome offer the option of switching to a new tab when its link is clicked on? Firefox has had it forever.

When will the big browsers be programmable? I'm currently running uzbl[0] because I want to set my own hotkeys in my browser. I tried 4 different 'emacs bindings' extensions for other browsers until I just figured out that none of these is gonna get it completely right.

The good thing in all of this is that I now control the behavior and features of my browser myself. I've made features that wouldn't even be possible in Firefox/Chrome. Not because it should be all that hard, but because they just don't let you actually do anything with them.

Browsers are pretty much like e-mail clients. They all suck. Some suck less than others, but it's actually striking how bad the sum total of all the browsers' usability is. Ironically I had to switch to a browser that wasn't trying to be a modern browser to get the browser experience that I wanted.

Links:
[0] - http://www.uzbl.org/
You can use the clang sanitization flags to catch them dynamically (at least, the null pointer dereference and signed overflow).
I downvoted you, because one of the big features I have been waiting for with Unity 5 is WebGL export, and this thread seems to have a lot of misinformed commenting in it. Please research before you make claims about something. [1]

[1] http://unity3d.com/unity/engine-features
A trickier variant of #11 is to show people

bool is_zero(int x) {
return x == -x;
}

bool is_zero(float x) {
return x == -x;
}

and ask them which is wrong and for what value. Most of the time the instinctive response is that it must be the float code (because floats are evil, duh).

This works even in languages with defined overflow for integers.
I like that in a discussion about child safety we've started with 'go to the nearby park unsupervised' and arrived at 'shooting guns'.

That's an interesting range right there and potentially another clash of cultures for me (I assume I started with similar values as the thread starter, substitute CH with DE).
It looks like an enthusiastic newbie with some clipart and an equation. Fair play for trying.

I would suggest adding the following.

1. What the poster above said.

2. The reason for the E[(x_{bar} - x_i)^2] choice. Why not E[|x_{bar} - x_i|]? Was it a mathematical convencience? Was it, perhaps, because Gauss had the integral of e_{t^2} from -Inf to plus Inf lying around in a letter from Laplace?

3. It is an equation with a square. Use a square somewhere.

4. The square root of the variance happens to be the horizontal distance between the mean and the point of inflection in the normal distribution. How cool is that?
So many wrongs and confounding variables that I don't even know where to begin but I'll try anyway.

1) Ruby is a complex language:
Ruby is quite simple. Everything is an object, every method call is a message send that follows the exact same protocol of dispatch. Also, completely irrelevant to the main thrust of the article.

2) Memory consumption and speed:
Can't really refute anything since by their own admission they were running a monolithic system.

3) Concurrency:
Plenty of options. I like celluloid personally and if you switch to JRuby then you can do all sorts of other stuff as well with automatically managed thread pools.

4) Backcompat:
Ruby is not an enterprise ecosystem. Some people call that speed and agility. In their case they really should have gone with Java since they are basically serving an enterprise customer. This is not a knock on Java. I think the language and its ecosystem is by design made for stuff like this.

5) PDF generation:
I'm guessing the Ruby code was calling some C library to do the rendering and they swapped out all of it for Go. I don't know what library Go is using to render PDFs if it is the same library then there is something interesting happening here. If it is a different library then they are comparing apples and oranges and there's nothing to see here.

6) Alert service:
Completely bound by I/O so doesn't matter what language you use. Bad design for keeping many processes around because you only need to spin them up during spikey times which can be easily handled with better engineering. Also eventmachine and celluloid for the worker internals would have been another option so again they didn't do their research.

7) Gradebook service:
No idea again. Thin on details so nothing to refute really.

8) Deployment:
Sure. Why not. Single binary is easier or JRuby and a single jar which is just as easy.

In conclusion, they re-wrote everything and I'm sure removed a lot of cruft in the process and called it a victory for Go. In a year or so they're going to run into similar issues and Go is not going to save them because from what I read all I saw was bad engineers blaming their tools.
The problem is that (correct me if I'm wrong) an expression like "&foo->bar" counts as a dereference of foo, even though the result of the expression is simple pointer arithmetic involving foo (adding the offset of the bar member).
You exactly captured my sentiment, when I started doing this I don't realized all benefits. Because of Go's simplicity in deploying and maintaining, many small apps doesn't add much overhead. Now you can scale individual component.

Only risk is, you break things into many component then you should so balance is required.
การพัฒนาการของเด็กในแต่ละช่วงวัย
"You want it (the browser) to be a mini-operating system, and the people who did the browser mistook it as an application. They flunked Operating Systems 101." -- Alan Kay
Ah, is that what the "Disable encryption. This option is only needed (and will only work) if you have a French version of NT TSE." option to rdesktop(1) means. I always wondered about that!
Even if you decide to de-concatenate some CSS and JavaScript files and serve them from the site's main domain, the changes to your HTML will be minuscule (some extra <link>/<script> elements and changes to some src attributes). The bulk of the changes would occur in the linked assets themselves.

I guess if you're embedding data URIs in your HTML to cut down on requests and you want to switch them to normal HTTP URLs then there could be nontrivial markup changes, but I hope it's not common for web developers to do such things by hand.

I think the word "markup" just threw me off. If you replace it with something more general that also covers CSS, JavaScript, images, etc then I wholeheartedly agree with CognitiveLens's comment. The point is that you shouldn't be afraid to throw away obsolete performance hacks if it increases developer productivity and/or leads to a better experience for your userbase.