skysight-inc/HackerNews huggingface dataset:
I first learned Python and then much later C, and for me at least learning Python first was very motivating because you can get things done so easily, due to the built-in batteries and the wealth of external libraries. Seeing that the computer needs less than a second for what would have taken me many hours of tedious work was pretty eye opening.

Learning C later on helped me understand some basic concepts better and being able to speed up Python e.g. using Cython can come in quite handy.
Have you tried ZeroVM?

It isn't exactly a simple thing. I looked at it and got some stuff working in it a while ago, and it certainly limits what you can do.
> Proving F matches the type is arbitrary hard and is impossible to automated in general

So what?

Even proving that array indices are not accessed out of bounds within loops would be a considerable leap in the state of the art of industrial programming languages. For most cases (i.e. linear integer arithmetics), that's always automatically (dis-)provable. We have to start somewhere...
someone who loves their work so much would see their app close before scrapping the custom font to lower expenses in an effort to salvage the app.

I don't think that's strange at all. The look and feel of an app -- especially a simple tool like a notes app -- is a large part of what makes it valuable. There are many people who don't care, but they were never going to pay for an app in a category that has so many free alternatives. Those who are willing to pay are exactly the sort of customers who are delighted by the attention to detail that is exemplified by using a custom typeface.
It aligns to the brand, not the product. And "buying a Tesla" has become a consumer aspiration, so they're wise to keep milking it.
WiFi microcontroller ARM
Something I recently stumbled upon through a coding challenge was https://webtask.io/

Having used ApiGateway + AWSLambda + AWSCloudwatch, I found Webtask to be infinitey easier to use and deploy. The only downside of Webtask, for some users, is that it is all Javascript, where AWSLambda allows multiple languages.
>> However, no dynamic language can match the speed of carefully written static code in a language like Rust.

>> Any blanket statement of the form "static languages are better at x than dynamic languages" is almost certainly nonsense.

> Those two quoted statements come from the article.

I think author had in mind "ALL static languages are better at x than ALL dynamic languages" as a nonsense. He probably didn't have in mind that "A static language_ IS better at x than A dynamic language_" is a nonsense.
How many windmills and solar panels can be built before we run out of their raw materials?
i don't know whether this is true or not... maybe hongyi can comment here ;)

but a lot of personal data in Singapore is wonderfully linked up across almost all government departments in the country. all government services can be accessed through a single log-in: taxes, property, immigration, CPF (a plan similar to the 401(k)), healthcare and insurance, etc. are all on the same system.

this might mean only one point of failure in any of the civil departments is needed to gain access to a lot of details about a person living in Singapore, resident or not. afaik, few other countries have integration as tight as this, so a failure somewhere could be contained. I suspect it is more vulnerable here.
Do you avoid surgeons who seem over-qualified?
Do you avoid pilots who seem over-qualified?
Do you want your autonomous car programmed by someone who
doesn't own a driver's license?
Sigh.
Vikernes is not in prison, as you can see from his active YouTube channel: https://www.youtube.com/user/ThuleanPerspective
Not everyone has it (I don't)
There are a lot of good comments here.

First things first, the obvious depression/anxiety. I'm gonna guess it has been happening for some time now at a low level. You mentioned being criticized for being "too nice", which is one of those weird low-level depression/anxiety markers. It was tolerable then, and suddenly you have all this stuff happening. You didn't do anything to make things "go wrong", nor did you lose intelligence. It is just that your brain has gone a bit wonky right now. The brain is an organ, a body part, and body parts sometimes have glitches and you are seeing the symptoms.

But it is ok because there is stuff that helps it get back on track so that you can be you again. It is just really getting urgent right now. If it were your leg, heart, gallbladder, or pancreas (diabetes), you'd be at the doctor or ER right now or at least have an appointment with your doctor.

And that is exactly what you need to do. The first step is the hardest. You can take folks this letter so you don't have to explain it. You can go to the local ER, your regular doctor, urgent care, or a psychiatrist. Call the suicide hotline and they'll get you in touch with folks. You can have someone else drive you or make the appointment if you'd like, after telling them or showing them this post. You can email them this if you can't seem to do it in person.

The likely outcome of this is that you'll get some medication, which will help get your mind in a better state to start doing things with these problems and make it so they aren't consuming your mind in the same way. You might wind up in the hospital for a short time - this is generally a safety measure or being in the hospital after a severe injury. You may or may not get some time off work. There might be some therapy. This is more for some help working through all this so that you are better off in the future - much like you get phsycial therapy after an injury.

After this stuff, taking care of the rest of the issues will be much easier. Dealing with work, changing jobs, and those dark thoughts. It may be that you change jobs and things like that, but you can deal with that stuff one at a time once you get your brain in a place that it isn't sabotaging your view of the world.
How to successfully apply for access to EGA
The "-r" option to less will allow the "raw" control characters to pass through. "less -r" will do what you want.
> is hacker's paradise

And support engineer's hell
I play poker, and if there is one thing poker has taught me, it's that success is almost always a mix of skill and luck. In the short term luck dominates skill. In the long term it's the other way around. The kicker is that bad luck in the short term can preclude the long term skill effect from kicking in, because if you go bust you can no longer compete.
I'm sorry if this is a bit offtopic, but I wasn't aware that we can DM people on HN
Plus, `more` as a pager command at least makes a tiny bit of sense, but `less` is a ridiculously obscure command name for beginners.
The title is misleading and false to some extent.

We had this debate when the new just broke a few months ago and many people simply assumed that public servants cannot surf Internet during work. This is not true, and it was pointed in the article as well:

> Public servants would still be able to surf the web but only on separate personal or agency-issued devices.
From the guidelines:

> On-Topic: Anything that good hackers would find interesting. That includes more than hacking and startups. If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity. [emphasis mine]
Is it just my feeling or are there languages which are preferred on HN?

Indicators for languages which are liked by the HN community:

- Positive stories get many upvotes and are instantly at the top of HN

- Most comments are positive

- Frequent coverage on HN about the language

Indicators for languages which are not liked by the HN community:

- Rants get many upvotes and are instantly at the top of HN

- Most comments are negative about the language

- Rare coverage on HN

Applying those indicators, following languages should have these like-levels (on a range from 1 to 5):

Python *****
Go ****
Node.js *
C#/.NET ***
Java ***
RoR **
Ruby ***
Elixir ***
Haskell ****
Closure ***
C ****
Rust *****
C++ ***
PHP *
Swift ****

This is just my feeling, happy to hear your perception. And this does not reflect my opinion about those languages in any way.
Nobody will hide away from PVS-Studio: MSBuild bugs
Facebook AI, LinkedIn, Open Source, Node.js, Python, and Ruby Highlights
Why you shouldn't learn Python:

1. In-consistant syntax.

2. The language uses exceptions to control flow of logic.

3. Divided community, since Python 3+ included breaking changes to the standard.

4. Un-discoverable APIs. You better hope the documentation is bulletproof else the API could change in any which way during runtime.

5. Poor error messages. If an import goes wrong you are not told why, and so on.

6. Ultimately slow performance for anything marginally complex.

7. Poor tooling.
doing simple "df" "du" "find -exec" it still complex/verbose TODAY using powershell , I find disgusting that you compare bash to powershell (I'm not even talking about speed)
That's surprising! So which are the languages you use (I'd expect to not know any of them :-))
London 2012:

He said: "You probably wouldn't be walking in with a Pepsi T-shirt because Coca Cola are our sponsors."

Interviewer Evan Davis asked Lord Coe if he would be able to enter the Olympic Park wearing Nike trainers, to which Lord Coe replied: "Let's put some reality in this. You probably would be able to walk through with Nike trainers."

Lord Coe defended the ban on 'objects or clothing bearing political statements or overt commercial identification' outlined in official guidelines for spectators.

http://www.telegraph.co.uk/sport/olympics/news/9414178/Londo...
Until the known good session does a small check over the internet and re-downloads and force reboots.

I wouldn't be surprised if Microsoft put in code in Win10 that silently waits for an external condition (say, an HTTP response) such that the system seems "good" until then, and upon the condition renders your system unusable (at least in the way you want it).
That bug exists because it's written in a language where + is permitted to silently do surprising things, for reasons that made sense as a performance optimization for general-purpose computers in the '70s and embedded systems in the '90s (the original target of Java) but do not make sense for general-purpose computers today.

Better languages are possible. Provably correct software is possible. We really can eliminate bugs.
The Strange Birth and Long Life of Unix(2011)
I'm working on my own time-series database server here - https://github.com/akumuli/Akumuli
The most limiting factor is not the query language or network its a storage engine itself (and not the HDD/SSD write speed). I've discovered that write speed in akumuli is limited mostly by compression algorithm speed and parallelization. Solution above is bad because they're have only time-based index. It's impossible to read only one time-series without decompressing entire chunks that contains a lot of data. This solution is write optimized but it will introduce a lot of read amplification. It's not suitable for interactive applications. I've done the same mistake too but moved away from this design.
even tho the commands mentioned above aren't bash built-ins
Same in France, probably most of Europe actually
Always fun writing compact Python:

import sys
from collections import Counter

cnt = Counter([n.strip() for n in sys.stdin.readlines()])

for key, val in cnt.most_common():
print(val, key)

This isn't just playing code golf, it goes with point (2) - awesome libraries. One of the joys and curses with Python is finding the Pythonic ways to do things that you've hamfistedly written your own way for months.
Call me ignorant, but I agree. Having something like __init__ and __new__ is very confusing for a beginner, along with stuff like "__init__.py".

It doesn't stop there: Take something like __str__ and __repr__ combined with str(), repr(), vars(), dir(), print(), pprint.pprint()... I have no idea how anyone ever thought it was a good idea to have that many ways to output the content of a variable. Even after all the time I used python I never managed to find a consistent way to output variable values.

I generally like python as a scripting language. But stuff like this made me constantly lookup obscure details in the documentation which made it very hard for me to completely embrace the language. It also prevented me from diving into more arcane stuff like meta-programming...
So what might make dynamic languages easier to write in? I enjoy dynamic languages more because:

* "double kilometerToMiles(double km) { return km / 1.6 }" here the types are of really low value, yet I have to type them in.

* a mutable list of generic and variable arity event handlers. Really hard to specify as a type (most languages cannot do it). Really easy to use.

* co- and contravariance and lists, the math works exactly opposite of intuition.

* when you change your mind on the types/arity beyond what your IDE can follow, it is a lot of low value work

* if your test suite has 100% coverage of arguments/return-value and field usage, you have type checked your program.

If I am going to write down types, they better be of value to me. Like types that are null or non-null, or tainted (from the user) or non-tainted. Or two numbers that are kilometers vs miles. Or only accessible under a certain lock or other preconditions. And be flow sensitive (kotlin style null checks), not make me write even more code.

But if you are a dynamic language, do be strong typed (no "1" == 1). Also be dynamic in arity, that is (part-of) a type. Don't be handwavy scoped, lexical scoping is probably the only predictable way to do scoping. Fail fast, like prevent spelling mistakes for non existing field names for example. And allow this to work: "2 * Vector(10,10)".

And from that perspective there is still quite some room for improvement in all classes of languages, I suppose, and good that there is lot of movement and experiments today.
I had to deal with many sizable codebases of legacy code over the years and even answered a similar question once on StackExchange. Apparently people liked the answer: http://programmers.stackexchange.com/questions/155488/ive-in...

The question was within a somewhat specific context (team of scientists, visual programming environment, etc...) but I use the same approach for all projects. Never reached 3M LoC for a single projet or system component though. More like 1.5M. Anyways, that process works for me. Maybe it does for others.
> Restarting a modern windows PC these days just takes a few seconds, its not a big problem

> It takes my surface pro 4 about 3 seconds to go from off to logged in using my face

And what proportion of Windows users in the world have SSDs, latest-gen Intel processors, and Intel RealSense cameras?

And even being okay with the time it takes to reboot, it is not okay to have all of one's work suddenly interrupted by an insolent piece of software (that is supposed to be working for the user).
I personally find that being leftist implies that one is more open towards a more global view of politics (instead of the nationalistic approach).

Also I find that Facebook thinks that Obama fits in that set, ridiculous.
Yes, scientists programming skills (as averaged over population) suck. Factor 1: Programming not credited in itself or reviewed in publishing process. Factor 2: Often little education in or focus on programming, relative to wall clock time spent doing it.

But I don't think that is only fixed by more education and making scientists behave more like programmers. I think that to change things one also needs far better alternatives than the options available today, so that people are really encouraged to switch. Somehow, these must be written by people who know their CS and can write compilers, yet engage with the why scientific computing is a mess on the tool side too, not dismiss it as laziness.

I started out as a programmer, I have contributed to Cython, past two years have been pure web development in a startup. So I know very well why MATLAB sucks. Yet, the best tool I have found myself for doing numerical computing is a cobbled mess of Fortran, pure C, C/assembly code generated by Python/Jinja templates, Python/NumPy/Theano...

The scientific Python community and Julia community has been making great progress, but oh how far there is left to go.
Four Big Banks to Create a New Digital Currency for Inter-Bank Transactions
If you pay coders to code, they will give you code, and if you track performance based on their output, the code remains to justify their cost. And it's just hard to delete good work. So everything grows in businesses that hire tons of (good) coders. Pay them to refactor it and they'll do that too :)
My wife works at the virology lab of a local hospital. They do a lot of validation and quality controls. However, when she started there, all their statistics were calculated by hand using approximate equations which were supposed to make it doable using a simple calculator. Whoever had set this up lacked a strong understanding of statistics. Still, this procedure had remained unchanged since the eighties and no one knew how or why it was supposed to work. Going back in old records, my wife found that there were a lot of errors in the recorded results.

She spent a while setting up a simple Excel sheet into which they enter all test results and now all the statistics are calculated automatically using proper methods.
And you can actually ditch the list comprehension and put it directly in the function call!

Counter(x for x in y)
Writing down the types isn't a necessary property of static type systems. In Haskell, F# or (OCa)ML, you almost never have to actually mention any types.

I do agree that Java-style types aren't of much value. That catches few errors at significant cost.
Kickass python developer wanted to Stockholm Sweden
For all its virtues, I feel introductions to Python tiptoe around a very important topic: yes, Python is nice and easy, but you'll have to program the Python way too.

Try running a nested loop on a non-trivial example, and you can end up spending minutes in what would take milliseconds in any other language. If you want to program in Python, you must get used to the functional paradigm. Not "should", "must".

Now, I'm all in for bringing more functional programming into daily life, but I find a bit dishonest that beginners are not told about this. My first serious program took about a week for a task, and shaving that time down involved a lot of pain changing simple nested loops into multiplications of Numpy matrices. There was a lot of caching too. I have no idea how someone without a CS degree would have dealt with this.
I think you underestimate the complexity of things that happen under the hood or simply out of sight: back-office apps, integration systems for data import/export, backups, alerting.
I'm not so familiar with Yelp, but I'd bet they're interfacing with a crap load of additional stuff, including probably in-house tools to follow leads, facilitate reviews, handle their ad programs, etc...

I've commonly seen codebases explode the 1M LoC mark. Not necessarily for a single component, but if you have multiple systems interfacing with each other it's really quite common for business applications. That's obviously excluding libs.

Frameworks are a bit responsible for this in my opinion (note: not saying frameworks are bad, but it's a side-effect), as you'd often either have some additional configuration, boilerplate code, or generated code.

Also, it your application is long-lived (think decades), it's even less surprising: new engineers come and go, and it gets harder and harder to touch the things that were maintained by the previous key-holders... So you had a new stone here and there, polish a turd here and there, but you don't really untangle the mess that sits right at the middle, because it's just way too dangerous (or so you think). And it goes on and on. And it's aggravated by the fact that, as the project grows larger, the barrier for entry for new developers get higher: it takes longer and longer to understand the system/platform in depth, and many never even try to get there.

Processes and security concerns affect this too: you're often only allowed to fix something which has a ticket assigned to it, originating from a business user. Touching anything else is a big no-no, as it would mean QA has to re-test all the things that could be impacted. Of course we can argue whether that's actually the case and how proper testing would mitigate this, but you see my point...
Does your service do the matching and hosting of files on an internet-connected machine? How do you ensure confidentiality?
FWIW the Counter line can be simplified slightly:

cnt = Counter(n.strip() for n in sys.stdin)

* no need for a list comprehension, a generator expression will do

* file objects are iterable, and iterated line-wise
It's everywhere these days. That would be very naive to expect from NoSQL 'inventors' to be familiar with IBM IMS and ADABAS, CODASYL Data Model, the history of pre-relational databases, or at least MUMPS or GemStone/S.
Node.js is a JavaScript runtime, not a language. Used for server-side JavaScript and web frontend build pipeline.

Replacing Node.js with JavaScript doesn't help either as the frontend vs server-side vs npm ecosystem vs es2015 becomes a loaded question .)
It's like riding a bike in a skate-park with a small sign saying "No bikes".
Problem is, since everything accessible via this single log-in is by definition open to the public Internet (because otherwise citizens can't use it), cutting government bureaucrats off the net does precisely nothing to reduce this attack surface or secure this data.
Also limits chances of conflict with user-defined code.
9 practical business reasons to segment your SaaS feedback data
EU-FOSSA KeePass code review: Call for contribution
Did you set the Windows partition to automount in `/etc/fstab` in Mint?

That would make Mint think that that mount is part of the system, and since the system isn't entirely available, the boot cannot proceed.

I suggest you add `nofail` to the mount options, and `nobootwait` on older that Ubuntu-16.04-derived Mint (doesn't run systemd) and `x-systemd.device-timeout=1` on Ubuntu-16.04+-derived Mint (should run systemd)
The problem is less that we have fossilization and pointless cruft around basic utilities, it's more that the replacements are written by people with a sense of humor, and their sense of humor is distinctly punny.
Name a single language that covers all those things and has a pretty syntax.
My dream is to go to work ~2:00 every day. My sleep cycle is pure hell otherwise.
I don't think it's that bad. This is one of the cases where your usual ignorance towards new/different things is pretty effective.

At least for me personally, 'less' was what I always saw everywhere being used, and had used myself many times before I discovered that 'more' was a thing.

And when I discovered 'more', it took me maybe a minute to figure out that it's pretty much exactly like 'less', but that I didn't like it as much, and with everyone else seemingly agreeing on that, I didn't put any further thought to it.
"Mainframe" in a modern sense is the Cloud - especially 'private cloud'.
> On top of that, once you operate world-wide, you'll learn the joy of differences in addresses. Does a country have states? Zip codes? If so, where does one specify them in an address? If you want to localize that in your app (in yelp's case, people may want to show an address to a taxi driver. For that, it would help if the address followed local conventions) line count skyrockets.

This is not the first time this issue has been faced. Why would they reinvent the wheel instead of just using libraries and conventions?
They provide lots of references to scientific articles, so I'm not sure why you would call this pseudo-science.