skysight-inc/HackerNews huggingface dataset:
Every other commercial JDK vendor is able to comply with licenses and still provide language extensions and their own VM stacks. There are quite a few examples to chose from.

Why should Google be a special snowflake that doesn't play by the same rules?
I agree with all your points. I can't help but wonder though: is it a GOOD idea to force people to do something that ultimately helps them, instead of letting them filter out? That is, is it better for society to have two layers, successful self-made people and unsuccessful people who were incapable of improving without being forced? Or is it better to force the second type to learn something, at the expense of this degree inflation?

I haven't decided for myself, and in fact am struggling with this as the parent of two under-achieving daughters :)
Civilization Is Built on Code
If a variable is a null, you can assume that it should be null - but what if it became null as an error? We can put in a special code to check that, of course, and put in more branching in already complicated codebase.

Or we could admit that these two objects wasting space are quite an acceptable price to pay, relative to the scale of the system and of the price of adding additional logic to it, which always equals instability and defects.
I understand your perspective but it is not my case. The relationship with my relative is good, we live in different countries, and "all" my family was aware of my genealogical research. I didn't give all details about this because the point of the comment was showing how people selectively and inconsistently manage their privacy.
Does developing MySQL and Java somehow not contribute to the common good?
So true.. and this is a great interviewing technique. I basically ask one question during an interview: what was the hardest problem you ever had to solve? It may sound stupid at first glance, but it gives you insight into not only the breadth of their technical knowledge (since that problem may not be germane to the position you're hiring for), but also the depth of their abilities. The way they answer this question reveals quite a bit about the person. Not only technical, but also their interpersonal abilities.. how they manage their place on a team, how they manage expectations up and below, etc. I can glean quite a bit about the person based on how they answer this one question. Only asking questions about your particular domain doesn't necessarily indicate how good they'll be at solving those types of problems, only how much they happen to know about them. Of course, you can say that perhaps they shouldn't be interviewing for a position they may not be qualified for, but frankly the best people I've ever hired had very little experience in problem sets that were specific to my day-to-day responsibilities, but delving into details about things that they've done told me a great deal about how they solve anything. It may not be the best way to hire, because it requires a breadth of technical knowledge of the interviewer, but it definitely has worked for me. Asking someone to solve a ridiculous puzzle on a whiteboard..when they're obviously nervous about being there in the first place seems kind of dumb to me. However, digging into a problem that they've solved immediately puts them at ease.
Quite, but not yet.
> Android fragmentation is no different than J2ME used to be

That has to be hyperbole: no one who ported J2ME apps would say what you did with a straight face. Even a run-of-the-mill app with no esoteric features would need to be ported because Nokia's methods had different signatures to SonyEricsson's for text fucking rendering, because why not. The entirety of J2ME an "OEM specific SDK" This is before considering MIDP, CLDC versions and goddamn model-specific processor and memory differences. "Android fragmentation is no different than J2ME used to be" my ass.
Fiction: War and Peace; the more everything changes the same humans stay. 200 years old and yet you can empathise with every character

Non-fiction: Letters from Seneca; the only philosophy book I enjoyed and whose tenets I aim to practise every day.
Yep, I tried sliding this slider 3 times and gave up. Had to come to the comments to figure out how to work it.
For some reason I thought that the Byzantine Generals problem was all about coordinated action and TCP handshakes and stuff. I.e. two Byzantine generals are besieging a city from opposite sides. In order to successfully invade it, they have to attack at the same time. General A sends a messenger to General B saying "attack tomorrow at 1 PM". But the messenger might be captured, so General A wants to be sure that General B got the message, because if General A attacks alone he's doomed.

So General B sends a messenger back saying "i got the message!". But now General B is unsure that General A got the return messenger. If the return messenger was captured, General A will think that General B didn't get the original message and will not attack, so if General B attacks, he's doing it alone. General B thus needs to know that General A got the return message. So General A sends a return-return messenger. And General B sends a return-return-return messenger. And on and on and on.
From the Rationale paragraph:

However, JSON knows only about lists and maps. There is no concept of object types or classes. This means that it is not easy to encode arbitrary objects, and some of the possible solutions are quite verbose (Encoding the type or class as a property and/or adding an indirection to encode the object's contents).

Adding a symbol (globally unique string) primitive type is a very useful addition: because symbols help to represent constant values in a compact and fast yet readable way, and because symbols allow simpler and more readable map keys.
Yes, I am saying that it's a horrible fix and you shouldn't do it. Sorry I didn't make that clear.
Fashion Influencers in China: a new force for retail
Silicon Valley has designed algorithms to reflect your biases, not disrupt them
Seriously? I agree it needs to respond faster, but this is impressive and cool. Start with a compliment, you'll go a lot further in life.
I'd just stick with JSON. I think the reason why JSON is so popular is that it works with most languages. This would only be compatible with object oriented languages. Adding in code blocks would only make it easily compatible with one.
There is really no comparison. Explaining architecture, ideas etc to your colleagues has pretty much no resemblance to a whiteboard interview, where you have several people staring at you and judging you. One is a discussion the other is a test, they compare like having a beer with a colleague is like holding a speech in front of a bunch of stranger.
very cute :D thanks for share
It's like JSON, but cool. ;-)
This is great. I would add https://toggl.com/, but I'm just a silly marketer and don't have a github account. btw not affiliated with toggl whatsoever - just a fan :D
> Paying for the work shows you are serious about the recruitment.

In that case candidates should also pay companies to show they are serious about the position
This is an interesting comment on HN, where the most vociferous defenders of Monsanto are high-karma accounts rather than sockpuppet greenbeans. Are you saying they've been influenced by such techniques in other fora?
</slightly offtopic>

Some guys I've met, with different occupations and age, sincerely believe that smaller screens are more usable. Like small windows on 14" CRT when everyone had 17/19". Now it's guys that claim that 11-13" ultrabook is enough for them and they don't want more ever. This honestly baffles me every time.
Quantum leaps
The Murray Gell-Mann Amnesia Effect
Rust uses something resembling linear heaps.
I see nothing wrong with constructive criticism.
>But if enough people don't like a company, the company ceases to exist.

This is completely untrue. I'll give an analogy:
If enough people don't like a tyrannical government, does the tyrannical government cease to exist?
No, it has all the power to keep people in line and also to make life just bearable enough so people tolerate it. Any sign of uprising or resistance will be squished in infancy.

The only way is if the situation becomes so unbearable for the people that there is a massive uprising/revolution, and even then the people are not guaranteed victory. Furthermore, suppose the tyrant is overthrown, without the institutions of democracy in place it's more likely than not that there will just be another tyrant in his place.

This is the law of the jungle, and it is not the best way to run a society. That is why we have laws, and that is why we need regulations for our corporations.

Edit to clarify: On second reading the above may sound to some like hysteria but any entity that has monopoly on a very expensive but vital infrastructure in a completely free and unregulated market, has all the power over its "customers". Hence the tyrannical government analogy.
GIF and APNG are not video formats. They are lossless image formats that support sequential animation. They have never been intended to share video clips. You have a very narrow view of what can be done with GIF and APNG.
I completely agree with the idea of an "in memory database". I use Entity Framework. I mock the EF context to return regular in memory Lists of objects in unit tests the linq -> sql translation is replace with linq to objects.
They are just gonna create "children" companies, make a pseudo cartel with them, and charge whatever they want in the area. US antitrust law are a joke and totally useless. If you want to do something like that you should first _strongly_ improve your anti-trust legislation and really start breaking big companies (yes, also those bahamut banks) and put them in a real competitive position.
Haskell doesn't use a comma to separate function arguments because it doesn't try to follow tradition, but rather tries to take a step back, and rethink what a programming language is, using components that are as modular as possible. -> is not arbitrary notation, it's the symbol for a profunctor[1], and it has a very precise mathematical meaning. It's not made to be recognizable by programmers that are familiar with C notation, because that's a very high price to pay for the loss of generality offered.

If you had chosen to separate the arguments to a function using a comma, you would have to invent new syntax to describe linearity (because you have one less comma than number of arguments). Many languages constantly invent new syntax to describe useful add-ons, until their compilers are too complex to maintain at reasonable cost. Haskell avoids this by having carefully chosen which constructs to build the language out of, instead of going for recognizability/tradition.

[1] https://en.m.wikipedia.org/wiki/Profunctor
This honestly surprises me. The coding challenges are pretty much always simple enough for a junior to complete. The only way I've ever seen to set yourself apart from the bottom half of applicants is to include tests, comments and even documentation. I also wouldn't expect that to be in the instructions, otherwise everyone would do it and you'd be harder pressed to find candidates to eliminate. I'm curious to know if completing the challenges without tests etc is commonplace. Does anyone else think it's an odd thing to expect?
Or Catch-22
what is a "slider toggle"? sliders should be used for ranges of values. checkbox for toggling values.

we could argue it's unfortunate that iOS(?) decided to start making their "checkboxes" look a little like sliders, but they still only toggle values thus you don't slide them.

in any case, i get where you're coming from. using mousedown instead of click or up maybe kind of solves both use cases?
I don't see a button, it has a background that suggests it'll slide when dragged.
I tend to do mock-heavy testing in Java projects, and it has burned me several times. You write mock tests along your architectural boundaries, but if those need to change due to a deeper refactoring, all your tests need to get refactored as well.

Mock testing essentially tests expected side effects. A more powerful concept is the use of pure functions wherever possible, so that your tests compare input/output pairs, instead of long, difficult to maintain and sometimes non-exhaustive lists of expected side effects.

Does anybody know how one can replace Services, Controllers, Presenters and other such imperative mediator objects with a more functional approach? I'm just speculating, but that should make test maintenance easier.
Hang on, a simple example of not trying to be Zuckerberg is not wearing shirts and jeans to meetings?

(I didn't know he does that, but I guess you can do whatever you like in his position. Just look at what he's doing with our data and valuable human attention.)
Who ever that was, just handed Geet Wilder's the election. Well played.
I haven't made any test. What do you mean by it?
Mentioned above RFC specifies port number 314159 which is greater than possible max 65535. So once again unrealistic standards that does not work force people to invent something sane.
/s
The Evolving Relation Between Meta Search Engines and Online Travel Agencies
>The possibility of running Scala >=2.12 (or any other language that is committed to Java 8[1]) on Android seems even more remote now

To quote the article: "We've decided to add support for Java 8 language features directly into the current javac and dx set of tools."

The way I'm reading that could (maybe) work, the regular toolchain (javac -> .class files -> dx -> dex file) would get an upgraded dx tool that could take classes with Java 8 bytecode as input. In that case something like Scala (or any compiler that outputs Java 8 bytecode classes) would be just as well supported.
Ahh interesting. I like the subscription model from the perspective of the business. Seems like it would prohibit signing up for the low-volume user though, right?
Yes, this is/was the situation in Germany. Which basically results in Telekom being the only provider building new infrastructure while every other (DSL)-provider just rents those lines. Of course it should be shared, but it lacks incentive to actually improve the reach of infrastructure.

I always had the idea of timed exclusivity - whoever builts infrastructure first should enjoy 2-4 years of exclusive operation before other providers can join.
Services and Aspects -when everyone is super no-one is – Cirrus Minor
I love this quote bro "No one owes you a great career [...] you need to earn it—and the process won’t be easy."

And emails were cool as well. Way to show how to get your dream job <3
I studied finance and logistics despite the fact that I had been programming since grade 6. I have no idea why.

So when I started working in finance the ball dropped that I actually wanted to be a programmer.

Well trying to become a software developer with no relevant qualifications and only a grade 6 award for programming in Pascal is difficult, especially when you are located in South Africa.

Luckily I worked for a fortune 500 company that would do anything to reduce employee turnover except pay a decent wage. So I leveraged off that and got them to move me horizontally into more and more technical roles automating what I could and just getting involved in as many technical things as possible.
This is not a replacement for JSON.

For one, it's supposed to be able to serialize class instances too.
To be yourself, you must know yourself.

If "yourself" is someone who wants to do something that doesn't come naturally, then naturally you must do something that doesn't come naturally to you, in order to "be yourself"!
Tutorial: How to test your docker image in half a second [w/ video]
> I see from your karma you're new here, welcome!

You missed the "created: 3246 days ago" bit, then? :-) But you're right that I don't spend much time here - thanks for the welcome!

> it's not clear what the difference is between patterns and.... maybe idioms?

You're right, it's not a clear distinction. But for our purposes, the important point about design patterns is "must be reimplemented from scratch for each use". Have you read the Gang of Four book? Their patterns all require the programmer to define a bunch of new classes from scratch each time the pattern is used. Compare the Decorator pattern (https://en.wikipedia.org/wiki/Decorator_pattern) to Python's decorators - the pattern requires the programmer to create new classes, forward methods, etc, but the Python feature requires the programmer to write one line of code (which then does all the class-creation and method-forwarding under the hood). The Python feature has successfully obviated the need for the pattern. You still need to write the same amount of application-specific business-logic code, but the machine handles all the tedious plumbing for you. Similarly, attr_accessor and has_many handle the tedious plumbing of getters/setters and collections-backed-by-join-queries, respectively. So the necessary abstraction features have already been added, and there's nothing left to fix. An interesting intermediate case is the Iterator pattern in Python (https://en.wikipedia.org/wiki/Iterator_pattern). Python still has explicit iterators, but standardises the interface so library code can make use of user-provided iterators. It also provides a convenient language-level facility for building iterators, using generator syntax. Haskell, arguably, has entirely absorbed iterators into the language, replacing them with lazy lists.

It's worth noting that the key property of Ruby that allows for things like attr_accessor is the ability to add methods and fields to an object or class at runtime, and thus to do so programmatically. Lisp can similarly dispense with a lot of patterns that are necessary in Java, because Lisp has compile-time code generation in the form of macros. Peter Norvig's talk on this is great: http://norvig.com/design-patterns/ppframe.htm
That's the Two Generals problem which is a special case of the Byzantine Generals problem.
I'd be curious to know why they chose APNG over MNG.
If you're in Brasil WhatsApp would replace SMS - everyone has it
Heroku Exec (Beta) – SSH into a Running Dyno
Homelessness in the United States
Yeah, bitcoin basically lifted the solution to "one centralized cloud" instead of one centralized server.
Seriously??! I haven't know that!
Great write up !
The first Wii was pretty amazing IMHO.

Resident Evil 4, Metroid Prime have the best controls of any FPS I've ever played on console. It was just so natural, I could get head shots in RE4 by just pointing my arm at the TV and pulling the trigger.

Then they released the Wii U ...
Definitely agreed.
> what the history books will say about our time in 100 years or so

The history books will be written by the victors. What the history says will depend hugely on whether we have free informational continuity between now and then or a massive legal/totalitarian/military/nuclear/catastrophic "wipe" destroying that.

(Less dramatically, this is obviously the era when intelligence agencies are fighting and the internet is their battleground. ""Cyberwarfare"" is not about turning off power stations, it's about destroying your opponent's ability to do normal open democratic politics. There's even tension between US domestic security services - the FBI director Comey is clearly pro-Trump while the CIA are not, and Trump has gutted the US State Department which has traditionally been the department for interfering with other countries.)
do u have any proofs?
Seems like this would require almost 2 services, an initial evaluation and then a decision to move forward or not.

If you and the client find out that there probably isn't a business before building an MVP then what?
There's definitely an industry bias towards "programmers as artists". If you don't love your work with a passion you're seen as less good.

It's an alright proxy for other things, but there's a ton of good developers that leave their ego at the door, and their work at work.
What's with all the whiteboard backlash? I ask simple questions and expect people to be able to write code unaided to express their idea. Not "implement a linked list" or "write quicksort" but basic "You have two arrays - find if a number exists in both arrays" sort of thing, primarily to reason about runtime complexity, and to make sure they can actually write code.

If you tell a candidate to prepare, they should be able to come in and do this. If they can't write some simple code unaided, then I don't want to work with them. I was a copy-paste programmer once too.
> The type signatures were unreadable

I think a lot of people see a dense 1-liner and panic when they can't read it as fast as a line of another language, when actually the same operation would be 5 or 10 lines in that other language. It's ok to take a bit longer to read it; in my experience if you take a deep breath and read slowly, breaking it down into pieces, it's all very simple - the combination may be complex, but everything is very modular and compositional so you can understand each piece in isolation and then put them together to make the bigger picture.

> I distinctly recall writing a 100 line or so program where the type declarations crashed the compiler.

Do you still have it? Those are pretty rare (and almost always a type error rather than a correct type, though I appreciate that doesn't help you much at the time) and I'd be interested in minimizing it into an actual bug report.

> And the tools themselves were huge memory hogs

Yeah that does happen. I avoid SBT, but eclipse isn't exactly light. They're putting a lot more focus on performance in recent releases which will hopefully address this up to a point.

> I also did not get on well with the community, which seemed to have a lot of people with the attitude - "they won't let me use haskell at work so I'll make do with this shit". They didn't seem to understand or be interested in OO at all, and were very fanatical about driving application logic with types, purity, and the like.

The community is pretty awful. But I found that as people got more experienced, myself included, they tend more towards the pure, strongly typed side of things and make less and less use of OO. I understand OO but am no longer interested in it, and I think most experienced Scala folk feel the same way, so while the language does have good support for it, you'll struggle to find many people interested in helping you with it. I'm not sure anything can be done about this - you can't expect the experienced users to answer questions they're not interested in.
Well, you can automate music making, but the automated systems tend to produce incredibly generic music that's fairly bland and kind of aimless. We still need that creative spark to give it emotional content, direction and to break the rules in just the right ways to keep things interesting whether it's just a slightly unexpected harmonic progression or whether you're blazing an entirely new idea.

Nobody ever got told they were an amazing composer because they followed all the rules. You can be good, but the greats all redefined something about the common practice of their time. However, if you stray too far away, people find your music too alien and tend not to like it at first. History is littered with references to new music from composers we now consider to be truly magnificent, who were at the time considered to be merely mediocre, or whose innovations were not welcomed with open arms.

And of course, computers are still terrible at writing lyrics. That's an entirely different game.

Maybe one day there'll be enough video games and literature that we can formulate a video game theory which is as extensive as our modern understanding of music theory. The thing with music of course is that we've been doing music for a lot longer.
http://www.theregister.co.uk/2016/12/16/oracle_targets_java_...
DeepMind in talks with National Grid to reduce UK energy use by 10%
Could you explain further, e.g., why this is a subset of the general Byzantine Generals problem and what the BG problem is exactly? Because both descriptions don't really match the same problem set, as far as I see.