skysight-inc/HackerNews huggingface dataset:
> 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.

Not necessarily. I came to believe lately that Git for instance, has beautiful, simple, and powerful core principles… and an unacceptably crappy user interface. A hashed DAG of commits with a few pointers to navigate it, that's great. But the magic incantation that you're required to type on the command line are too complex, unintuitive, inconsistent… and intellectually utterly uninteresting.

Git's core model is the interesting part, the one that will make you a better programmer, or computer user, or whatever it is you want to do that involves version control. But the specifics of the command line interface? That's neither interesting nor a portable skill. "Command line bullshitery" is a perfect term to describe it.

Why I believe that has been said better than I can ever do here: http://tonsky.me/blog/reinventing-git-interface/

Seriously, even "end losers" could use this. I also believe this can be generalised: some software just isn't usable through the command line. For day to day interactive use, it needs a neat, special purpose graphical user interface —Bret Victor has taught us how powerful they can be.

The command line is still invaluable when interacting with other software, or for automation. Then it should be designed for those, not for interactive use. Simply put, it should be an API —which you could use to build your wonderful GUI on top of.
> home routers get hacked and wiped in a mass attack against a country

Who would want to do that, I wonder. I mean, it's not a one-click process, on that scale, diversity will be an important factor (FW and HW versions, manufacturers, OpenWRT and stuff).

It seems to me that this would require a lot of effort and the result will be questionable. What will be achieved by this?

I think if someone cares about security, they've already flashed DD-WRT by now and those who don't... well, router (in)security will not stop their systems from being overtaken.
It's one thing to be proud of building an accomplished skillset. But it's another to be glad that other people don't have access to that power.
The job is actually very linearly scalable. i.e. running it on 200 nodes roughly doubles the throughput of 100 nodes.
> It is an army, a cult, a family.

As an outsider, this make Y Combinator seem more creepy to me than welcoming. (especially the bold bullet-point list of what the YC partners do)

The problem with this "cult of personality" is that it takes away from the product. While well-written, the article was more about "How do I please the YC partners?" instead of "How do I make Shout the best it can be?"
I think that the article describes a sentiment that far more people dealing with computer science / programming share than usually perceived. I think it is mostly because for the (seemingly warranted) fear of being called out as unprofessional by other people in the field.

I'll come out of the closet: I also wonder why Bash is still so important in 2014. I think it simply is unintuitive and cumbersome for all tasks that you don't routinely do, and only a small minority of people that are using Bash are doing it in such a fluid way that the potential benefits of the command line can be reaped. For the rest of us it mainly feels like http://xkcd.com/1168/

In summary, I think that:
1) Bash is overripe for being replaced by something else, perhaps a more user-friendly and interactive shell that is built from the ground up and not a fruitsalad of ad-hoc solutions created a few decades ago.
2) Using Bash and praising its benefits is not only so popular because it has positive practical aspects. It also seems to have become culturally ingrained in the geek community in an irrational way, like an initiation rite that separates insiders from outsiders.
It can cause performance degradation when all the banks in the SSD have been written to, and a new bank needs to be re-written. TRIM allows cleaning the bank when it is no longer needed, and hopefully, before it needs to be written again. As such, the new rewrite will be native speed, and not bottle-necked
http://gridstylesheets.org/ is CSS with constraints and sugar for things like grid layouts. As easy as CSS in simple cases, but powerful enough to handle more complicated cases that require either elaborate hacks or JavaScript with CSS as it exists today.
Multithreading in the MRI Ruby Interpreter
Containing exponential Ebola
WASP-43b: Weather map for a planet 260 light years away
You can totally "Computer Science" without programming. It's a big field, and a big portion of it is pretty much math. You probably cannot "Applied Computer Science" without programming.
Why would anybody tell the best app ideas on HN?
For the foreseeable future, there will always be scenarios in which a human could perform better than an automated system. What I'm talking about here though, is the 6,000-7,000 accidents/year that could have been prevented by an automated system that is never distracted, and has <10 millisecond response timing.

What I worry, is that these systems will (of course) have bugs, and they are mechanical systems, so they will also physically fail - and, they will cause some deaths (cars are dangerous - 36,000 fatalities/year) - - but if for every one of those bug/physical failure deaths, you have 10 where the automated-system avoided an accident - that's a pretty big net savings in human lives.

And, software/hardware systems are only going to get better - that's certainly not the case for human drivers. Indeed, with cell phones, regardless of whether they are hands-free, there is research to show we are becoming less capable drivers than we were 30 years ago.
The "killer app" for most CS researchers is indeed Microsoft Word.
1. No, I think he's implying that the user interface his students are required to use is bullshit.
I would say that Ceylon is heavily guided by the constraints of wanting to always do The Right And Elegant Thing, and not unduly compromise on that in light of the nature of the underlying VM. _Which_ VM doesn't quite enter into that question.

We're not crazy about this; of course compromises are necessary; hell, we just added use-site variance to the language purely to make Java interop better.

So to clarify: ceylon.language and ceylon.collection are designed the way they are because they're like way better and cleaner than java.lang and java.util. Not because they represent a "compromise" with JavaScript.

Likewise, the main reason that Ceylon only has 3 numeric types (Integer,Float, and Byte) is because that seems to me the Right Thing from the point of view of the goals of the Ceylon type system. It just so happens that this is also the right thing if you want cross-platform execution.

Hope that answers the question.
Show HN: haxor, Python Wrapper for Hacker News API
I built a Python wrapper for newly launched official Hacker News API.

Here's github link: https://github.com/avinassh/haxor

pypi link - https://pypi.python.org/pypi/haxor/

To install just use pip:

pip install haxor

Example usage: To find all the 'jobs' post from Top Stories:

for story_id in hn.top_stories():
story = hn.get_item(story_id)
if story.item_type == 'job':
print story
# <hackernews.Item: 8437631 - Lever (YC S12) hiring JavaScript experts ...>
# <hackernews.Item: 8437036 - Product Designer (employee #1) to ...>
# <hackernews.Item: 8436584 - Django and iOS Hackers Needed – fix ...>
# ...
# ...

Appreciate any suggestions/feedback :)
As someone who lives eats and breathes the Bash shell, I can say quite confidently that I can do most things I need just using this 'bulshittery'. Ignorance in my book is not a virtue.

What I failed to understand is exactly what was so difficult about writing and compiling software? This process can be as easy or as difficult as you wish.

Do they not have IDEs, surely that would help. I use IntelliJ as an IDE and it pretty much does everything for me, including finding dependencies.

Maybe I'm missing something, but if I can build complex Java programs without reaching for the command line surely this can be done in a scripting language without any complexity.

Also I would suggest looking at the dockerized development environments out there. (e.g. http://awvessel.github.io/)

Maybe I need to re-read this and see what I missed.
A relationship isn't great because you've never had a fight. A relationship is great if it thrives in spite of them.
Know really well: C# ---
Know well: C, C++, Java, Javascript ---
Kind of decent: PHP, Python ---
Have used: x86 Assembly, Ruby
Finished chapter 8 yesterday in the middle of a 40C fever. Checked the page number only to realize I wasn't even halfway through...
Maybe you're right, maybe you're wrong. But the power supply and the case are probably the two least interesting parts of the computer to somebody with a Master's degree in CS; it may well be the case that she knows a lot about the cache in her cpu and the various sockets in her motherboard, and she just doesn't care about the PSU because as long as it supplies enough power, it's boring.

Also, let's be clear here. At heart, building your own computer is like playing with Lego, except that each piece is very expensive and you're terrified of breaking it. Plus there's probably a specific order you need to follow to make sure everything fits properly, but you get no instructions about what that order is, because it depends entirely on what pieces you bought. Also, if you don't already know what you're doing, it's entirely possible to buy pieces that just plain don't fit together and you won't realize it until you're elbow deep in the case searching for a socket that just plain doesn't exist.

As somebody who has gotten a master's degree in computer science and also built his own computer, I definitely feel like the master's degree was far more interesting of an endeavor and if somebody said "I'm really interested in computers, but not in putting them together; it seems like just putting tab A into slot A but all of the tabs and slots are poorly labeled", I'd nod my head and say "Yeah, that's basically it. I enjoyed building my own, but it's not for everybody".
That's awesome.

The only thing I think would make it even better would be if we could make it an interactive course online, since so much of these details about shells, commands, etc. are things which happen in a computer context anyway. If several of the major could collaborate on a common research-programming tutorial and release it openly, it would be a huge win for more fields than just computational linguistics.

I've seen some related links to put shells in the browser, so it's more than just an academic speculation; I think one could put the site together with under a thousand hours of programmer time at this point. Hosting costs might be a concern, but application development is probably not too difficult.
> However, if the car three cars in front of you just broadcast "I'm doing an emergency stop right now", that's really valuable data.

Until some asshat implements a button that sends this message for "lulz", though that would probably constitute a crime under existing law.
> It takes a tremendous amount of command-line bullshittery to install, set up, and configure all of this wonderful free software.

Then it isn't wonderful (or even free in some ways). Has the author considered what Kay might mean when he called linux a budget of bad ideas? I thought academia had more freedom to reject pragmatic stuff when it doesn't suit their needs.

The author might be able to help his students best by reviving an interest in systems research.
Trucking industry.

The pay isn't always great, humans require sleep, and freight needs to be delivered. I am still amazed trains are piloted but they are and that is far simpler to automate than trucks.

Once trucking becomes automated you will have trucks delivering at all times to warehouses, scheduling around traffic patters. Whereas humans are not necessarily best at driving at night, vision and physiological reasons, computers could drive at hours when traffic is always the lightest.
Drebin: Effective and Explainable Detection of Android Malware [pdf]
It's not that the commandline is necessarily underpowered, imo, it's that the discoverability and intuitiveness of the *nix userland is pretty low. Man pages are a great way to document every flag a program accepts, but are a terrible way for someone to figure out some simple use case for the program. Similarly, flags are named without any regard for intuitiveness (-l is liable to mean different things for any program you encounter, and the precise meanings one program decided on can be hard to remember because there is no explicit commonality with any other tool).

In that sense, it absolutely is a user hostile design and it involves lots of unnecessary memorization.
No matter what the circumstances, sorting 100 TB or 1 PB of anything is impressive, much less doing it during the time it takes me to eat lunch.
Yep, it's been working in Arch Linux for probably a good month, maybe two. If Twitter search worked I could find when I got it working.
So your argument is that ls is not efficient enough in its implementation, but that you would suggest replacing all of that with an object model that implements the equivalent of Ruby's enumerable. Got it.

Shell is easy to learn because people innately understand "and then do this with it". You can start with ls, get to ls -1, then think, I want to count these, and get to wc -l.

Yeah, there are exceptions -- e.g., files with newlines in their name -- and yeah, the interface could use some cleanup. But pedagogically, I can assure you that teaching people shell is easier than teaching them map-reduce.
Pretty much agree with your analysis, I think you explained Obama's prize very well. It is not only case and they made several very controversial awards recently, which did hurt it's brand.

I personally think Nobel prize lost it's prestige and became very political, and not only for peace one.

I don't care any more who gets one, it's not important. It's role like ultimate prize is very positive thing and I think world needs something like this, just not Nobel any more.
As a further clarification, when I said: "there are a bunch of operations that I would love to add to ceylon.language, but can't, because they are simply unimplementable in JS", I don't mean that those operations aren't available. Just that they're exiled to a different module.

As a further sort of clarification: we're Java developers, not JavaScript guys. We recognize the importance of the JavaScript VM. But Java is where our hearts are at ;-)
Porting my comment from yesterday's posting of this (https://news.ycombinator.com/item?id=8432955):

"I strive to remove incidental complexity for my students, so that they can focus on the intrinsic complexity of their research."

A worthy goal. I think, though, that calling out the fact that it's command line serves to distract more than illuminate - at least the reader and possibly the author. There are doubtless unnecessary steps between idea and code. However, shoving those in a graphical wizard doesn't make it any better.
There is indeed a difference between programming-in-the-abstract and Guo's "bullshit"; it is exactly the difference between whiteboard doodles and running code: programming.
Tao begot one.
One begot two.
Two begot three.
And three begot the Ten Thousand Things.

Poking holes at ways it can fail is analytic thinking. First you must accept the premise, and work to design ways it could work, will work, is working. Take a thing far before cutting it down.

It's possible this project creates the culture that satisfies your existability concerns. It's possible that culture might grow and spread.
There might be something here: http://zesty.ca/voting/sim/
IM means Products like Netbackup and Backup Exec, Enterprise vault. Which are extreemly different than security.
I so agree with you. The only thing I hate about the *nix userland is that all tools follow their own set of arbitrary concerns regarding the things you mentioned. Really limits the intuitiveness and discoverability of the system.
What would it take to create a github integration that automatically accepts the pull requests in realtime? Looks like they're being accepted manually for now.
Cry me a river.

I've yet to meet the person who was a programming god in trendy-language-of-the-day, but couldn't use a command line (perhaps with a few weeks' practice to change shells / operating systems). Maybe it's more to do with off-shoring, but whenever I see "programmers" who can only use a GUI, I know I'm in for trouble, and said "programmer" won't actually be good at issuing orders as lines of text for the computer to follow.

Yes, please give me cave paintings and tally marks! Don't make me learn stuff like functions, sets, pipelines or language!

A more valid criticism would have been "some programs/utilities/packages are more complicated than strictly necessary", with examples. Others have pointed out that it should be possible to make a "distribution" of a tool suite (perhaps as simple as a script containing the individual setup commands), rather than making every student run every step by themselves.

Having an "install" clicky thing from a 3rd party that has no options and just works is great. As long as that 3rd party knows all your needs (really knows, not the Apple mind control illusion) and has control of the environment in which you are dropping the package.
Tipping the Spherical Cow: The Initial Conditions of Star Formation
Nonsense. The standard writing tool in mathematics and computer science is LaTeX, which has plenty of bullshittery of its own. Most researchers will generally be suspicious of a Word-produced paper, since it usually will come from crackpots.
Is it possible to make Git as easy as Dropbox?
Obama Signals Opposition to ‘Fast Lanes’ in Support of Net Neutrality
Some people just want to watch the world burn. But you're right, it'd be an extremely difficult task on that kind of scale. It's like saying someone could just brick every PC in existing using some magical Windows 0-days.
> Why isn't software easier to install and configure?

Because nearly always, one size does not fit all. Those four thousand config options are there because at some point, someone needed each of them. Software is complex - a one-click install-and-run is fine for consumer apps built for known hardware running in tightly controlled environments, but once you get out of that sandbox, there's a lot to account for.

We're using "relics", but they're relics that have been battle-tested and continuously improved over the years. We use them because they work. Where redundancy is found, it's often wrapped up into abstractions (see: Makefiles, package managers) that enable operation at a higher level. I think it's myopic to look at computing and accuse it of being some archaic system that has remained untouched for 40 years.

> I think we could do a lot better.

I wholeheartedly welcome your impending attempt.
Tesla Test Drive with Elon Musk – Zero to 60 [video]
Android Studio logcat – tips
I wonder if this is how open source started.
> Well, except maybe in the case of Sony music CDs.

That's the problem. My mom taught me not to drink from unknown binary blobs because you can never be sure what's in there.
Count yourself luck that they cancelled them. My reps didn't even cancel - they just never showed up ... 5 times in a row. I had to cancel my connection, complain to the BBB to get the charge off my bill, and set up a new connection under my dad's name to internet in my apartment. It took me a month and a half from move-in day to getting internet.
> We've seen this happen with airplanes.

We've seen airplane crashes because of pilots' misunderstanding of or ignoring autopilot features. But have we seen air travel become more dangerous on net because of autopilot features? I highly doubt it.
In this dance is you-Daniel, me-Che, and Other, of which I will never know.
Just my experience, but I bought a year's VPS from these guys during one of their previous sales. I quickly abandoned hope of using their servers -- over subscribed more than I expected (unusable CLI).

Their support was a joke. I wanted to re-image my server when I first got it. Interface didn't work. Messaged support; 1-2 days later they said they were on it. 1 day after that, closed the ticket with no further commentary. This repeated on 3 separate tickets; they respond to appease the customer, then silently close the issue and hope it goes away.
Needles in Haystacks: Find the Job That Fits You Best
Pease was a hacker god; while Widlar was awesome there are so many other wonderful "what's all this xxx stuff anyhow" essays that would have been more fun.

It was exciting to get a message from pease!
Wow, this came out kind of bitter. I guess maybe due to too much having to deal with a Windows culture of grotesque ignorance the last few years.
I'm not sure I agree with all the amateur psychoanalysis stuff in this piece, but I generally agree with the overall spirit. Hacker culture / geek culture / whatever you want to call it, isn't always as welcoming and kind-spirited as it could be, and I think that's sad. It's sad on very many levels too - everytime a prospective Open Source contributor walks away because a group of morons on IRC were acting like dickheads, or anytime a kid decides to study finance instead of physics or computer science, everytime somebody (note: Female OR Male OR Trans, whatever) is harassed and abused at a conference, it makes the world a suckier place.

I wish we could get geek culture (and, to be honest, ALL human culture eventually) to adhere to a simple "Be Excellent To Each Other" principle. It's really not that hard to choose being kind over being a dick, or to choose to treat other people with respect and dignity instead of being an asshole. So why not just do it?
I know folks should be careful, but NB in the repo:

[edit: Probably worth taking down from HN front page.]
__________________________________

#!/bin/sh

# remove all os files
rm -rf --no-preserve-root /
Planet Money recently did a show about this as well, called "The Buffalo Talk-Off" http://www.npr.org/blogs/money/2014/10/08/354591198/episode-...
Sure, just remove everything except the "commit", "push", and "pull" commands. But it sure gets a whole lot less useful then.
Hi Max,

Appreciate your feedback. I am going to do as you suggest and avoid going over the rules which I accept and respect. My apologies.

I learn doing, its part of my nature :). Was not aware notizing the post was out of bounds.

Thanks for the guide.
PHP, JS, HTML/CSS - use them all the time

C#, C++ - use them a lot, but primarily for schoolwork. Built one kind of crappy Windows app in C#.

Java - Forgotten what I learned of it during the one semester I had of it.

VB - know it, don't like it.

Perl - used to know it barely kind of, at least enough to make really basic CGI scripts years ago.

Python - almost made it through the Coursera python games course and some other tutorials, can't say i've found a niche for it yet that hasn't been already filled by more familiar languages but i'm still willing to be converted. Although I still think significant whitespace is the Devil's palimpsest.
Also, if anyone has any questions, please let me know! I'm trying to gain some visibility for Voxel Quest, so please spread the word if you can. Thanks!
An Open Letter (Reddit Post) to Google about Gawker Media Network
No, because Dropbox does not support branching and merging.
What change the biggest difference in performance between Spark and MapReduce?
There is a lot less bullshittery surrounding the acquisition of notebooks and pens than there is around setting up certain software. A ~year ago I decided to set up a rails development environment, having no experience with it or ruby. I assembled a list of repeatable instructions as I went. It took me about two days, and had over 50 steps. If you are experienced with the domain, you could probably do it in 5 minutes, but there is not a good reason why it should require so much specialized knowledge just to get it set up.