skysight-inc/HackerNews huggingface dataset:
I'm not convinced that these things need to be mutually exclusive. In the CS department at my university, the only language used for the first 3 years is C. But all of the courses are split in to a "lecture" and "lab" component. In lecture you learn about Computer Science; you learn data structures, algorithms, computational complexity, graph theory, proofs, summations, stats, combinatorics, etc. In lab you learn Programming; you implement a lot of these algorithms and data structures in C.

Abstract vs. Concrete Data Types are introduced very early as representations for the theoretical structures discussed in class and then we are given projects that can be solved using concepts and theorems introduced with the expectation that we will implement the appropriate structures and algorithms in C. The code itself is read over carefully and just as important as whether the output is good. Now, this is partially a luxury afforded by my university's small size; freshman and sophomore CS classes aren't taught in 200 person lecture halls, they're 30-40 students at the max. My first exposure to a linked list was writing one in C, not using one in Lisp. You model them, write proofs, recurrence relations, graphs, etc. on exams, and implement them in projects so that you show an aptitude for both the theory and the mechanics.

By the time you hit your fourth year, you take Programming Languages and Theory of Computation. Automata/Machines, Grammars, BNF, Compilers, etc. in lecture; seeing these concepts applied by studying and writing code in OO languages, LISPs, and Prologs in lab. And you'd sure as hell better understand how the garbage collector in your favorite high level language works or you'll get hosed on the exam. There's other staples mixed in of course; a whole semester devoted to Java/OO (I think a whole semester devoted to functional programming and Lisp would be better, but that's another story). A semester of OS, a semester of Networking. But just focusing on the whole programming/vs science side of it, there's no reason they can't both be taught effectively.
The nerd in me is curious about factors that lead to higher scores. With so many data points, I'd love to see how android vs iphone users scored and if the color of flappy (or "time of day") had any impact on your score. Or how many other people popped a bottle of champagne when they reached level 6...
There are reasonable and unreasonable definitions of "fair" and "better". Some voting systems have to have very very unreasonable (to a normal human) definitions of "fair" to be considered superior by any sort of consistent logic.
What if you want to make a dictionary?

you = {'are': 'screwed'}
In my case, I read the mother's article first, and then Tim Armstrong's original remarks and followup statements. This substantially colored my reading, and not for the better.

If I brought political biases to my reading, they had more to do with a pre-modern conception of loyalty: true authority is built on loyalty towards those who are led. And I looked at this from the perspective of a parent, and from that perspective, the lives of children often weigh heavier than things like self-survival.

AOL absolutely did not desert these parents, and that's where my post was is undeniably in the wrong—and where I wanted to revise it shortly after posting, before I got caught by noprocrast.

Now, I've said things in my life which were dumb and out-of-place. (In this thread, even.) And upon re-reading, I'm willing to extend Tim Armstrong the benefit of the doubt: he may have hit upon a spectacularly poor way to explain why employees were losing benefits, despite having the best of intentions. But his remarks could be easily and predictably de-anonymized, with obvious consequences:

On Thursday, within minutes of Armstrong’s utterance, my husband began fielding questions from colleagues: Wasn’t the CEO talking about his baby?

And not did these remarks effectively single out a specific employee, they also singled out a specific 1-year-old girl—who already has significant problems—and they linked her to the company-wide benefit reductions (at least for those coworkers who knew the parents). And this is where I got too angry to read Tim Armstrong's actual words accurately. Which I regret.
The Costco varieties are the same as the ones I buy anyway, so to me it's a win-win.
That code snippet is also using a faulty technique for identifying an Array. Although it will work for the majority of cases, if you're using an array from a different iframe, the instanceof check will fail since the Array constructors are not the same.

You should be using Array.isArray ( ES5 compatible browsers ), or Object.prototype.toString.call( obj ) === '[object Array].

Lodash, Underscore, and jQuery all provide utility methods to do that comparison for you.
it seems like the pid 1 issue has been discussed quite a few times in the past. see also here https://lwn.net/Articles/520892/

it's also discussed in the official debian debate https://wiki.debian.org/Debate/initsystem/systemd

can anyone explain to me why they haven't just changed systemd to do less work in pid 1?

i've used systemd on my archlinux laptop for quite a while and was happy with how much faster the system boots. but i also found it to be too huge and too intertwined for basic maintenance tasks. but ofc that is just a personal opinion. suddenly i have to have a repertoire of systemd commands to do things i used to be able to do with basic unix tools
The Federal Reserve purchases $85 billion in U.S. Treasury bonds—much of it worthless subprime mortgages—each month.
Well if i were a beer or cigarette company I probably don't mind abjectifying women to sell product, sure. But if I'm a branding company, maybe I don't want to limit my client base to beer companies.
Discovery in general is still a pretty knotty problem.

Even Netflix, which has a relatively small pool of things to sort through, doesn't do a particularly good job of it. It often recommends things I have no interest in whatsoever, and conversely never recommends things I very much want to watch but have to find manually.

It's practical to manually sort as a Netflix customer precisely because their pool is relatively shallow. But I wonder if their weak recommendations are due to that shallow pool, and that in the end there just aren't enough ratings for machine learning algorithms to actually work the way they're supposed to.

There's obviously a lot of money in getting recommendations and discovery to actually work, but I wonder if everyone is on a path that's sort of condemned to failure due to lack of enough data.

Dunno. Thinking out loud really. I know it's something I'm dissatisfied with pretty much across the board.
When I was young, probably 12 or 13 I think, I saw a series of images of a spider bite on a mans thumb causing the thumb to swell, split open, go necrotic, and eventually require amputation.

Did this damage me? No, I'm fine. I gagged when I saw the images, then I scrolled down and looked at some more. Lasting effects? Well today as an adult, I smash spiders when I see them. Not a big deal.
Wait, what? Replying to a comment that is clearly about mathematics, with a comment that is clearly about mathematics, is trolling?

The OP's comment, including " ... changing the common definition of exponential by saying the exponent could be 1 or less than one" is (a) mathematical and (b) wrong and misleading. The "common definition of exponential" accommodates any valid argument to exp(x), and to claim otherwise requires a mathematical correction to avoid misleading people.
Ok, I don't want to be mean but, why would some do all this work to workaround one of the coolest Python features?
No, VLC should remember the last audio level, just not when it's over 100%. If I leave it at 50%. On next restart it should be 50%. If I'm watching a movie and finish on 200%, on next restart it should be 100%.

Clipping sucks. VLC shouldn't remember these options unless the user changes an optional setting.
I think the emphasis on containment and local understanding is good, especially considering that programs are getting huge (which is a separate problem, and what I think really needs to get fixed). With huge programs it's infeasible to fully comprehend the whole program, which means the only thing you can really do is hope that other programmers' functions work as advertised, and focus on perfecting your local domain.

The easiest way to alleviate this, in my opinion, is to focus on building smaller programs which focus on doing one thing well, and combining those together to create larger applications, with preferably a minimum of glue code. In my mind this leads to even more containment as each domain is now accessible only through the specified API.

This could lead to similar problems that you have with the deemphasis of global understanding, because it's still compartmentalizing things, and at each higher level the programmer is just trusting that the lower levels have implemented what they said they would, just like in a huge, single program.

The idea of being T-shaped specifically when it comes to the overall knowledge of the projects you work on seems to be the best way to work on those applications: have a general understanding of the whole project, and a really good understanding of your specific domain (and perhaps an intermediate understanding of those around yours).
Ahhh. I see. Hey, it's a whole paragraph dedicated to pointing out how we might stop running people over.

I... That's honestly not what I want out of a discussion of public space. There was a really crappy, vapid, superficial, Buzzfeedesque article in The Atlantic Cities about "placemaking" during the Seahawks parade in Seattle that discussed public space more than this does.

http://www.theatlanticcities.com/neighborhoods/2014/02/5-pla...

It's not really a public space when everyone is enclosed in a rocket-powered coffin communicating through flashing lights and loud honks. =X Actually, I wonder if I could get someone to make a play like that.
Just correction a misconception here. The human brain "boots" on the 18th day after conception (you can set your watch to it). It is obvious on echo pictures that coherent thoughts are present on the 21st day after conception (e.g. if awake, most kids are aware that they're being pictured and attempt to find and play with the source of the sound, I think that qualifies as coherent thought).

It is quite obvious on the 23rd day that fetuses are swimming around and exploring their environment purposefully. They are at least as alive and coherent at that time.

The reason for this is that your DNA does not contain a plan for a human being. It contains a plan for a bilobite (an very old and presumed extinct form of life), and a way to transform a bilobite into a trilobite, a trilobite into something that resembles a fish, that fish into something very similar to a frog larva, and so on and so forth until you get a human. Other species have the same evolution in the womb/egg, except it diverges at some point.

The fish has a working brain (and it is unknown whether the trilobite does, it grows active neurons), generally referred to as a neural tube. That brain is working during the whole gestation period.
My parents limited my video game time, but I managed to convince them that using my game creator software or editing starcraft macros counted as a different category. "Haha, I can build games and play them under the guise of 'testing', I showed them!"

Now programming is my job and my hobby. Turns out my parents are smarter then I gave em credit for at the time.
It also means that once an artist gets big, he loses some of his creative freedom. Kendrick Lamar couldn't clear Cartoon and Cereal for GKMC. Danny Brown couldn't clear ODB for Old. In both cases, they would be among the best songs in the album.

It's a shame...
That's actually great advice. Exercise + changing your environment will help get creativity flowing. But that's all outlined in tons of confreaks videos.
I don't see it this way—that learning to code is in some way less elegant and less conceptual than learning computer science. That "it's not science" anymore. Rather, your idea of "learning to code" is just operating at a higher level of abstraction from your idea of "learning computer science."

When you start with primitives like array.sort(), you're implicitly bringing the organization of a program or system as a whole to the forefront, while abstracting way the mechanics of that sorting process. This is a good place to start understanding individual computer programs and systems.

When you start with primitives at the logical and mathematical level (i.e. theory), you're bringing the organization of lower-level concepts like data and control structures to the forefront. This is a good place to start when understanding the components that go into higher-level primitives like "sorting."

And you can go up and down in terms of the level of abstraction you want to view computer systems. Go higher, and you'll think more about the way multiple computer systems integrate (this is precisely what frameworks, APIs, and SDKs tackle). Go lower, and you'll think more about the way hardware interacts with machines (which, ironically, brings us back to electrical "engineering"—not science!).

To me, it's all just layers of abstraction, and the layer you choose should just be the one you find natural, interesting, and maybe useful. It's not a strict hierarchy; there are branches and perhaps cycles. But our understanding of the systems that run industry today, are only possible upon a complex system of abstractions that goes all the way down to the physics of the universe.

There are patterns and antipatterns to understand when "learning to code" (at the systems level), just like there are patterns and antipatterns to understand when "learning computer science" (at the theoretical level), but they just operate at different levels.

The term "computer science" implies that it is science, and not engineering. I think that the main reason theory is seen more as an "academic" pursuit as opposed to more abstracted understanding of computer systems is precisely because it has been so thoroughly abstracted, that trying to operate on a purely theoretical basis is just too inefficient to be particularly "useful" in an engineering setting, by some metric. It's not because of innate beauty or complexity; it's just where that arbitrary line is drawn.
Journaling My Cycling Accident And Recovery
Ok, this is the most idiotic Internet comment I've ever responded to, but here goes. Rappers are more akin to poets than musicians, the way you are using the word musician. The musicians in rap are called producers - they make the backing tracks. The appeal includes: complex technical rhyming, nuanced delivery ('flow'), vignette painting, storytelling, wordplay including numerous puns, double-entendre, and punchlines, some backing tracks are actually epic, or especially funky, i.e. they have merit as music. You apparently disapprove of the subject matter. Would you level the same criticism at movies like Scarface, Goodfellas, or The Godfather for the same reasons?
Even then, this seems like a lot of work to overcome a non-problem, akin to developing a C++11 compiler which uses "begin" and "end" instead of braces because of some emotional attachment to Pascal.

The thing is, it's actually trivial to do that using the C++ preprocessor.

In fact, Steve Bourne wrote the Bourne shell exactly in this fashion, with the following C substitution macros (based on Algol-68):

#define STRING char *
#define IF if(
#define THEN ){
#define ELSE } else {
#define FI ;}
#define WHILE while (
#define DO ({
#define OD ;}
#define INT int
#define BEGIN {
#define END }

Source: Expert C Programming: Deep C Secrets, p. 13. Peter Van der Linden. 1994.

(this isn't to deny that Python with Braces is a rather frivolous idea)
> Why not ditch the ordinal voting and go with a cardinal system?

Because whereas ordinal rankings at least arguably mean the same thing when different voters give them, cardinal scores don't have a consistent meaning, making all cardinal voting systems subject to GIGO problems in addition to any other issues.

> Range voting is the name of that system and, unlike Condorcet methods, it is not subject to Arrow's impossibility theorem.

No system that is not a form of ranked ballot system is "subject to Arrow's impossibility theorem", nevertheless, range voting is, beyond the GIGO problem faced by all cardinal methods, demonstrably subject to the same classes of tactical voting as approval voting, which means that while it is not in the class of of systems to which Arrow's theorem applies, it has flaws (from the perspective of the Arrow criteria) of the type that Arrow's theorem states that all the systems to which it applies must have. So the fact that Arrow's theorem doesn't apply to it doesn't actually make it any better.
The ruling is more complicated than that. If you can read french, I suggest you read Maitre Eolas' take on it [1].

[1] http://www.maitre-eolas.fr/post/2014/02/07/NON%2C-on-ne-peut...
Armen Boladian isn't quite just a "former record producer". He founded and ran Westbound records who put out the majority of George Clinton's music and many other groups.
As someone who spent time with the fun complicated algorithms, I quite like the UI and usability of your ballots - it matches up rather exactly with how I imagined doing it myself before I got distracted messing with more algorithms. ;-)
Seems to not be working after I upload file. I get the following error in Chrome's JS console/

Uncaught TypeError: Cannot read property 'length' of undefined DataPlot.js:198
reader.onload DataPlot.js:198
Surely they accommodate this syntax in the scheme. The whole project would collapse if they didn't.
It encourages artists to come up with great new samples, either for use in their own songs, to license for use in others' songs, or both! How does it not encourage creativity?

As an example, just listen to Kanye West's "Stronger" and compare that to the original source of the sample, Daft Punk's "Harder, Better, Faster, Stronger", which itself prominently samples Edwin Birdsong's "Cola Bottle Baby".

Now imagine neither Daft Punk nor Edwin Birdsong was ever compensated or asked permission for Kanye's work, and neither was Edwin Birdsong compensated or asked permission for Daft Punk's usage. Is that in any way fair? Both the newer songs essentially owe their popularity to that single iconic sample!

If you don't want to go the legal route by getting permission to reuse others' music, then make an entirely original song. Plenty of people still do that, you know. Sampling others' work is a privilege, not a right.
He left the word "important" out, which makes it easy to score a debate point against him. What's the important thing humans actually end up doing in space that a machine couldn't do?
Ada's powerful. The typing system is the best of the mainstream imperative languages. You can write good cross-platform code without thinking about endian issues. Almost as fast as C, strong gcc support.

It's a shame it's so damn verbose. A fortnight ago I was trying to brainstorm how I could put a tighter syntax on it, possibly with some kind of pre-processor. Ideas welcome!
That may have been it, I can't quite remember.
The essential difference between Schultze and Ranked Pairs is that cycles are resolved based on strongest beat path versus the number of approvals or victory margin. Schultze is just as reasonable as Ranked Pairs for this, but I find it easier to justify to people that an option that trounces another option should have that reflected in the final ranking rather than that an option with a stronger beat path should have that reflected.

The essential difference between Schultze and what I like these days is that Schultze will try to resolve cycles, whereas I think it's better just to accept them and call it a tie. If you can't have ties, then I really like the earlier suggestion of rerunning the voting on just the ones in the Schwartz set.
My previous job I had a desktop PC which I could RDP into from my personal laptop when out of the office.

The current job gave me a laptop (a MacBook Air so limited plugs) but I'm not allowed to leave it plugged in at the office for [physical] security reasons.

So if I want to work from home I have to carry it with me (along with my personal laptop). Can't use personal laptop for home stuff nor vice-versa.
HN is in such a flap for the exact same reason it got into a flap over Nick D'Aloisio when Yahoo purchased his app.
I'm not sure that's true (I'm not the most knowledgeable person when it comes to the exact specifics of the GPL). Without institutions protecting IP (like patents, trademarks, copyright) the GPL couldn't exist, it's just a hack on top of IP.

I agree that it's not in the spirit of the GPL, but they did explicitly not add in sections about that in the GPLv3. The v2 FAQ mentioned that they were considering adding in web-based applications, but the v3 FAQ says it's still okay, but if you're writing software and want to make it not okay, use the AGPL.
Somehow we managed to do so in the 80s.

Classes at the time were a mix of C, Pascal, and Lisp (at my school, YMMV). Certainly all the chances for getting pointers wrong made developing in C harder, at first. Even today I prefer to reach to Python to throw together some algorithm I am musing about. So I definitely acknowledge your point.

But, I just don't see a way around it. Today I am refactoring code to make it stay in the cache better. Doing that is not an exercise in pointless efficiency; it is the difference between the program being usable or not (it is a real time system). I contemplated compiling to assembly and eyeballing it, but a few sessions with the profiler got me the answers I needed. But to do this I had to keep in mind the pipeline architecture (cost of if statements if you don't get the branch prediction), the size of the cache, the cost of function calls, etc.

I recognize there are careers out there where you never have to touch that stuff. You write SQL calls and use a 4GL language, and so on. But what happens when your SQL runs to slow? Do you randomly vary the various server settings until it seems to run better, or do you actually understand (say) the cost/benefit of making the cache for the indexes larger? How would you talk to a piece of hardware your boss drops in your office? How..., well, you get the idea.

None of that is advocating building an entire 4 year curriculum solely on C/C++. Certainly it makes sense to do the algorithms class largely in a language like Lisp or Python. But after a certain point if you want real performance you are in C, battling low level details, and I think that is as important, if not more important, than proving the O() complexity of Fibonacci heaps.
Octohost: a Docker based mini-PaaS server for "git push" deploys
> The problem being, if you show up and all you know is Delphi / Pascal / Ada, you're going to be unemployable.

Sure, it is all about learning for the job I guess.

My rant goes into another direction actually.

Young kinds nowadays tend to think that not only C is the only player on its field, it never existed nothing else before it.

Whereas many of us, remember the days when C was just another systems programming languages among many others to choose from.

So if they learn only C, then they get into this mentalit that bounds checkings, modules, proper vectors belongs to the realm of VM languages, while only C allow for full control.

If on the other hand they learn about the Algol family of systems programming languages, besides C, they will be aware of other languages that offer the same feature set of C, compile to native code as well, while offering higher productivity.

Having that knowledge will make them better C programmers as well, as they might learn a better sense of safety and disciple while coding C.