skysight-inc/HackerNews huggingface dataset:
Completely agree, but I'd even add internships.

Relatively often while trying to help a fresh-from-school hire I'll ask myself silently "when and how did I learn this" and realize it happened before my first day as a full-time software engineer. But it's fairly evenly split between coursework that has proven itself to be better-than-average or through some fortuitous internship experiences.

aside, i interned at a nat'l lab and I wonder if there are any reliable predictors for how good of a training opportunity an internship will be. I think mine was good because I got a lot of attention from two smart people who had more experience and a decent grasp of many best-practices, though they were both relatively fresh from (graduate) school themselves.
> I don't think you remember how the yahoo pipes worked.

True, I learned about it when it was already dead, but thought the goal was similar to the stuff Zapier offers and I would really like to try it. Not to automate stuff, but to checkout the visual editor.
Just two? Rack em up.
Placing a small number of sanity (hint: it's not always type that needs checking) checks on border code is not any kind of argument for static typing.

I'd do the same thing in most languages - in fact, I'd end up doing way way way more of it in C because it's very weakly typed.
Neil Hunt on Netflix and the Story of Netflix Streaming
Interesting. What sort of functionality is possible in, say, the Facebook app as compared to the mobile website?
This is basically Lua, excluding type annotations. Lua's form of OOP is very strange in that methods aren't bound to a parent context, but instead take the object as a value. For example, `object:method()` is the same as `object.method(object)`, and `function object:method()` is the same as `function object.method(self)` - the only difference being calling the function via `object:method()` is a bit more optimized. There is also a framework with networking, signals, and other cool features called `cqueues` which works based off of coroutines.s You might want to check that out too :)
Just define a small area of the screen to run on then. Subtitles are typically within a very small portion of the screen
Or recast as one long one and cut it up.
IMO, the reason the wiring model doesn't scale up is that most don't provide a way to create submodules (compounds?). I expect that decomposing a problem into a chain of smaller subproblems is a fine way to manage a dataflow.

Yahoo Pipes didn't really offer that, or any anyonymous stdin/stdout. So huge graphs were necessary for complex problems.
Bitcoin Average Block Size
"grep ^2017-05-29 /var/log/somefile | grep -v 'INFO|WARN' | tail -n5 | cut -f1 -f3"

Did you mean cut -d' ' -f1,3?

Assuming delimiter is a space the above example can be reduced to:

sed '
/^2017-05-29/!d;
/INFO/d;
/WARN/d;
s/ /INFO/;
s/ /INFO/;
s/ .*//;
s/INFO.*INFO/ /;
' /var/log/somefile \
|tail -n5

"... compile a set of commands into a single program and run that."

Linux: see busybox ("multicall binary")
BSD: see binaries on install media ("crunched binary")

sed and tail are both compiled into busybox
re: bsd compiling in tail with crunchgen is easy

As for "objects", the k language can mmap the output of UNIX commands and run parallel computations on those results as "data" not "text". It can be faster than I/O.
> I don't know what market you're in, but it's definitely hard to find good people in Silicon Valley.

Depending on how you define "good", I would dispute the assumption that every company deserves good people. Information about what a company is like to work at spreads fast enough for good people to avoid them. There are plenty of such companies.
> none of which is "UTF8" incidentally

Why not? Shouldn't all printers made nowadays support UTF8? Probably by default?
> Stimulating activities is a recent discovery but I am still working at finding stuff for it.

Listen to music and learn an instrument, play chess, learn new languages, memory exercises, physical exercise, meditation. I think that hits most of the high points I've read about cognitive stimulation.
this looks very handy, especially with options to expand it with your code
That might be a feature, actually.

The advantage of being cooperative is that context switches are deterministic. Raw preemptive multi-threading, on the other hand, leaves open the possibility of hard-to-reproduce timing-related bugs.
I use firefox for the treestyle tabs. I just cant live without it. I was very excited to read about this overhaul coming in june!
but it's true for math itself also.

you're missing a point here.
Ask HN: What are some must read books for computer programmers?
moonscript powers the itch.io indie marketplace -
the original announcement has a quick write-up: http://leafo.net/posts/introducing_itchio.html

After spending years working with Ruby or Java, it was a very nice change of pace. Lapis (leaf's web framework) is crazy good as well: it's easy to write fast code, see this article on coroutines: http://leafo.net/posts/itchio-and-coroutines.html

(disclaimer: I work there with Leaf!)
His blog post about Noise, [Notes on Building Noise][0], was posted to /r/rust, and I found it to be well-written and entertaining.

[0]: http://damienkatz.net/2017/05/23/notes-on-building-noise-a-j...
So in 2017, whats the correct character set to use in MySQL?
Although biology and organic chemistry are much harder then CS anything, they can be learned in school and from school resources only. No one expects you to already come in already knowing how to code or configure linux. If you are good students willing to work, you will learn them, period. With cs, you are expected to already know a lot that was not taught in school - meaning that all kinds of cultural and social effects play the role (who your parents and friends were).

Also, there is a lot less myths about biology around. Nobody assumes you have to be some kind of nerd to learn it, nobody assumes there is special in-born ability for it totally different from all other kinds of intelligence (like is often implicitly assumed even with things like operating system configuration), there is much less cultural bullshit about "hackers and their culture" around.
Using a 2d image resynthesis algorithm is sub-optimal for video. There is basically no chance of it picking the same result every single frame, you will see a flickering shadow of weirdness where the old characters were.

You have lots of infomation of what image should be there; You have motion vectors signaling when an object or background has moved into (or out of) a blocked area. Or a maybe the motion vectors indicate object/background is stationary and you can use infomation from before/after the subtitles to fill it in.

I'm not aware of such a 3d video resynthesis algorithm existing, but it should be possible.
I have to echo this. Computer Science is essentially a Mathematics field, not having extensive math in the major doesn't really make any sense. In fact, very little of the major after the Freshman of Sophomore year should even be about learning to program. It's like having a B.A. of Computer Science, or a B.S. in Literature, it doesn't really make any sense and should probably best be called some other kind of major.

I've known a few folks who had these kinds of degrees and I'm not sure their schools did them a service graduating them without a proper curriculum. At most schools with C.S. majors, they have alternative majors for people who don't want to do the intensive Maths and Sciences and they're usually called something like "Information Systems" or "Computers for Business" or similar.
The Asus ZenBook Pro UX550 Could Put the MacBook Pro to Shame
Maybe not a building, but still a structure ;)
Clojure [1] seems to meet all of these criteria. It's a functional language where you can get away with using only a few data types, while also supporting (most of) the rest of the things you mention.

[1] https://clojure.org/
And the size of the Lua runtime is nothing short of beautiful. I have yet to find a use for Lua though, so I'm still waiting for an opportunity to work on something with it.
First Stone Ceremony for ESO's Extremely Large Telescope
Just to clarify - the actual url is course.fast.ai :)
The clear dip in CS is what the rest of my comment is about. The point is that the entire premise of the original post, which claims CS enrollment is "flat" by cherry-picking a specific benchmark year and ignoring huge movement between that year and the present, is indeed "'misleading with data' at best", because CS enrollment is not "flat". If you pick an earlier or later year, you get different narratives.

The post then spends a bunch of time musing on why CS enrollment supposedly doesn't respond to economic incentives, even though responding to economic incentives, i.e. rising and falling together with tech booms and busts, is precisely what the data shows it doing.

Edit: better said here, https://news.ycombinator.com/item?id=14441423
Dan nearly solves his own riddle with possible explanation No. 2: "You don’t need a CS degree to be a developer." He just doesn't spend long enough probing this issue.

Majoring in computer science is like majoring in English with hopes of becoming a writer. Or majoring in economics with hopes of starting a business. You'll get all the theory. You'll mingle with all the lifers. But because you try to come into the guild at age 18, there's a risk of narrowness/tunnel vision.

The people majoring in stats, math, physics, etc. may work on more interesting problems during their college years, or develop a more holistic sense of how to come at big new areas of learning. Meanwhile, the opportunities for non-CS majors to pick up programming skills via electives or non-classroom projects are huge.

Where Dan sees a problem, I'm seeing a healthy diversity. The U.S. is able to come up with enough software talent as is, drawing on many different pathways. Why insist that everyone be trained the same way?
If you've ever have to build packages, especially packages of complex software, then the Debian packaging framework stands out from the crowd--simple things sufficiently simple, difficult things possible, and an exceptionally well maintained policy guide to help you make decisions. All the others focus on the simple stuff, and fail at addressing the needs of unforeseen requirements or other atypical situations.

RPM is a distant second, though still far ahead of the others. But if you've ever had to maintain a YUM repository then you might agree with me that delta RPMs are evil. I still can't figure out why the YUM databases keep getting corrupted, but I'm fairly certain it's related to the deltas. But nobody else wants to turn them off.

For the record, my server environment of choice is OpenBSD. But I wouldn't even try to compare OpenBSD's packaging system to Debian/Apt. It's just apples and oranges in terms of their respective priorities and capabilities.
One of the worst things I found during my prolog courses was that authors seemed to conflate "shorten" and "simplify". We had whole exercises dedicated to taking a readable chunk of code and turning it into some godawful one liner.
> I would say that this basically screams "badly taught programming". Missing semicolon does not take down work, it just needs to be put back in and ide should help you.

The point is that the incidental complexity is there, and that it's something that has to be dealt with, to even begin to get to the fundamental part of the problem.

That you have to be using the right IDE (and learn how to use it, and learn to recognize it's attempts at helping you with the problem) does not refute the point, it's a perfect illustration of it.

CS isn't harder. CS has high incidental complexity, the crap you have to deal with just to be able to work on the problem within a real world environment.
Also, unless I'm mistaken, TypeFamilies are the relevant GHC extension here. I'm not exactly sure how this would be written differently without that
Um, what is CAPEX if not the build-out of facilities?
Very interesting, I do think that visual programming tends to work better when constrained to a small niche of computing, that's the hypothesis behind https://github.com/AlvarBer/persimmon
And if you're going to ride like an idiot, please be sure you're registered as an organ donor. I know I've heard of sport bikes being referred to as "donor cycles" (according to the med student relating it) due to the number of young bodies in relatively good shape except for massive head trauma that they saw.
Show HN: Smart Editor for Academic/Story/Blog Writers
Hello Black Mirror Episode
Cached page: http://webcache.googleusercontent.com/search?q=cache:https:/...
Or maybe integrating visual selection and OCR like Kantu: https://a9t9.com/kantu/scraping#ocr
Tokens in organizations that you think may succeed? I'm not particularly clear on details, i.e. how would you know whether a company is succeeding vs. just being a speculator's toy.
Nim does too. The exception tracking is performed at compile time.
Curious about which bit someone might find unempathetic? It all seems pretty straightforward to me.
One of the greatest privileges I had while I was in school in Germany was listening to Holocaust survivors, live on stage, speak about their and their parents experiences.

When learning about the Nazi time in history class I always had some amount of emotional distance between me and the subject.

Hearing survivors' accounts made away with that. That was when I, as a German(who had a grand-grandfather who fought for the Nazis), felt deep genuine regret and sorrow for the actions(or inaction) of my ancestors.

I worry what will happen when the last survivor dies.
I find it's used a lot in places you wouldn't expect. I found it used in a car radio, the modem used in my house, and a few other places. It's lightweight if you want to use it on embedded systems (for example, NodeMCU) if you're into that kind of thing.
I'm not sure. There are a couple of existing services that do that already, and which give you a rss feed you could then import here. But if it gets requested I would look whether it is doable in the constraints of this system - at least I remember yahoo pipes supported it, that's a plus.
Five reasons why Heroku is great after all
I think the problem is more around signatures, actually. If we can find the code, we know how to call it (libffi makes that easy) but how do we expose the library interface?

Clang modules takes some steps towards that for native code. On the JVM, everything is a Java class in the end, with Java type signatures for its methods (which can point to other Java classes, and so on) so rich cross language interfaces are a solved problem.

Other posters have raised concerns about garbage collection or "losing all of the nice features of whatever languages you're using" but I have some doubts:

* Interface definition languages like Protobuf or Cap'N'Proto actually show us just how much commonality there is across languages. They provide for many features that are fancy relative to C but not really relative to anything else; and the interfaces are definitely useful.

* Many languages with sophisticated type systems work by compiling object code and then appending an interface file to capture the type information. Haskell, Rust, OCaml and many others do this, essentially treating every module as foreign code with additional type information.

A good cross language module system would need those features that make sense across languages -- parameterized array and map types among them -- and this does mean, not every piece of Python (for example) would make sense as a Rust library. Consider the interface of the linked project, though -- only `mineBlockFrom` needs to be rethought to be typable in a way that makes sense across many languages.
I haven't seen a mention of this, but what about the rise of CS-like degrees that people have been getting. Many colleges now offer "software engineering" and related majors. In addition some colleges have recently now CS into the Engineering department. Could that be messing up the data?
The best way to manage schema migrations in Cassandra
This is one of @leafo's excellent projects. He has developed a web framework for MoonScript called Lapis. One of the cool things about Lapis is that it runs on top of OpenResty, which is a high performance web server for Lua applications. Lapis is production-ready: it runs his amazing game marketplace, itch.io.
Heartbeat – Listen to Spotify with friends
FYI the OP also created a really nice way to create persistent spot instances on AWS - see approach 2 here: http://wiki.fast.ai/index.php/AWS_Spot_instances
I know it's extreme, but Notepad. Literally and unironically; write in markdown, and it should work.
That would be best, I tried to run it for me but my needs are too simple for a full-blown solution like that. I'm currently trying to just add a tracking image to my own server so I can count visits.
*negligible
That's unfortunate. If I had to guess, I think your college probably responded to employers telling students they didn't have enough experience programming, and student alumni relaying this to the school, which might have caused them to overcorrect. What still strikes me today about my college experience is how much we didn't cover, or only touched lightly on, and the course was full of theory already. CS is a very wide topic, so it's natural that some things won't get the attention they deserve. As others have noted, CS probably deserves to be split into core and specific disciplines like engineering is. That would exacerbate the problem of certain topics not being covered, but at least you would be able to steer that to some degree so that you could go a little deeper in what you considered important.
The things you say may have been true decades ago, but are not entirely accurate today.

OK, I'll buy there's something to that. But keep in mind that students' choices aren't made purely with a clear-eyed understanding of how things are now. They are made in part based on an understanding built up over time, some of which reflects how things were when they were when growing up. In particular, parents and other advisers who have a lot of pull can easily be acting on the basis of a decades-old view of the world. So even if things are shifting, current actions could well be lagging behind.
Slamming my nerd card down so hard the whole table spins around

It's hacker news, not motivational team building shared insight news. I'd expect a GA solver which selected the four pieces which could be constructed into the tallest possible structure (with all the dirty tricks e.g. a boat hull attached to a wobbly assemblage of Giant Base/wing plates with a 12x24 brick balanced on the top), with a Speculation section positing possible future pieces which would allow an even taller structure (with plausible details of the sets & why they would need even longer pieces than those currently available).
> Anonymize/obliterate the IP/geolocation info? Override the IP field to a static value.

This might affect the IP you see in the GA dashboard, but it's worth noting that Google still get the user's IP as long as the client makes any connection to a Google server (via JS or pixel).

> you can even implement measurement protocol serverside

This is the only way for a site owner to truly get full control over what data you send to GA (while still using GA), but it robs the site visitor of the option to opt out using client-side tools like uMatrix, &c. This is the one small advantage of the rise of client-side tracking: as a visitor I can get a reasonably good overview of which third parties your sending my data to.
The premise of the article is wrong. From 2009 and until 2015, the number of CS grads almost doubled and any of those economics majors could have seen that in the graph, even if their essays are "basically bullet points" and their field is dead simple. They could also have told the blogger that causality might go the other way; Salaries are high precisely because demand is bigger than supply. If (or when) high salaries cause more people to study CS, salaries will drop unless demand rises even more.

So we have a huge increase in CS majors in just 6 years. What could be the explanation for that? I would say that CS has become both more rewarding and more accessible in the last decade.

More rewarding because with better browsers, and with smartphones, you can simply do more stuff. And those who graduated in 2009 started studying just before iPhone, before Google Chrome, HTML5. Long before Tesla and SpaceX were household names, long before we again believed in AI and robots. The field has simply become more and more interesting.

More accessible because of Codecademy, Udacity, Udemy and the rest of the bunch. 10 years ago, learning to code meant reading books that were already outdated when you bought them and spending days in frustration trying to install whatever language you had decided on. Before you did as much as a hello world. Unless your friends knew how to code or you were enrolled at an educational institution you didn't have access to tutors. Today, you can get great tutorials online, and you can learn JS, python and many other languages without the hassle of installing anything. And once you are up and running, there are a plethora of libraries, modules, frameworks and ways of deploying which mean that you can do in weeks what before could take years.
Should you feel like, there's also JMESPath for JSON http://jmespath.org
Sure, but you also don't need a big NAT Gateway if you're doing the majority of your external chatter via an ELB. Our setup is basically production load goes through an ELB, and incidental traffic goes through the default route (the NAT), so the NAT really only handles traffic like me ssh'ing in and wanting to install a tool, or config management setting up a new server.

But yes, if you're going to be sending big traffic through the NAT, a t2.small doesn't have the network performance.
I could never understand why any ecommerce company would use GA. They are collecting your user's data for ad targeting. Well, guess what? They target ads to your users for competitor's products.

You browse a site that has GA on it looking to buy a bike, then that user get hit with bike ads on other sites that host Google ads. Almost every site owner I've spoken to about this issue was unaware of it.

Server side analytics prevents this, or use an analytics package that has no advertising business.
Okay.

And your code is just very clean and approachable and doesn't try to do popular gymnastics. I'll ping you via GitHub.
Adding superlatives to your stuff is, to me, just noise. e.g: "fast", "simple", "friendly", "lightweight".

I would rather provide conclusive proof, like some side to side comparison of features to illustrate how idiomatic MoonScript is supposedly friendlier than Lua.

Personally I think the changes are not necessarily in the right direction:

For example, what if you have a typo in a variable identifier when assigning a value to a variable? Now you have a new variable. Where to look for the definition of a variable? It depends on what runs first now. That's not friendlier. CoffeeScript made the same mistake in the name of simplicity and it quite frankly doesn't add any value. The time you saved typing "local" will be now consumed several times debugging and code reviewing... and you will have to pay more attention during your code reviews.

Then, removing braces and other delimiters. That's not necessarily better either. Let's remove lane delimiters from streets, traffic signals, stop and yield signs, and let's make it all implicit based on rules you can follow in your head. See? doesn't work.
Reminds me of wine, which apparently has better luck with old programs than do new versions of Windows.
Furthermore, Safari is proprietary. Firefox is not and most of Chrome is not (Chromium).
The users who make up hackernews have voted. It do.
There was genocide since long long before WW2. Genocide is nothing new to humanity.