skysight-inc/HackerNews huggingface dataset:
If you want to defend against hijackings, the problem you're trying to solve is one that programmers know well: the buffer overflow attack.

In a buffer overflow attack, someone gives a program much more data than it was expecting. The data is too long for the memory allocated for it and overflows into the memory occupied by the program itself. Suddenly the computer is running the attacker's code.

In a hijacking, the same thing happens to a plane. A plane has two separate spaces, one for the people carried on it, and one for the people who control it. A hijacking happens when passengers overflow into the cockpit from the cabin. What was cargo is now in control. By promoting themselves from data to code, hijackers on September 11th promoted box-cutters into 400,000 lb. incendiary bombs.
The Story of Our Web App Startup
I'm a professional Java dev and couldn't do this from the top of my head without System.* documentation.

But if I can choose the language it's easy...

#!/bin/bash
cat

If people can't come up with a different solution they probably just suck...
http://en.wikipedia.org/wiki/Quink

I mean _really_
I would like to suggest taking a look at the "Freedom Box" project, their foundation homepage is at http://www.freedomboxfoundation.org/ but there's also some stuff at https://wiki.debian.org/FreedomBox

In short; It's a platform that started after Eben Moglen's talk "Freedom in the Cloud" - to establish a platform for running a decentralized network of Free Software social/personal services. It happened at the same time that so called "plug computers" (ie. small, somewhat cheap and decent System-on-Chip computers (think Raspberry Pi but with casing)).

The thought was and is (but I'm not all too up to date on the project) was to offer software and hardware in a easy package for whoever to setup easily and get started with.
2 Year old WooCommerce is now the most installed e-commerce platform on earth
IBM India Battles Fraud Amid Scramble To Save Its $2.5B Airtel Contract
Thanks! Great design and interactivity. I would suggest adding a glossary page somewhere and some follow up at the end instead of just CSS God, maybe suggested readings?
If you generalise the whole world of ideas and problem solving to the word "creativity" then I have no idea what conclusions you can make. There are a great many types of idea generation to solve unrelated classes of problem. Brain-storming is most definitely a valuable tool for some but not all situations.

i) discover what colleagues know about the issues

ii) widen options beyond what you are immediately aware

iii) make connections between different topics

iv) experience explaining and talking about a problem

v) get a feel of how emotionally invested colleagues are in particular decisions

vi) spot bogus assumptions and false premises

etc.

What's the alternative suggestion, nobody works together? This type of article plays to the seductive developer trap that you can to put your head down and work on problems in isolation. Its fun and optimal for small projects but it doesn't scale. You can only build garden sheds, you will never build cathedrals.

Whiteboards rock.
> Current ethernet cables only offer a bandwidth of 10 Gbps which seems puny in comparison to THIS behemoth.

C'mon, 40GbE and 100GbE have been around for a while now.

https://en.wikipedia.org/wiki/100_Gigabit_Ethernet
Fastmail's employee access policy
TL;DR

"There are many bad java programmers, hence java is bad. Even I was bad at it. Saying that I like java is just sarcastic link bait."
In Python there simply doesn't seem to be a DI/IoC container available. So you end up half-assedly writing your own, or just using spaghetti code. I'm tempted to suggest that Python doesn't have these frameworks because it doesn't bother to support writing large programs. Likewise with testing, there's the unittest module but it's not really integrated with a build system or anything else. Java does in fact have some standard library functions for logging, but no-one wastes their time learning them - if all your real projects are going to use log4j, why not just use log4j all the time?

There are certainly unnecessary parts - there's a hell of a lot of bloat in spring - but just doing without frameworks entirely is not the answer.
Java input output api is cumbersome, so is its date api. That is why you use Apache commons and yoda time to deal with them.

He sounds like someone who never learn Java in the first place. Neither he learned what it is good for, what it is bad for. I think that if you interview in some language, you should understand what kind of problems are easy to solve in that language and which are hard or never done.

If I have to write libraries less input output example in interview, my code will be ugly and long. I'm not saying that interview should not ask these questions, it tests whether the candidates ability to find his way around api he uses rarely. It is needed skill, so no problem there.

If I have to design complicated system, adjust it to changing requirements and maintain it for years, I feel most comfortable in Java. Type safety, tools and language itself allow me to focus on the system itself and how systems parts cooperate with each other.

He also sounds like somebody who is biased against whoever uses java, because he worked once in bad java shop. It sounds that it really does not matter what those people would do, they used java, so they are incapable in his eyes.

"In Java, you can forget about doing it in the cleanest or the best way, because that is impossible. Whatever you do, however hard you try, the code will come out mediocre, verbose, redundant, and bloated."

Guess I was right about learning Java.
Fourerr CEO Thomas De Vos Makes Commitment to UNICEF and Online Security
I'm gonna assume that we're mainly talking about working in California here. Isn't that an at-will state? If an employee can be fired at any time, for any reason (maybe also illegal ones, as long as they are not obvious about it), why shouldn't they have all the mobility that they can get? There needs to be some level of symmetry here. If you have employees that can leave at the drop of the hat, and employees that can fire at the drop of the hat, both have the capacity of misusing it. Corporations could lose a lot of money in training and process secrets, but the employee has a lot less security (sure they might be very sought after workers, but let's not throw principles on the bonfire because of that).

Both sides should certainly strive to be ethical. But no one should be loyal to anyone and just expect that they will hold up that code of honor when they have no obligation to. When we're talking about necessarily more impersonal billion dollar corporations, that is especially true.
| the stance that it's okay to collect everything, and that a "search" hasn't taken place

Anytime this argument is made, it must be held in contempt, and along with its wanton disregard for logic, be not allowed to stand.

Scenario 1: If Alice sends a letter to Bob unintercepted and Bob reads the letter then burns it, his privacy has not been violated and he has not been searched.

Scenario 2: If Alice sends Bob a letter and before delivery the postman opens the letter, photographs the contents in such a way as to not see the contents of the letter at the time, then sticks the photo in his pocket for a rainy day, then delivers the letter, Bob has been searched.

For any of a number of definitions for searched.

One of which being Bob no longer has control over his personal effects(information), cannot choose the manner in which they are presented to others, or if they are presented at all.

If your option of not being searched has been taken away, you've been searched.

In Scenario 2 Bob's option of not being searched has been taken away, so therefore he has been searched.

It's pretty obvious these bulk collection practices are 'seizure' as well as 'search,' though I've not heard anyone with the audacity to argue that it is somehow not seizure.
> I'm 35, started programming at about 10 in my TI99-4A, typing games from magazines, etc. the usual stuff.

> No way a 40 year old guy have more experience than me in general programming, unless he was working at Microsoft or IBM at that date, and surely they are about less than 10000 of those guys in the world.

You're talking about 1989, right? In 1983, there were 443,000 computer programmers and 276,000 "Computer systems analysts, scientists" in the United States alone (source: http://www.census.gov/prod/2/gen/96statab/labor.pdf).
Why would anyone trust a public random source? It may be truly random, but it can also be completely recorded such that if anyone uses this as a random source and the timestamp is known then the encryption can be broken.
>In order to be a lawyer, you need to complete law school.

Not in California.
It seems very clear that these airplane blackboxes are ridiculously under-specced and underpowered.

Yes, I know these things have to be hardened, debugged, tested, and paid for. Still!

Why 30 days only? Why not have an atomic (nuclear) battery that will be able to send out sonic pings for a year?

Why can't the damn thing record audio (and lots of other data) from the entire flight, rather than only two hours?

I think after this crash, blackboxes are going to be redesigned....
Makes me wonder. Has this ever person built anything themselves that scaled? Because at this rate, the database is going to be an even bigger bottleneck that it usually is.

There are plenty of people with decades of bad habits because there wasn't code review, peer coaching or treating coding as a "magical" [0] artisan profession. Something to be constantly refined but never completely mastered.

[0] SICP, of course.
Regarding other RNG products they comment: "However, demonstrably unpredictable values are not possible to obtain in any classical physical context."

What's wrong with any hardware RNG that produces 0's and 1's straight from physics, if these also pass the relevant statistical tests?
Way back NetTuts had a good article with unusual CSS selectors; check it out here:

https://code.tutsplus.com/tutorials/the-30-css-selectors-you...
I think this is a very advanced trolling... X-D

A great application of Poe's Law[1]

[1] http://en.wikipedia.org/wiki/Poe's_law
AVG Technologies had $128M IPO with over $200M in revenue at that time and being profitable for years prior. Also had 20 years of history and was one of the few leaders on the market with over 100M active customers/users and growing.

What company does, how it operates, or how profitable it is doesn't matter. For highly valued (read overvalued) IPO you need to be on the spot. Think Twitter, Zynga, Groupon. They were all at loss IIRC. People buy these sort of stock for short periods of time so they go big and then burst few months or years later.
Read that article, as it's not talking about the same thing. A lot of thought and design went into both C and Unix. "The right thing" is relative to the tradeoffs you find acceptable or not.

TFA is talking about simply not caring. Which I find an awful opinion. There's a really big difference between a well designed, well built Java product/library and a badly designed, poorly built one. The Java ecosystem being so massive, you can notice examples of both everywhere and the difference is night and day.

Java does in no way relive you from the responsability of producing quality. At times it makes it harder, as you need a lot of knowledge and extremely good taste to do the right thing, instead of sucumbing to "best practices" that are perpetuated as myths or instead of adopting poor libraries, just because they are popular.

Example: java.util.Date / java.util.Calendar versus Joda Time.
Ray-Ban maker to work with Google on Google Glass eyewear
Using brainstorming in a business context is also problematic from a social psychological point of view: For brainstorming to work as planned (collecting lots of different ideas, every idea including the quirky ones count are valid at this stage, ideas only get filtered after the brainstorming session ends), certain criteria have to be met by the group doing the session. If the boss or a potentially competing colleague is around, most people won't brainstorm freely, even though the moderator says it's ok to get crazy. For brainstorming to work as intended the group has to be cooperative and without hierarchies (really without, not startuppy without). Otherwise, people will fear the criticism of the others and only speak about the too-dull-to-fail ideas.
[ShowHN] a nodejs script to summarize crunchbase data
"12,000 line method?"

Saying it hurts...
I took his post as a fairly standard "worse is better" argument. Many newer or more fashionable languages enable some very elegant programming styles, but this comes with a concern about the elegance of one's code, which can easily result in the programmer spending more time thinking about elegance than about functionality. For example... should I use map or reduce here, or maybe an iterator, or... oh fuck it, I'll use a for loop. It turns out that the old-school for loop works just as well despite earning you precisely zero style points.

There's actually something quite liberating about languages that deny you any clever solutions. Just write code that works and don't worry about whether you could have used <fashionable programming concept X> instead. I found Go to be quite refreshing for the same reason - the standard library is pretty small and the language lacks anything particularly magical, even some stuff that Java has like generics. The end result, however, is code that is very easy to read and write for anyone who learned imperative programming in the last 30 years.
> In Java, as in any language, you can over-design, or you can under-design, or you can design just what you need

One important thing to note with any language is that the culture matters - a lot. For instance, Tcl and Tk let people easily create GUI's, but there was no UI culture. Most of the main books didn't dedicate even a page to how to make a good looking, functional GUI. You can produce some godawful messy code in Ruby if you put your mind to it, but there's a culture of not trying to be too clever, and also of writing stuff that's easy(ish) to read later.

Since I'm not really a Java guy at all, I don't know enough to comment in an authoritative way, but I sneak a glance from time to time, and my guess is that there may be a bit of a culture of over-designing things.
It's really nothing novel [0], there was the Lava Lamp RNG. [1] Except the generation source might be technically interesting, if you at all trust the overarching politics.

[0] http://www.random.org/

[1] http://web.archive.org/web/*/http://lavarand.sgi.com
> See, this is a mistake. Abstraction is not an end in itself; it's there to make life easier and to make things easier to undestand.

This idea is often repeated in programmer's forums, yet I think it's simply not true. Abstraction is not there to make things easier to understand, it is there to empower you _after_ you understand the abstraction. It is there to pack the knowledge you _already have_ after working with some system, and being able to port it to similar systems.

Let's take math as an example. Understanding the "+" operator is much harder than understanding that if you have two apples and you get another one, then you have three apples. However, once you grasp the "+" operator, you can quickly solve a bunch of related problems where the "+" operator applies.

This does not mean that I disagree with the rest of your comment though. Java's (classical) means of expressing abstractions are fairly limited - basically, you need _interfaces_ for everything. In most cases, this leads to a lot of cognitive overhead that obscures the essence of the abstraction being used.

A simple example of this problem is the lack of function values and lambda types (pre jdk8). Due to these missing features, people expressed the same abstractions by defining interfaces that define some method, and then providing implementations as anonymous classes. That is, instead of defining a function type and then just implementing it, you now have an interface and weird class declarations in your code. To the untrained eye, this is much harder to understand. As a result, some of the programmer's cognitive effort is now spent on this, and hence it becomes harder to understand the more useful part of the code (which is likely some kind of abstraction).

Just to shed some more light into this, consider Haskell's _monads_. Monads are very hard abstractions to grasp. They are much harder to understand than just "doing whatever you want to do and call it a day". However, they become extremely useful once you understand the abstraction and become available to use it without the cognitive overhead.
No, read his comment carefully.

Grunt comes with a set of existing (and maintained by the grunt authors) plugins for many common tasks that lets you get away with having someone else do all the complex shell-script-custom-language-scripting you need to do with make for the 'complex logic bits'.

Writing those by hand is a terrible and tedious burden in using make.
Well, if I were making the test framework for this test, I'd only send ASCII text to the programs.

It's a trivial test, so I'll give you trivial input and not have you worry about "what if someone gives me random bytes".

The test isn't to demonstrate you know off the top of your head how to deal with an edge case. But if it were and I were allowed to pick my language, I'd pick bash and just write

cat
I think this game is a bit different than http://gabrielecirulli.github.io/2048/
Take a look at this situation:

___________________
|___2|____|____|____|
|___2|____|____|____|
|___2|____|____|____|
|____|____|____|____|

in the original the result of going up would be

___________________
|___4|____|____|____|
|___2|____|____|____|
|____|____|____|____|
|____|____|____|____|

but in this game it's

___________________
|___2|____|____|____|
|___4|____|____|____|
|____|____|____|____|
|____|____|____|____|
Having a single point of failure? I dunno.

I already have mini hear attacks if I misplaced my phone because of all the data on it. My mails, my password manager etc. I really don't know if I would add my keys and my money to this. If lost, you literally are left with nothing.
> It's more akin to a natural language like Spanish than a "tool" as we generally think of the word.

I still say it is a tool, just a tool with many buttons and settings. English is a natural language that I learnt (it was my 3rd natural language) primary to read and understand computer related materials (books, keywords, instructions). It was absolutely a tool just like a hammer is a tool to drive a nail in. It turns out to be a very beneficial tool but a tool nevertheless. I would never bother spending time learning the etymology of words or finding all the tenses or declensions (but some do and derive great pleasure from that).
Show HN: High Availability Cloud Servers hosted in 3 failover data centers
NSA Hacks Huawei
> I mean that the fear of Turkey in the EU is about factors other than ignoring or papering over past misdeeds, and those factors are mostly based around what will happen if Turkey joins the EU. Whether the fears are realistic or not, it's about what will happen, not what has happened.

Ah, yes, we're in agreement.

> After all, Belgium killed a great deal many more Congolese than died in the Armenian genocide (and horrifically maimed many more), yet Belgium is the administrative hub of the EU.

My understanding was that most of the abuse occurred when Congo was the personal property of the King of Belgium, as opposed to the Belgian state, so that's not completely comparable (I would imagine that the cost of ensuring that any compensation goes to the family of the victims and not anywhere else would dwarf the amount of compensation to pay...).
>> So yes, I enjoyed programming in Java, and being relieved of the responsibility for producing a quality product.

> Wow. What a pompous thing to say.

I don't think it's pompous, I think it's actually self-deprecating. I think he's confessing to his perfectionism - to the fact that, if given a tool like Haskell he'll pursue some perfect, idealised program, because if you're not going to produce more beautiful code in Haskell then why are you using it? Java serves as the antidote here because nobody ever judges Java programs on their terseness, expressiveness or subjective 'elegance'.

When he says 'quality product' he's talking about the aesthetic qualities of the code, not the end result. When he says he's relieved of having to think about this, he means he can focus on shipping rather than perfection.
You can have hierarchy within an effective team. Its not mutually exclusive in the same way that lack of hierarchy guarantees nothing.

Group problem-solving can reveal team problems and help resolve them. If your team is not working well together, you need to fix it ASAP and not avoid the situations where it comes to the fore.
Mozilla Appoints JavaScript Creator Brendan Eich As Its New CEO
With the right equipment it may be feasible for an eavesdropper to try to listen to information from one of the satellite antenna's sidelobes.
I almost made a similar point but didn't want to be too long-winded. But you're exactly right on. Certain idioms develop in every language. In Java there's a culture of favoring verbosity over cleverness. In fact, I think you'll find some Java programmers who hate the cleverness that is often common in other more terse languages. And they'll throw "clever" around as an insult much the way "verbose" is used against Java.

I think overall these cultures don't indicate too much of an underlying problem and aren't too harmful, except when assimilating developers from other language. But to your point, these barriers to entry likely exist for nearly every language (and if not, other barriers do), so on balance, it's largely a wash.
My preferred hipster build system (CMake) actually leverages make on UNIX platforms and nmake on Windows :). It just replaces the most of the autoconf mess.
> The test isn't to demonstrate you know off the top of your head how to deal with an edge case.

The only edge case is knowing you need to flush the output, which is relevant whether you send ASCII text or not. The other edge cases around ASCII are just whether you use the correct API's or not.
I've tried both and the IntelliJ plugin is much more polished.
The content of the article is freely accessible on the arXiv:

http://arxiv.org/abs/1212.2270

And no, this will not lead to ultra-secure internet, which also isn't even mentioned in the article.
A dummy explanation for non-physicists like me (from http://www.swinburne.edu.au/engineering/caous/news_and_event...):

"Einstein's reservations about quantum mechanics were encapsulated in the 1935 Einstein, Podolsky, Rosen paradox, which highlighted the theory's strange nonlocality. In this paper, we give theoretical proof that special quantum states allow Einstein's nonlocality to be genuinely shared among many observers, regardless of the spatial separation between them. These states possess a property (which Schrodinger called "steering") that not all quantum entangled states have, and may provide unprecedented security for a future quantum internet.

Suppose Alice has a secret message to transmit. Alice may use the states to send multiple parties a quantum encryption key, or, if the message is highly important, she can "secret share" i.e. distribute the key among the receiving parties, so they must collaborate to decipher the message. The important new feature is that (unlike ordinary entanglement) Einstein's nonlocality cannot be faked by classical means without Alice's collusion. Assuming her station is secure, this enables detection not only of hacking attacks during transmission, but of dishonest receivers or sabotage of devices at receiving stations. We show that the special states can be created in different forms so they are useful for messages carried either as optical amplitudes or as photonic qubits."