skysight-inc/HackerNews huggingface dataset:
You can hold it "brim side up" while walking to contain the water. There's no way to do that with a regular umbrella.

Of course you still need to dry it out somehow, e.g. let it drip into a bucket; that part of the video is probably misleading.
Global citizenship requires global government which comes with its own set of problems. What if the majority favored a certain behavior, such as this one? Then it would be globally legal. Maybe it's not globally favored now--that doesn't mean it will always be this way.

Compartmentalization is better than globalization. Humans are fallible and often evil. That is not going to change. The best thing to do is compartmentalize people and government to prevent cancerous evil from affecting everyone.

Anything else is wishful thinking. History shows that evil's not going anywhere, and contemporary events do as well.
Not ATM, there's also a fuss about using closed source drivers/components.

Wine is major performance and feature hit since it attempts to translate DX API calls into OpenGL, many of the commercial GameOnLinux solutions are technically wine with slightly better profiles.

Engines with dedicated Linux support are still well kinda messy, graphically wise they might still have to make sacrifice mostly because OpenGL was in a political limbo for a decade and didn't kept up with DX graphical API.

But the biggest issue in many games for me was actually the controls, audio, and network code.
DX is much more than just graphics and OpenGL doesn't cover audio, controls and network code.
So unless your engine has discrete code to deal with that e.g. uses Steam Workshop or what ever Unity calls their set of API's you'll get quite a shitty experience.
Organisational skill is actually an entrepreneurial skill. I'm learning the hard way that there are two diametrically opposing skills you need to master for both running a business and programming effectively:

1. Skills in Creating
2. Skills in Organising those creations

The thing is, the Creating part is always exciting but it's disruptive in nature. The Organising part is boring because it's about taming or tempering the creation in such a way that it can be referenced later on (just like filing your invoices, or timesheets - yuck - but necessary).

Unless you've got a systematic method to organise your creations, you will always be alone with your ideas, find it hard to resume creative chains of efforts and ultimately flounder without profit.

Both in business and in programming.

Damn right it's the most important software development skill.
On the topic of organization and related to another post about good Software Development books. What are some books that teach code organization as discussed in this post. One I can think of is "Refactoring" by Martin Fowler.

What are some others?
Monad tutorials are a problem because they try to teach you to play football without first learning to walk. Progressive tutorials/introductions on the category theory constructs leading up to and including monads are better.
Yea, going through Reagent and Om's tutorials side-by-side, Reagent seems way simpler. I'm new to Clojure and Clojurescript, so I figure learning Reagent would provide a base where I could then delve into Om.

Are you using Reagent in production or just for personal projects?
She published it on her tumblr under her own name and seemingly in her own voice.
" the reality is that at small startups they simply cannot afford that kind of office space."

But I bet small startups could afford to let employees work from home a couple days a week.
I know them better as the developers for "The Endless Forest" (http://tale-of-tales.com/TheEndlessForest/) which made a bit of a splash a few years ago as something original and different.
Skype founder Niklas Zennström on why European entrepreneurs have an edge
None of the secretaries have direct control or authority over the OPM.

Additionally, the Secretary of State is foreign affairs and not the equivalent of the Home Secretary.

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

That is the person who is responsible for the OPM.

It operates on a fee-for-service model for 90% of its budget and isn't properly funding IT and IT security. Given she has only been there 18 months, I'm not sure how you can really blame her beyond the fact she didn't follow the "shutdown and repair" recommendation...except for the fact if she did that, she'd have to burn through the OPM's cash reserves as the only way to fund it.

Its honestly more of a flaw in the way Congress built the OPM incentive structure and the fact the director is a revolving door position that changes every 2-4 years.

The government simply just doesn't fund/prioritize IT & IT security properly outside of the intelligence services. They also build these psuedo-private-sector funding models that create the incentive to "ignore" cost centers like Security into critical infrastructure like the OPM. Its really horrific.
But at least for me it takes a long time after every major Ubuntu release before I can get it working, and it's always more magic than real understanding. The most painful is that I have to do that every 6 months. Doing it once would be acceptable. So often I just use the onbaord Intel chip because it just works. But with many games it runs so hot that even my laptop screen gets a black mark on the side where the Intel chip is.
She has a fair point though, if the tables were turned and I decided not to pay apple for an iPhone for 3 months while using it, they would most certainly have a problem, especially when I could potentially hand it back in 3 months time and say i don't want it anymore.
I have a hunch future retail self driving cars will have the same restrictions, unfortunately.
In typical software today, much of the complexity arises from interactivity. There are user actions, network events and all sorts of contingencies that make the program flow non-deterministic.

A compiler doesn't have that. It's blissfully old-fashioned, really: read files in, write files out -- no interruptions or real-time requirements. You could do compilers on punch cards.

In a way, the compiler is the most complex piece of software that you could imagine in 1960... But software has moved on and faces a different kind of complexity.

Hence I'm not sure if asking about compiler architecture is really representative of the organizational skills needed by today's software engineering.
Information Theoretic Metrics for Multi-Class Predictor Evaluation
Whatever their reason is, it is certainly not a technical reason e.g. inability to write the client. It's a choice they have made.
To be more clear, here's what JD equipment doesn't have to worry about that Google's does

- Pedestrians

- Other vehicles and obstacles (and automatically detecting them)

- Roads

- Traffic laws

JDs tractors are choreographed, it's not really 'self-driving'
The classic essay Big Ball of Mud is relevant as well:

http://www.laputan.org/mud/mud.html
I've spent the last four years building a platform for reusable components, which "just work" across all devices, and across domains. So I've had to deal with reusability to the extreme:

* Installer and versioning across apps and plugins

* Common file system and conventions

* Common event system with automatic unregistering of events

* Common system handling user accounts/contacts/security/etc.

* Common system for handling data/access/realtime updates/offline notifications.

Let me tell you, REAL interoperability is hard. It goes without saying that everything is namespaced. But then you have to build a robust system which marries components to the Web's best practices, which are based around resources. For example you have web "pages" which you can just drop "tools" (components) on. For these tools to "just work" while being reusable, the system has to literally have a way of swapping their stylesheets and scripts in and out on demand. Then it has to provide all the events to hook into and machinery for "activating" these tools:

* Events for constructing parents before children

* Events for initializing parents after children

* Async loading on demand of all scripts/stylesheets as fast as possible

* Compiling and minifying everything into a couple filesfor production

* Support for versioning and storing some (most) of the code in local bundles for downloaded PhoneGap apps

And then you still get questions such as "how does a Streams/related tool interoperate with a Q/tabs tool on the SAME ELEMENT, so I can combine the behaviors and have a bunch of tabs that represent articles related to a particular topic?" The tabs are supposed to "just work" and the "related" tool is supposed to "just work".

So when it comes to CSS, a few years ago I just went with the straightforward approach:

You call Q.addStylesheet(...) and it "just works". It adds your stylesheet when your tool is loaded and then removes it when it's not needed. Each class and id is supposed to be prefixed by the namespace of the plugin bundle you're distributing. Each tool would have classes that are prefixed with that tool's name. Naturally, you avoid ids in the actual plugin, but each tool has an id which the app can use to style things.

You can take a look at the result here:

https://github.com/EGreg/Platform/blob/master/platform/plugi...

https://github.com/EGreg/Platform/blob/master/platform/plugi...

https://github.com/EGreg/Platform/blob/master/platform/plugi...

https://github.com/EGreg/Platform/blob/master/platform/plugi...

And the corresponding JS modules:

https://github.com/EGreg/Platform/tree/master/platform/plugi...

https://github.com/EGreg/Platform/tree/master/platform/plugi...

Here is an example of a Streams/related tool integrating with a Q/tabs tool:

https://github.com/EGreg/Platform/blob/master/platform/plugi...

So that's a proven style I would recommend.
Why should anything calling f2 care whether it can produce a warning or not? If the contract is simple - return a value, then that's all we normally care about.

If logs are not convincing, then think about profiling. One day you want to know what kind of values are computed by some function. Same story: impure adds stats.record(x), pure requires IO redesign.
"Bank shot" +"Eddie Cue" = nice billiards pun!
That rant is absurd. If you are a photographer and you want to take photos of a famous musician on a very expensive and well produced stage you have to do it by her rules.

You can take photos of a model you pick on a stage you create and then you get to write the rules. Or you can even take a photo of Taylor Swift in a public place like a street or airport without any permission or rights issues.

You just can't take photos inside her private, for profit, and expensive to produce stage show unless you agree to her terms. You also can't walk on to a movie set with your own video camera and have the rights to that footage either.

On what planet is this surprising or problematic?
All I found is that games ported with eON technology only work with the binary nvidia driver. Do you have more information about this?

What I find strange is that the game starts and seems to render fine, and then crashes the whole machine[1].

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788779

Edit: fixed the link
It's a very important skill for a programmer to have, especially in the modern environment where distributed systems built from many integrated components are the norm. That said, it's awfully difficult to disentangle the various skills needed for programming and assign an importance to each one, mush less to determine which of them is actually most important of all.
The Peter Principle Can Paralyze Your Startup Team
> I'm personally more or less a fan of open offices, but the noise really is a problem and unfortunate -- I wish the social convention were to treat an open office like a library, and louder conversations happened in private offices.

Then what's the point of open offices outside of penny-pinching?
We need your help to build the perfect analytics tool
Compilers are simple. They are organized as a pipeline. Frontend, middleend, backend. In more detail: lexer, parser, semantic analysis, optimzation 1 to n, instruction selection, scheduling, register allocation, assembly.

Ok, you can do more complex. I work on a compiler, which does it lazily. Transformations are per file and depend on each other. If something goes wrong, you print out the graph to figure out the problem. No idea what the benefits could be. Might actually be a good example, where it could have been simpler.
We did similar. In year1, we completed a MU0 design (based on 1950s architecture, can't remember which computer exactly... http://digitalbyte.weebly.com/processor-design/the-mu0-proce... ). We were given a half-working design, so it was pretty simple.

Then we built a micro controller mimicking some simplified early ARM designs in year 2 (ARM was very widely used at the school, I guess the fact that Steve Furber works there played a role). Starting with ALU, decoding, etc. Was pretty awesome :)

In year 3, we built a simple VGA chip and uploaded it to an FPGA with a monitor connected to it. It could only draw rectangles, lines and circles but seeing it actually working was totally amazing. Definitely the best project while at the school.

We were using Verilog and Xilinx toolchain, and that happened at the University of Manchester.
I was fortunate to be a valued player on a small team. But what you're talking about is basically trying to hire yourself in as a tech exec when you're just applying for a job as a programmer. I think that's because management (generally) doesn't really want to hear that they've got a blind spot even if they do.

Ultimately all you can really do is try and work your way into a situation where you have some kind of meaningful equity. Founder, co-founder, early hire, buy a piece of a company, whatever. That's the only way to really get rewarded for your skills; knowing enough about the state of the art to see what can be done better and also having the skills to see those projects through to completion and realizing the benefits thereof.

I wish there was a job title for "good all-arounder with knowledge of the state of the art in a role with substantial self-direction", but I think that's probably "founder" or something. Or "owner of a very small business" maybe?
also cats

have seen a cat picked up by a corn harvester
Men should only use an umbrella in a heavy rain, never in a sprinkle.
SLES 11/12 OS Tuning and Optimization Guide – Part 1
"Large Scale C++ Software Design" by John Lakos

This book made me understand that writing software is not just about creating opaque binaries with _stuff_ inside. It's also about what does this binary depends on, which symbols does it exports, how is it built, etc.
From the development documented by her classmate, it seems like it started with a small lie about an extracurricular math activity that spiraled out of control when she tacked on one lie after another to convince others that she was accomplished. If people didn't call her out on the first lie and just ignored it, I wonder if she would have gone as far.
I got fired from a job because I had done this and they couldn't figure out how to keep me billable after that. Well, I got fired because I would "show up late" and "leave early" because there was nothing else for me to do (even though I was actually pulling a full 40 hours, they were expecting 60 out of people).

They could have given me more work, put me on new projects, etc., like I kept asking to be done, but instead they just wanted me to figure out some way to bill the client for 60 hours a week, and not call it "bug fixes" or "new features", because the client wasn't paying for it. That left data entry, which I had automated from a whole day to 10 minutes. They wanted me to go back to entering data by hand.

I would have quit then, but I didn't want to give them the pleasure. A flood had recently destroyed all of my stuff and I used the insurance check to get out of debt rather than replace the lost stuff, so I suddenly didn't need money for a LONG time. It's funny how easily debt can make you a compliant little slave towards people who want you to perform bullshit tasks.

I've been freelancing ever since, making twice what they paid me for only half a week's worth of work. And the flexibility of the freelancing enabled me to pursue a long-distance relationship that eventually lead to marriage. So I say getting fired was the greatest thing that ever happened to me.
Ah, I see.

You could do that within a purely functional language (via monads), but given how locked to C and the imperative paradigm OpenGL is, it would make sense to simply write that in C, yes.
One of the problems I hit was that I would get really grumpy when particular things were asked for.

Once I learnt to think about why I was getting grumpy, and vocalize the actual problem it was easier.

e.g. A client said to me recently could clicking the blog link open a new window? When I started programming I'd have said "Yes! I can do that!". Then after a few years I'd have got grumpy about it and said something passive aggressive "I guess so. That's not normal though...". Now I think about it, realized I hate it when links on the web behave unexpectedly and that's what's making me grumpy. Then explain to the client that that's you shouldn't take control of other people's browsers on public websites, and the better way is to have a clear link to get back to the shop on the blog.
Also might matter that open floor plans make interacting with people convenient, and it's a large part of their job to interact with people. I really only need interaction with people for well under 10% of a normal work day.

What makes perfect sense for their kind of works does not make as much sense for my kind of work.
Yes, there are much better software suites than generic ones for drawing and manipulating molecules, including dynamic simulations, etc.

If someone is using Powerpoint to draw molecules they're not likely a professional chemist or biochemist. So the amount of time spent learning something like Illustrator would apply to whatever else they do as well.
No, I think they work with the AMD binary blob driver as well, but they have some display/compatibility issues with the drivers on those. You should check the official GIthub trackers for Witcher 2 and Bioshock Infinite, some issues are reported there.
For a novice coder I couldn't recommend Head First Design Patterns enough - the gang of four design patterns are a bit controversial these days but the way it steps you through and makes you think twice about how to organise things was really eye-opening for me back in the day.
there is an excellent book by jon lakos called 'large scale c++ design' which treats organizational or physical design of large scale c++ projects (> 1giga loc). highly recommended.
Introducing Project Bonneville
Not knowing much about Montana, I looked it on wikipedia and found the following snippet.

"Montana is ranked 4th in size, but 44th in population and 48th in population density of the 50 United States."

Population density is 2.65 per sq km. Man, that is very sparse. Remind me of outback Australia where traveling distances were measured in "number of beers" drank.
1/0 is not infinity, it is undefined. The limit as x tends to 0 of 1/x is infinity, but there is no value for 1/0, which is why doing a calculation that involves a divide by 0 is mathematically invalid. That Haskell let's you do it and gives an approximate answer is OK, but if it was in a calculation for the number of apples you can eat, it would be a useless answer. You could end up with that if you made a mistake in defining your logic. In the same way, you can make a mistake when doing all manner of other things such as using a non-pure function or adding instead of subtracting. They're all forms of logic error that are either allowed or disallowed by tools. The tool isn't broken if it let's you make mistakes though.

A power drill will let you drill a nail into your leg. That doesn't make power drills broken. A smart drill that turned off the drill if your leg was in front would be better - but we still use drills without that function because there are trade offs when you make your drill do that. There are trade offs in functional languages too. That doesn't make C# "broken" for being a tool that let's you drill into your leg if you point your drill there.
That's OpenGL ES, which isn't the same (though I believe the plan is to merge them one day). Mobile GPUs tend to have different feature support and performance characteristics too.
The promise of Design Patterns (tm) is that you can systematically learn to organize your code. The article argues that only experience does.
Exactly, which is why people who claim that Apple invented tablets still deserve to be corrected.
That makes sense from an org-chart level. But if that's actually the thinking inside, it represents a total lack of ownership on their part to get to the overall goal of security.
Computer Systems: A Programmer's Perspective
by Randal E. Bryant, David R. O'Hallaron

http://www.amazon.com/Computer-Systems-Programmers-Perspecti...
In some cases - yes, pointless. You rarely care if a function logs something or not. If you do care, you can still return the log lines as an extra value and use the pure solution. At least you have a choice.
> Why should anything calling f2 care whether it can produce a warning or not? If the contract is simple - return a value, then that's all we normally care about.

What if you call f2 multiple times? What if you call f2 an unpredictable number of times? What if you call f2 in a situation where the logging system isn't initialised?

The parameters and return value are not the only things that matter.
Finding Great (and Profitable) Ideas in the Computer Science Literature
Doubt it's a joke. see https://github.com/kevva/calc-percent

it seems to be a plot towards a full modular universe
You're both wrong, in a way. They interact, but that doesn't mean they are cohesive in utilizing each other's technologies/competencies.
I imagine it has less to do with Hearthstone and more to do with Battle.net and other DRM-related stuffs. But that's just a guess.
It's a real shame that Perl isn't a popular language anymore. At least there's still an active community.
My last employer was like that. The guy had an office half the size of the open office and he barely used it because he was out doing business and CEO things. It always upset me.
In addition to those already mentioned:

- Stevens: Advanced Programming in the Unix Environment

and more recently,

- Kerrisk: The Linux Programming Interface.

Also, almost anything by Kernighan (with several different co-authors).
Red Hat Developers
John Deere does sell self-driving tractors to a fairly massive market. Just because you aren't in the target market doesn't mean that they haven't brought the technology to market.

While there is a big difference between farms and roads, the tablet analogy doesn't make any sense.
The EU has some semblance of democracy, but the Troika is certainly not a democratic force, and I doubt any fiscal governance would be democratic.
> Sadly there's (seemingly) no way to interview people for this ability

I think there is. Show the candidate some bad code. Not WTF code, but something you wouldn't be proud of but is realistic. Bonus points if you're comfortable enough to pull this out of your own production system. Ask the candidate about adding some functionality, but be clear that cleanup and refactoring changes are fine (even encouraged). The conversation should be enlightening.
Eloquent Ruby is one of my favorite books, too. That book really motivated me to learn how programming languages work. Here are a few other books I found to be enjoyable and well-written:

Programming Erlang by Joe Armstrong

Programming Elixir by Dave Thomas

Seven (more) Languages In Seven Weeks by Bruce Tate

Think Bayes, Think OS, How To Think Like A Functional Programmer (Think OCaml) and The Little Book of Semaphores by Allen B. Downey
For those not able the view it.
[Cacheview](http://webcache.googleusercontent.com/search?q=cache:http://...)