skysight-inc/HackerNews huggingface dataset:
I think the title was a little bit of a misnomer. I think what we're seeing is a belligerent student body, that has been coddled and pacify their entire lives. Universities are starting to wake up to this, and they're starting to fight back against a spoiled generation. Others may politicize this and say that the liberal policies of free expression of students is facing a turnaround towards a more conservative stance on student demands. Perhaps I am in the minority, but I believe university is where you go to have your thoughts and opinions challenged by those you disagree with.
These questions all really resonate with me. If I were to receive these questions as an interviewer, it would speak to someone who has been around the block a few times (which I would count as a positive).
Maybe GNU Emacs, because it was originally written for Unix. Emacs itself came from ITS/Teco. Lisp-based Emacs came from the MIT Lisp Machine (using Lisp Machine Lisp as implementation language) and Multics Emacs (using Maclisp as implementation language).
> Even when I’m with my friends, I’ll go online to make a point…. I’m more at home.” An Ivy league–bound high school student worries that college is going to require “a fair amount of on-the-spot talking.”

Geez. Had a young lady at a concert last night not said something like this to her friend I don't know that I would have believed it.

Even I've noticed how often I use technology, most of it not on social networks, per se, but YouTube/HN are pretty dang close.

Sometimes I yearn to be able to sit and just read a paper book, but it's hard to ignore the allure of the Internet. Even if the majority of it doesn't enrich my life.
Yes, Snapchat is a great example. I'd love to see more apps that work that way.
There's no simple solution without a lot of context.
http://mockingeye.com/a-classic-of-soviet-engineering/
Kind of old code syndrome. I would say it is more like changing from Java to Ruby on Rails full time, and looking at your old Java code which is now a rusty language, with rusty memories of the class libraries and frameworks you used. Even with beautiful code it will be a struggle.
You mean something like PEP-0383? https://www.python.org/dev/peps/pep-0383/
One of my favorite pieces of code I've written is a 150 line Python script I made to solve a really ugly text processing problem. I have tried to use it as a code sample when talking to potential employers, but it backfires because it makes the original problem look so simple that they wonder why I bothered to send it.
I don't necessarily agree with that point of view. Even if a paper brings nothing new to the pot, it might help others to get into a field or a problem. I often find myself reading the introduction and first sections of useless (to me) papers just because they do a really good job at explaining things that are confusing. This last years I've really came to appreciate papers as a learning tool instead of class notes or books.
During my PhD I found I had to occasionally lock myself in a conference room with a bunch of papers and all the whiteboards to do a sort of "deep dive", in order to get everything into my head and push things forward. Things that were a bit rusty quickly came back after a little bit of effort.

At the end I'd emerge with a bunch of photos of whiteboards with clear intermediate steps, and then I'd write it up as a short report in LaTeX. Of course, as the report turned into a paper, I took out all the useful 'trivial' steps - which always feels a bit wrong. I think it's also useful at this stage to drop everything for a month or two and come back and see if you still understand what you wrote.

I think the "deep dive", putting prolonged effort in, and writing it up are all key aspects.
I do not have all the commands memorised. But how emacs completes changes upon where you hit tab. if you type M-x re-bu TAB, it will show revert-buffer, re-builder, etc. If you hit TAB when cursor is at the beginning, like M-x buffer M-b TAB, it will show any command with buffer in it. Then you can C-x o to the Completions buffer and use any search tool on it, e.g. isearch-forward-regexp.
I'd say PHP is still cool, there's nothing quite like it. (For good reason, according to snooty devs, who are the ones that don't think it's cool or ever was cool...) I'm probably closer to a snooty dev myself now too with my favorite languages to sip on being Clojure/Lisp/Python2.7/Nim, but man PHP was the most awesome thing when I was 15-16 and learning web programming. I still find aspects of it cool when I do web stuff in other languages (though a lot of that is probably from the CGI model), and there's no way it can maintain its 80% market share if no one (even out of ignorance) thinks it's cool.

When people ask if Python is dying on the web... seems kind of irrelevant, it never had much market share there anyway. Python's strength is in its breadth, with a few deep anchors here and there. I agree it's not going anywhere.
or redis
I'd just take that as favorite tool for the job, SQLite's pretty interchangeable. Also, if you've already gotten a database engine running, it's probably best to just keep everything there. Otherwise, you get into the situation I was in at a previous job in which certain page loads from an app written before I started there required a sun jsp app for the main part of the page, which made requests to pull some data from an Oracle database, some data from an apache mod_perl app that queried from a mysql database, some data from an apache mod_jk app that pulled from a c++ app with its own database format, and some data from an apache mod_jk app that stored and retrieved from a postgresql instance. Everything was nice and well-documented, but mein gott was that a lot of moving parts.
What does that command do?
Yes, but if you want to do something else with your computer, you'd have to swap it out to proper RAM.
The full Wikipedia article you conveniently snipped the map from does in fact show the popular vote in a bar chart:

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

My point is the claim that these maps are being used to trick people, is exaggerated. Why? Because it's rare that the popular vote tally is not shown, and most people are aware of population density.

I think that having as many different views as possible on the data is a great thing, and the maps in this article are excellent. However, because of the Electoral College, the standard map is not useless, and in fact shows you something no other map can - where a state is located along with how it voted in the election, projection distortions notwithstanding.
This is an interesting example of what might happen if you think that the things which are the most frequently mentioned on HN are the ones which are the most commonly used in production/industry :)

It's a bit dangerous bias/distortion, you can easily trick yourself into thinking that everyone is running everything with docker, soon everyone will be spinning up clusters with tensor flow to compute on their petabytes of data :) (nothing personal, OP, just something I've noticed lately).
Not in my sphere of activity. I have a friend who recently started his PhD... and is moving all of his development from C/C++/Fortran to Python. Numerical code even - he just doesn't want to bother.
V.I. Arnold:

“Proofs are to mathematics what spelling (or even calligraphy) is to poetry. Mathematical works do consist of proofs, just as poems do consist of characters.”
> I think my point is that you can lose competence in math very very quickly through lack of constant exposure.

This is not that important in my opinion. If you're lacking exposure, it must be because you don't apply math every day, and it won't be a big deal. If you apply math every day? Then you will quickly catch up with whatever field you're using.

If you're in pure math, then none of that matters as well, only proofs do. And lack of exposure will often not harm any of the tricks you learned while constructing/understanding them.
> Up through my first differential equations class I found almost everything trivial to learn

Mankind hasn't yet figured out a good way to teach the first Differential Equations course.

The first serious Calculus course introduces some level of rigor and formalism, but this alone is not sufficient for Diff Eqs. And the DE courses are typically leaning towards applications, so they tend to succumb to the "fiddle these dx's and dy's around like it's magic, in the end it might work out" approach.

The business is well founded, which you will discover later. But no one has figured out how to massage that into the first course.
Smart-rendering views with JSX and incremental DOM
> because I had seemingly forgotten everything

graduated in math, let me tell you this is how all my fellow students felt like every semester in every class.
I understand the law of Demeter (and like many OO design patterns, I think it misses the mark). You don't know Rust well enough. `self.foo.mutate(self.access_my_bar())` is a borrowck error in the same way as `self.mutate_foo(self.access_my_bar())`. This also is only true in the event that one of the calls involves mutation. Really, this has nothing to do with the Law of Demeter, borrowck will find things that do not violate the law of demeter in error, and will allow things that do.

The issue here has to do with 1. borrowck's inability to infer the delimitation of mutable access to members of product types vs to the entire type, 2. borrowck's limited understanding of the order of evaluation.

I love Rust and want to write in Rust all the time, but you are overhyping the benefits of borrowck.

EDIT: A reason the law of Demeter is not great, in my opinion, is exactly a strength of borrowck - the issue isn't how much state a scope can read, but how much state a scope can write.
An interesting read. But I think the author should have explicitly written out the point he is really making: you can't be too careful about making your writing clear, even to yourself. I recall reading (I'd point to the book with a link if I could remember in what book I read this) that mathematicians who occasionally write expository articles on mathematics for the general public are often told by their professional colleagues, fellow research mathematicians, "Hey, I really liked your article [name of popular article] and I got a lot out of reading it." The book claimed that if mathematicians made a conscious effort to write understandably to members of the general public, their mathematics research would have more influence on other research mathematicians. That sounds like an important experiment to try for an early-career mathematician.

More generally, in the very excellent book The Sense of Style: The Thinking Person's Guide to Writing in the 21st Century,[1] author and researcher Steven Pinker makes the point that the hardest thing for any writer to do is to avoid the "curse of knowledge," assuming that readers know what you know as they read your writing. It's HARD to write about something you know well without skipping lots of steps in reasoning and details of the topic that are unknown to most of your readers. This is one of the best reasons for any writer to submit manuscripts to an editor (or a set of friends, as Paul Graham does) before publishing.

And, yes, if you think what I wrote above is unclear, as I fear it is, please let me know what's confusing about what I wrote. I'd be glad to hear your suggestions of how to make my main point more clear. I'm trying to say that anyone who writes anything has to put extra effort into making his point clear.

[1] http://www.amazon.com/gp/product/B00INIYG74/
The video shows a GUI document editor. From what I've seen of LyX, it is also a GUI document editor, but I couldn't describe relevant differences.
I don't know how should I feel about all those donation campaigns they usually do after this.
The commute of the future is drastically less commuting in general. Either because more people will telecommute, or because more people will live closer to work (urban revitalization), or perhaps because fewer people will need to work at all (basic income).

I'm also somewhat worried about what the decline of individual car ownership will mean for the ever increasing power of surveillance that governments and corporations have on our lives. Rideshare apps will probably track every single ride whether you like it or not, a hundred times more accurately and comprehensively than cameras on streets. More and more public transportation networks are also transitioning to electronic payment systems that can record all of your trips and mine that data; gone are the days of anonymous paper tickets. And I wouldn't be surprised if bicycle renting services of the future equipped all their bikes with always-on trackers.

Sure, we already carry iTrackers all over the place with us, but this is a whole new level of virtually unavoidable surveillance. My parents' old car might have been expensive to maintain and massively harmful to the environment, but at least it was too dumb to report your every movement to Big Brother (especially on cameraless rural roads).
Oh, thankfully someone told me that emacs does not have framebuffers and filesystems. It doesn't have wireless drivers too!

My grandparent comment was an analogy, for illustrating how it's not the optimal way to use emacs, as a command line program invoked to operate on one file and then closed and reopened.
45 minutes is probably a 5-30 mile commute. Do you really think we need to travel at 600 mph to solve that problem?

If you read the article, they are only talking about 4 miles, as mentioned in the first paragraph:

"On a brisk October day in Chicago, a few employees from the design firm Ideo left their office and headed to Knife & Tine, a restaurant about four miles away. The goal, besides lunch, was to complete the journey within 45 minutes, on a budget of just $10 for the whole group, all while carrying bulky shopping bags."
Uninterruptible Programming
> But is that system easy to understand?

Yes, if you documented it properly.

> Is the code easy

I haven't used go, but it's easy in C. Setting up macros for all the bit manipulation is a very common technique. Usage would be trivial - just call a couple accessor macros. It's certainly easier than walking the parse tree of a JSON record. Using a simple bitmap would also skip the initial parsing step.

It's easier to use the bitmap. The "example usage" section below is very simple. Setting up ElasticSearch or fiddling with a JSON parser is more work (and a lot harder on CPU/RAM).

/* the "2nd array" */
uint64 *port_states;
#define IP_PORT_STATES(ipaddr) (port_states[ip])

#define PORT_22_INDEX 0
#define PORT_80_INDEX 1
// ...etc...

/* some of the accessor macros */
#define PORT_STATE_MASK (0x00000003)
#define PORT_STATE(ipaddr, port_index) \
(PORT_STATE_MASK & (IP_PORT_STATES(ipaddr) >> (3 * (port_index)))

#define PORT_CLOSED 0
#define PORT_OPEN 1
// ...etc...

/* example usage */
uint32 open_count = 0;
uint32 ip = 1;
do {
if (PORT_STATE(ip, PORT_22_INDEX) == PORT_OPEN) {
open_count++;
}
} while (ip < 0xffffffff)

> future hires

If they can't handle calling a couple macros over a uint64 array, I wouldn't recommend hiring them.

> too large to fit in memory

It's not necessarily in memory - the "old-timer" is using a memory mapped file.

edit: bugfix
Reporte ConfidencialMinistro Luis Salas oficializa decreto de emergencia y pide
I seem to recall it being that one's risk of lung cancer due to smoking drops to being very close to a non-smoker's risk after refraining from smoking for 10 years.

Other damage is certainly done to the lungs that can cause other issues--emphysema, cardiovascular problems, etc--but the risk from the "scariest" threat out there is greatly diminished.
> I have attempted to deliver [these lectures] in a spirit that should be recommended to all students embarking on the writing of their PhD theses: imagine that you are explaining your ideas to your former smart, but ignorant, self, at the beginning of your studies!

-Richard Feynman
Who really cares about whether something is "certified" UNIX? Certification is not some seal of quality. "Unix" is commonly understood to denote "functional" unix systems as well for lack of a more convenient term.
Yes, it was wonderful to read. The coloring of the mice and otters. The before and after undersea graphic showing the beach creation was well done. A solid article with the right amount of visual treats.
Google does do this AFAIK. They dont get any money when people turn on adblock and have always leaned towards simple ads as well as filtering out sites with crummy ux in search
Thoughtbot's Laptop
Emacs has a different usage model. Instead of starting a new Emacs for every file you want to edit, keep one running and edit all your files in it. If you're working on multiple projects, have one Emacs for each project and switch between them.
> Possibly, legislation could help: make it unlawful for a storage device which holds 100000000000 bytes to be called a gigabyte device.

Even tapes, which along with every other "piece of string" device, have been base10 since before this cp/m / *dos mistake existed?

Why should they now be forced to be wrong?

(also, be careful what you ask for. If this were to be legislated, it'd be perfectly logical for them to fall inline with NIST - who don't agree with you on this one)
Discrete Graph Hashing (2014) [pdf]
So did you complete the book? I always appreciate some helpful furigana.
Here is the issue: `self.foo.bar(self.baz())` is an error if `foo.bar()` mutates foo, even if `baz()` doesn't touch `foo` and even if `baz()` doesn't return a reference. This is because borrowck doesn't properly understand that baz will be evaluated before bar, and can't distinguish which elements of a struct are accessed by that struct's methods. Both of these are problems that can be solved, and neither of them is actually promoting good practice in my opinion.

All it does is force you to use unnecessary temporaries, like `let baz = self.baz(); self.foo.bar(baz)`
5-10 miles no, 30 miles it might be workable to use a high-speed transport. I assumed long distance since they said 45 minutes. A 45 minute commute, walking or otherwise, indicates a poor design. Sustainable doesn't need to mean giving up convenience or technology.
I recall taking these high school self-report questionaires about 5 years ago. These were always done on paper and "anonymously" (the self-reporter never explicitly identified themselves on the form, and you'd just insert your completed form into any random location on the stack of completed forms). I certainly didn't have any thought that the information might somehow be tagged to me.

Also, people in my high school were very open about their illicit behaviors. One guy even claimed he was part of a gang in the middle of our class. Further, before the surveys, there would always be at least one person who said something like, "hey guys, lets just answer 'every day' to every 'how often have you <x>' question. LOL". Obviously, those submissions get thrown out as outliers, but the point is I don't think teens are any wiser to know not to admit to any nefarious behaviors. Heck, just ask them if they know what the first (or second, or third...) amendment is - many teens (and citizens in general) are totally unaware of their rights and of the law. Yes, self-report metrics are always subject to loads of biases, but I just disagree with the bias being towards under-reporting in this case - I can't tell whether the metrics would be boosted or lowered as a result of these biases.
By my read, it prints a list of all Ruby files in your project sorted by number of commits against them. It may take a long time to complete depending on number of files and number of commits.

YMMV, I am not a BASH shell.
Not sure what your point is, but thanks for the condescending digression.
> But tell your argument of independent "non connected" software to administrators who have to manage installations for hundreds of workplaces and they will tell you what a godsend cloud applications are.

Only because desktop OS-es they have to manage are crappy. At my previous
employer, we had Ubuntu desktops managed by CFEngine. Now guess how big
trouble was to roll-out any software packages, updates or new installations,
or how difficult was to configure (or preconfigure) the applications.
Also it's important to remember that system-wide packages get installed once, while pypi stuff will get redownloaded a lot. It means that for example users of recent arch, ubuntu and other distros which install python3 by default are more likely to have some of the dependencies already there, while anyone installing just python2 base package will download deps from pypi.

Also pip itself got upgraded to use caching by default not that long ago. All distributions defaulting to python2 will still have old pip which redownloads your packages on every installation (`tox -r` for example). More recent distros will give you tox which caches the downloads locally (which lowers the numbers).

Pypi also doesn't count private repos. If openstack started testing commits using pypi repository and turned off caching, I'm guessing it would add at least 10% to python 3.4.

TL;DR: pypi stats are interesting, but don't rely on them to give you precise answer.
I've recently taken a calculus problem (multidimensional real optimization) I guess for the first time since I was an student.

While your description has some merit, there's a huge amount of trivia in the format of "I can do X, I just have to do Y first", "X has no known solution, try something else", and "operation X is very useful, try it". That goes away, and everything gets way harder.
But why does Clojure do all that extra setup work?
> I think that's because mathematical papers place too much value on terseness and abstraction over exposition and intuition.

If it only happened on mathematical papers... It is all over the place, in books, classes, etc. Few professors tell you what are they doing and why; they just throw formulas, theorems and symbols at you. Intuition is not given its necessary importance, first because it's hard to grasp some concepts, and second because sometimes there's no easy intution behind them unless you have deeper knowledge in the subject.

Regarding "unit tests", or descriptive names... That's very difficult once you get into advanced math. Examples are probably going to be trivial or too contrived to be useful. And if you have to give a name to a theorem or lemma, you'll end up describing its full contents.
Naturally. Thanks.
make sure you're using the stable melpa repository. The unstable (default) melpa repo is just builds direct from the master branches of the projects. melpa stable is builds from release tags.

since switching from unstable to stable melpa, I've not had anything break.
The point is that within these smartphone apps, there are often consumption and production elements. E.g. on Instagram, the app opens to a stream of activity (consumption). You have to tap a button to start to produce something. Compared to the Camera app or Photo Booth on my PC, both which exist to enable me to produce first, Instagram is focused on consumption first. That's what I find odd.
> The question to be answered is whether or not a "whistle-blower" should ethically be allowed to profit, substantially, from blowing that whistle

If they're an external party then I don't think it really matters.