skysight-inc/HackerNews huggingface dataset:
He mentions "bullshit" 19 times in the article. It's a shame he isn't able to describe why it is bullshit (apart from that he has to use it) or how we could make it any better.

The command line is an incredibly powerful tool, which allows us to very quickly combine components together in many more ways than use cases that could be considered by a GUI developer. This is why he's having to use a command line in the first place: no GUI developer has addressed his very specific use case, and nobody has figured out a better of doing these things in the general case than the command line.

It would be great if it were easy to learn. But short of any real workable suggestions, nothing is going to change.

In general, I understand the word "bullshit" to mean something that has been constructed to obstruct somebody in a way that isn't actually necessary. I don't see how that applies here. The command line is the only known way for him to achieve his goals. By definition, then, it cannot be bullshit.
Not that I disagree with you about the American love of driving, but that notion is part truth and partially a creation of automotive marketing. Frankly, many cars aren't that enjoyable to drive, and driving an enjoyable car in traffic is usually not very enjoyable either.
It doesn't work on Chromium because of its lack of support for DRM.
As far as I can tell there are three opinions on CSS:

1) CSS is a single-pass layout programming language. It is impressive, but the single-pass constraint makes certain layouts very difficult to achieve.

2) CSS should be replaced with a constraint solver. Look how powerful Auto-Layout in iOS is. With a constraint solver, you are only limited by your imagination and intelligence, not some single-pass rule.

3) CSS sucks because people think visually in terms of grids and boxes, and it is too hard to do even the simplest thing with a single pass layout language.

I am personally in Camps 1 & 2, but Camp 3 is by far the most vocal. Constraint solvers are powerful, but they require a huge amount of thinking, and you end up with stuff like '==|50[x(30)]<=|==' as the interface.

I think the "flexbox" stuff is pretty good as it is an attempt to accommodate both groups 2 & 3.
Doesn't seem to work with decimals. I tried "timer 4.5 minutes" and it started at "5h 01m 54s"
You need to say hello to the canonical example Dijkstra, where arrogance in computer science is measured in nano-Dijkstras, to steal from Alan Kay.

Dijkstra famously observed that computer science is as much the study of computers as astronomy is of telescopes.
Social Media Powered Web Hosting Reviews Without Affiliate Links
You will never be as fast as software, hardware and sensors.
The same thing has happened to the Firefox Nightly PPA, the builds stopped being made sometime early in August.
What Old Transit Maps Can Teach Us About a City's Future
So the "love hormone" side effects are:

> Oxytocin is a natural hormone that causes the uterus to contract. Common side effects include redness or irritation at the injection site, loss of appetite, nausea, vomiting, cramping, or stomach pain.

http://www.rxlist.com/pitocin-side-effects-drug-center.htm
My thoughts exactly.

"But what about the magic of version control, GitHub, pull requests, forking clones, cloning forks, diffing forks, forking diffs, etc., etc., etc.? None of that matters for someone who works with binary file formats (i.e., user culture) rather than plain-text formats (i.e., programmer culture). There was such a disconnect between the two cultures that it was hard for me to come up with responses to these sorts of “why use X rather than Y” questions without sounding either incomprehensible or patronizing."

1. Is he seriously implying that version control is just some arcane thing that Unix programmers do, and that it's bull shit that students have to learn it?
2. If you can't answer students' questions about why these CLI tools are needed, then that does not mean there are no good reasons--it means you don't know, because you don't understand yourself.

"It's comically absurd that the most sophisticated computer programmers nowadays are still using an interface that's remained unchanged since before humans landed on the moon. What the duck?!?"

"Students are starting to grow suspicious: These instructors are supposed to be expert programmers, but their tools look pretty primitive to me."

This is a problem of perception, both on the students and on the professor's part, not a problem of reality. Do you think there's a reason that programmers still use these interfaces decades later? I'll give you a hint: it's not because they don't like change.
Why do these "Linux gets Netflix" stories not have the same bad attitude from folks as the "W3C caves to DRM" stories? They're the same topic, essentially.
Apple Watch to Make Editorial Debut in Vogue China
The Android Team always chooses flexibility over simplicity.
It means that almost everything is doable with the framework but at the cost of ease of learning.

I agree with Square on most of Fragment issues but I strongly disagree on their conclusions.
1- Fragment is hard to use at first, but it is not very manageable and not a source of hard to diagnose bugs if you use them well.
2- I don't see how introducing yet another framework to do the same thing but with less documentation and support is going to make things better.
This results in people like a friend of mine, who has a Masters degree in computer science... yet I had to walk her through swapping out the power supply in her PC.
Can Windows 10 unite Microsoft's two worlds?
A Wells Fargo Employee Emailed the CEO Asking for a $10,000
I read that. But how does that compare with the nodes they're comparing against ("10x fewer nodes")?
Glassboard Closing Down November 1
Bypassing the kernel's page cache (not buffer cache any more BTW) is not a complete durability story, but it's an essential part of one. Ditto for bypassing filesystems' own not-always-appropriate queuing/syncing behavior. There are other steps that are also necessary to make sure data really made it to disk, and the failure to expose the block device layer's flush behavior other than through all those other layers is part of the lameness I mentioned. A real I/O system would provide more flexible support for ordering, flushing, completion notification, etc. instead of just forcing everything into a model designed for the workloads and machine characteristics of twenty years ago.
And my point is that talking about the ideal human response time is absurd in the context of driving.
Also used the "Enhanced Networking" option on the instances which means single root I/O virtualization underneath.
What happens when you give Nobel laureates crayons?
1. It's pretty easy to find stories of somebody having success using an old technology, but it's even easier to find examples of old technologies being replaced by something better.

2. Finding somebody successfully bashing a nail into a wall with a shoe doesn't mean we should all throw away our hammers.

3. If we get into the drawbacks of CSS vs tables, tables are going to lose. I can think of two situations where tables will win - lack of developer skill (yes, tables are easier to learn quickly), and needing to support old browsers more than new ones. Whereas CSS will win on responsiveness, performance, workflow, third-party tools, features, maintenance, accessibility, flexibility, semantics, and just about every other area of front-end development you care to mention.

EDIT: Here's an article from 2003 (!) that makes the same points. As CSS has improved, the arguments have become stronger.

https://www.hotdesign.com/seybold/03overview.html
I suspect that you have specified a password in your BitTorrent Sync configuration file. Settings set in the configuration file will override settings set through the WebUI (after restart). Consider specifying your password either in the configuration file or using the WebUI, but not both.
True, such a feature should really be system-wide - something like OSX's Automator, maybe.

That doesnt take away from the point, however, that GUI actions can be stored in history, composed, etc.
I also enjoyed his post on the "Two Cultures of Computing": http://pgbovine.net/two-cultures-of-computing.htm

Definitely something worth thinking about as we build tools for other developers/engineers to use.
If you're studying "Baking Science", which covers everything from the beginning to the end, starting with "Let's grind some flour" is a good idea. People studying "Baking Science" need to understand the whole process, rather than believing everything starts and ends with pre-packaged recipes and machines that do everything for them.

That's what's going on here. A "Baking Science" curriculum that didn't impart people with a knowledge of where flour comes from and how it's made would be a joke.
Shouldn't computer skills courses be prerequisites for programming courses? He's right that setting up the needed software shouldn't be an impediment to completing work in a programming, but that's because the university should be preparing the students with those skills before they get to his course.

If you're going to need to configure a VM and toolchain for many of your subsequent courses, it makes sense to start off with a "configure a VM and toolchain" course.
The very first class in the CS curriculum I took was "Intro to UNIX". Every other class in the curriculum assumed that as background knowledge. It's completely reasonable to expect a configured environment.
How much should we blame Snapchat for “The Snappening”?
Great Post, thanks Pau!
Speaking as someone who has changed his own oil more than once: if I needed to know how to do that in order to operate my car, that would indeed be bullshittery. I benefited in no way whatsoever from changing my own oil. It was, as it turned out, simply a very- low- ROI- recreational activity.

The point here isn't that the command line is bullshit. Knowing how an engine lubrication system works isn't bullshit... for a mechanic. But it is a waste of time for a cab driver.
1) that's not something most AWD car owners worry about - it's a form of maintenance diligence like tire rotations and checking their oil every fuel stop that few drivers bother with, without serious consequence.

2) That clearly only applies when all the wheeels are connected through limited slip differentials. When the front and rear axles are run by independent electric motors with electronic power/brake distribution and regenerative braking feedback systems? you may need to revisit your mechanical assumptions.
Every domain - whether it be physics, chemistry, electrical systems, biology, and yes, even computing systems, has an initial training window in which the practitioner requires some training on the the basic elements of the toolset. Initially, it's painful, and annoying, as you are literally starting from the ground, and you have no understanding of even the language to understand the instructions you are being given. But, eventually you develop a vocabulary, and learn the rudiments of the tools - even if they are completely peripheral to your actual domain of research.

I have a friend who wanted to be a cook - she was interested in food, when she went to chef school for a couple years, and she was learning how to cook meat, they spent two-three days just talking about knives. Apparently knives are very important to chefs. So they taught her about the metals, the edges, the sharpening, the care and maintenance - the entire science of knives. She went in with no expectations she was going to have to learn any of this stuff - but before she could start cooking, she had to learn how to use her tools, and jigs, and moran edges, and Scandinavian Grind, and what the hell does this have to do with cooking again?

Same with working in a field that requires you use software systems. The command-line is your toolset. Master it, and you can do anything. Don't master it, and you are like a chef who is using whatever knives happen to be in the kitchen, and in whatever condition they happen to be in.

But, if he thinks that we have "command-line bullshittery" today, when 95% of the time I can just type "brew install foo", or "apt-get update bar", and have a pretty damn good chance that 95% of my dependencies are fullfilled, and if not, a quick google of the error message will usually give me a stack-exchange/server-fault/stack-overflow solution, I can't imagine what he thought working with these systems was like in the 1990s...
Similar with https://cloud.sagemath.com, except in the domain of computational mathematics. People like you and I deal with a lot of the BS, so it's already setup for other people.
> "You don't enhance your moral authority by adopting a position of weakness and subservience."

Those of us from pacifist religious traditions would disagree.
SQL injection is not avoided by escaping arguments, but by never mixing the command and user supplied arguments in the first place. The equivalent to your example would be

execlp("mv", "mv", src, dest, NULL);

which does not rely on the shell to try to untangle your arguments from a single string.

Edit: Fixed, thanks!
This is definitely something that people should not be shy about discussing.

Getting a 'yes' from your boss is obviously nice, but getting a 'no' can also be beneficial. It sets future expectation for both parties.

And a repeated 'no' sends a clear signal: find a better job.
I was suspecting that it was from old times when audio wasn't supported in browser and you had to rely on Flash. The decompiled code[1] for the swf file[2] hints that sound is being used.

[1] http://pastie.org/9637758

[2] http://steep.it/timer/steep.it.swf
Author here.

While I do have Google Analytic, it's just regular Google Analytic and is definitely not responsible for the slow down.

The reason the page is slow is because it does live visualization of a bunch of algorithms on fairly large amounts of data (at least for javscript). There's a bunch of setup that needs to be done.

I could have the visualizations hang for a minute or two when you hit "play", or I can do the setup computations immediately on page load (and so, they're hopefully done by the time you reach the visualizations).

These computations are done in web workers, so that the main thread doesn't freeze up.
Yes, Chrome supports EME.
The protection is useful because for a highway rear-end accident to occur, a chain of at least two events has to occur. The car ahead of you has to significantly decelerate, and in the same window of time, the rear-ending driver has to be distracted for longer than the time it takes to close the gap and stop. Most of the time both of those events don't occur at the same time, but just look at traffic accident reports to see that in areas with heavy traffic - the probability that both events occur over the population of cars in traffic is 100%+ (because it happens multiple times every day).

Adding some sort of auto brake feature adds another layer of safety (presuming that the ratio of 'saves' to added risk is very high with this tech.)
The 100 terabyte benchmark used 206 Spark nodes, compared with 2100 Hadoop nodes.

Going up to 1 petabyte, the Hadoop comparison adds more nodes, 3800, while the Spark benchmark actually reduced the number of nodes to 190.

Does Spark scale well beyond ~200 nodes, or does the network become the bottleneck?

In any case, it's an impressive result considering that they didn't use Spark's in-memory cache.
A computer science professor complaining about command-line "bullshittery" is like an astrophysicist complaining about telescope "bullshittery". C'mon, it's the 21st century, we should just be able to take a rocket to other planets!
The EME (DRM) support is only in Chrome, not in the open source Chromium.
Indeed. I can reiterate this point. I have helped a few administrators, who initially were compiling ZFS on Linux from source, then decided to switch to the Launchpad PPA repository, and "upgrade" their userspace tools. Next thing I know, they are asking me if there is anything they can do to recover their pool. After a bit of research, and a little cleaning up, I am able to get their pool back online, with zero data loss.

I have had a VERY hard time finding a situation where there was corrupted data in ZFS, and where there are ZFS pools that absolutely will not import back into full operation.

In other words, it is pretty difficult to "accidentally" corrupt a ZFS pool to the point of not being able to recover your data.

ECC RAM greatly minimizes the potential for a corrupted file in ZFS, but ECC RAM also greatly minimizes the potential for a corrupted file in ext4 or XFS.

So long story short, I have experienced the same thing as ryao, and come to the same conclusions.
Some of his students went into debt to receive this sort of "education". How sad.
Its HTML5 DRM built into Chrome. Its actually worked for ~a month in Chrome for Linux if you just spoofed the user-agent string to Windows, absurdly. The only thing really prompting this announcement is that Netflix is no longer blocking Linux user-agents.

It only works in Chrome at the moment, as Firefox does not support the required DRM.
I love this idea, but as somebody (who happens to be a woman who has never asked for a raise), he doesn't answer the question of how to start this conversation. I think that having a few talking points to get started would be really beneficial.
There were similar earlier claims made by Osterhout. I just picked one which demonstrated the topic.
The author specifically calls out that he's not talking about programming, per se. He's talking about the skill set of wrestling useful free software packages to one's own aims:

So perhaps what is more important to a researcher than programming ability is adeptness at dealing with command-line bullshittery, since that enables one to become 10x or even 100x more productive than peers by finding, installing, configuring, customizing, and remixing the appropriate pieces of free software.

I'm torn about this article. Clearly this researcher, in his role as mentor, has identified a skill gap that's hindering his students. And it's perhaps even a problem that the software community can ease the pain of. But many of the things he lists in passing get down to fundamental tools of software work: version control, package management, data manipulation, etc. Yes, the usage of these things on the command line tends to be "arcane", but that's because each is encoding its own problem domain. And if you're going to be working in software in any non-ivory-tower capacity, you'd better know this stuff.

I've dealt with this kind of problem numerous times before in various contexts with workflow tooling. I.e. a single (usually) command-line tool that neatly encapsulates the most common development use cases to reduce learning curves, cycle time, and errors. These can be phenomenally successful if done well, but if the context doesn't define a workflow (e.g. student A vs. student B's research ideas) then there's no easy way to encapsulate the user's problems.
To be fair, unfortunately as of 2014 considering there are 10^2 main disciplines, with 10^4 main research areas, with 10^6 different things to learn and 10^7 researchers building stuff to teach, expecting a GUI button to do those myriad of functions in diverse ways would be naive. Maybe, the primary school education tools are close to what you/he describe in simplicity of use.
Surge Pricing Gets Uber an F from the Better Business Bureau
git pipe fork pipe stdout pipe stderr apt-get revert rollback pipe pipe grep pipe to less make install redirect rm rm ls ls -l ls tar -zxvf rm rm rm ssh mv ssh curl wget pip

Anyone care to speculate why he is using curl for one thing and wget for something else?
Interesting C Puzzles
Cisco's IOS is an example.
US Navy's autonomous swarmboats controlled with Ubuntu… in a VM over Windows 7
CPU Profiler for Meteor
> Can you Computer Science without programming?

The bullshitery he's talking about isn't programming, but compiling, installing and setting up various software that are still in an early stage of development and aren't user friendly yet. Just something you have to do but isn't related to programming or research.

Somehow, I agree that an all-around computer scientist has to know how to deal with this, but it's probably not the best way they can spend their time.
Why Privacy Matters: A TED Talk by Glenn Greenwald
I guess people will accept DRM as long as they don't know it's there (inside Chrome in this case).
As a professional programmer, I think that prof offers excellent advice. There's a difference between programming-in-the-abstract, and the mis-evolved "ls -l ls tar -zxvf rm rm rm ssh mv". Written by people in real-world dysfunctional settings.

There's alternatives to bash commandlines, to interactively explore/navigate running systems. Take REPLs, SQL prompts, etc.

Profs don't do their students any favors if they let poor design pass without comment. Unix has a history, which you can get if you read early papers from those involved, and users can critique it like they critique whatever website they use nowadays.
Personally I think the only things that mattered in that accident were poor training and poor UI.

First, one of the pilots held the stick back all the way down to the water even though the airplane was clearly stalled. This is completely inexcusable. The automotive equivalent would be holding the accelerator pedal to the floor while aiming at a brick wall. Even worse, the guy who did this was a qualified glider pilot, and glider pilots should have extreme familiarity with stalls and stall recovery since so much of a glider's flight time is spent close to stall.

Second, the control system of the plane handled conflicting inputs from the two pilots by averaging them together. There was no indication to the pilots that they were fighting each other. Positive exchange of control of the aircraft is another really basic thing about flying, even more basic than putting the nose down in a stall. This setup made it far too easy for the pilots to be unaware of who was really flying the plane. If the control sticks moved together, it would have been obvious to the other pilot what was going on.

One could put some blame on the autopilot in causing the one pilot to forget the basics of stall recovery, but it seems to me that the real fault was in not training for it sufficiently, since that's not something you do in normal flight in an airliner anyway.
My guess would be that in the "Linux gets Netflix" story, the positive angle ("I get Netflix!") is specific and concrete, while the negative ("More DRM, yuck") is more abstract. Whereas in the "W3C caves to DRM" story, it's flipped; the negative is specific and concrete ("Standards body kowtows to corporate overlords"), while the positive ("maybe someday that will mean I can watch video on Linux") is more abstract.
Wow please do not do this. This is a great way to destroy your relationship with your boss and cement it in the exploiter/exploited dynamic. Edit: because it implies from the start that you are being taken advantage of. You are not some proletariat worker being taken advantage of. Ask for a salary you feel is fair, and work for it.

If you feel like you've improved your skills to the point where you are now providing more value to the company, ask that that is reflected in your paycheck. Don't do this on some arbitrary day, or worse in the middle of a crisis, do it during a down time after you have just successfully demonstrated your newly increased value on a project (maybe by recovering from that crisis calmly and effectively, maybe by stepping up and taking more responsibility on a project etc.)
This was posted like a year ago https://news.ycombinator.com/item?id=6429564
This sounds like a problem that should be easily solved with a simple metapackage, installable either via apt-get or zypper.

Add the university repo, install metapackage and have dependency resolution take care of the rest.
Americans love cars, but not necessarily driving them.

I think this pretty well sums up why most people hate it: http://www.qwantz.com/index.php?comic=2587