skysight-inc/HackerNews huggingface dataset:
12 years. It's all been very usable for 6 years. So you had 6 years to use the six or python-future lib, and 6 years to remove it. 100k lines, it's a 2 weeks job if your code is properly tested. It's quite ok given python is 25 years old and asked for it once.

But good news, you don't have to do it. Python 2.7 will still work after 2020. We, the community, will just stop working on it for free. You can start paying us, or do the job for free like we did since 1991.

You can also migrate to another tech, but they will break things as well, and they won't give you 12 years to move. Ruby and node gave 2 years. Node forked 2 times. And it's a google based tech.

I'm tired of hearing complains, given how good you have it.
On what basis are you claiming software engineers are not engineers? What constitutes being an "engineer"?

For the record, the National Counsel of Examiners for Engineering and Surveying, which is the US body that regulates engineering licensure and "Professional Engineering", recognizes Software Engineering as a branch of the engineering disciplines:

https://ncees.org/engineering/pe/software/

"Professional (Licensed) Engineer" is not typically used in software development, but if you care about having this credential, you can become a credentialed Professional Engineer in Software Engineering.

Google defines engineering as "the branch of science and technology concerned with the design, building, and use of engines, machines, and structures". An engineer is "a person who designs, builds, or maintains engines, machines, or public works". Software engineers certainly fit that definition from my perspective, because software is a type of virtual or abstract machine.

Software engineering certainly qualitatively feels like other branches of engineering to practice, such as electrical engineering or computer (hardware) engineering. I've never designed a structure, but I imagine the principles are the same: understand the requirements of the customer or sponsor; devise a design that accomplishes those goals within the constraints of the medium you're working with, using principles of scientific reasoning to evaluate what is possible and whether a design will meet your needs.

Last but not least, software can be just as critical to human life and safety as the artifacts designed in other kinds of engineering. (But being critical to health or safety is not a prerequisite for something to be engineering. It's still engineering if you're building a rocket that only robots will fly on, after all)

There may be people whose work on computers does not constitute software engineering. Running some calculations in Excel is probably not engineering. But I think there are plenty of us who build large scale systems that need to operate with high availability under demanding requirements, the properties of which need to be painstakingly planned and analyzed and sometimes mathematically proven -- we who are trained as scientists and engineers, and who apply these principles in our work -- many of us consider our work to be engineering, and consider ourselves engineers. I certainly do.
I have dual 4K 27 inch IPS monitors (DELL U2718Q) and of all the setups I've tried this is the best one. Sufficient pixel density (163 PPI) for code to look crisp at any font size. Narrow bezels, so ultimately not much head turning is needed while at the same time having maximum screen real estate.
Oh. That exists?

I still don't see how that would be a problem Debian should consider in their considertions around SSL. After all, if your server's upstream is blocks access to Let's Encrypt servers, why are you trying to operate an official Debian mirror there? What's the point of having a Debian mirror connected to such a shitty upstream?
Man, Verdana gives me flashbacks of late-'90s messing with html. If it hits the typical 20-years fashion rota and gets cool again, I'll feel really old. It's the flannel shirt of fonts.
Research suggests that we value relative wealth more than absolute wealth. [1]

This means that inequality is important for social stability - does social stability matter?

There are possibly other reasons as well - you could argue rich people invest differently, which has implications for the global allocation of resources. [2]

[1] http://science.sciencemag.org/content/318/5854/1305.full?ijk...

[2] https://www.theglobeandmail.com/investing/globe-wealth/artic...
Spend 60% time on architecture /documentation. 25% time implementing and 15% time testing. Most people will insist on death by testing but do not let it take the soul out of solid groundwork.
I am no expert but I tend to read a lot of studies and interviews/talks with Phd's regarding fitness, and the consensus is that the most important predictor for muscle growth is volume (time under tension). That is, the longer your muscle fights the load, the more you grow, provided you have sufficient nutrition and rest.

Everything else (time of the day when you work out, number of repetitions / series, specific exercises, etc) is secondary and seems to only matter insofar as it allows you to stay more time under tension...

So I'd be VERY sceptical of anyone who claims you can have great results in X minutes a day.

With that said, it takes very little time under tension for a newbie to stimulate growth. But that effect doesn't last for long.
> our landlord does have a physical copy of the key to our house. I

This should only be acceptable in the case where your landlord is also your property manager. If they're not, then your letting agent should have a copy of a key.

On the 24 hours note, in 8 years of renting in the UK, I can only remember one instance where I was actually told 24 hours in advance. I was usually emailed at 5pm saying "hey, we have someone coming around for X tomorrow at 9:30, we will let them in". I told them no but they still came every time.
Rust: await syntax
Interview with Software Developer Andrei Gaspar – A Hacker's Day
If you care security, you update often.

If you update often, the changeset should be small.

It is easy to match in the small set.
Horrifying. I hope she ends up winning a case on this. Even if it is just to get to move out early for free at least it's something.

But wow. I'd be doing the same as her if this were forced on me. I love IoT things. But I draw the line at door locks. Physical security is already difficult enough. I'm not adding more attack vectors to that.

Not to mention the data exfil that will most definitely happen with that system. I'm confident that even if the lock itself ends up being secure that the data that gets given to the landlord won't be protected at all.
Generally nginx is written in C which simply performs better than garbage collected, dynamically typed javascript.

But regarding sending static files, nginx uses Linux' sendFile[0] which outperforms anything in user-space.

Up until a few years ago this wasn't something Node could use. I'm not sure if still that's the case though. My information could be badly outdated.

[0] http://man7.org/linux/man-pages/man2/sendfile.2.html
an academic talking about innovation, that's my favourite kind of people. He probably never invented something. Its like someone talks about architecture but never build a house. He has now skin in the game.

ah, doing "consulting" does not count. Why? https://www.youtube.com/watch?v=rp6_3UQLi2Y
On breaking code up into small functions
Transaction tests in Pytest
Well I'm sure as a senior dev he has some sort of idea. Certainly joining someone else's startup as a cofounder would be legit.
I've done that sort of work. Eventually you realize that nobody notices the guy who tracked down and killed that vexatious heisenbug in the legacy code base. You need to be working on the new, shiny, high-visibility projects or your career is going to stagnate.
> GUIs represent a machine’s internal state, but that representation is often misleading, especially to users who take it literally.

And that's largely fault of the developers, since they build on layers upon layers of utility libraries, which are not exposed to the user but inevitably pop-up in the form of a broken metaphor or unintelligible error message.

User-facing systems should be defined around powerful data&workflow metaphors, and all the layers in system built around supporting those metaphors in coherent ways.

There is a tradition of people trying to build user systems around simple concepts, easy to combine (starting with Memex, then Smalltalk, Hypercards, and nowadays with mobile OSs). But there's always been a great deal of friction in adopting them:

- first because their experimental nature can't compete with the more polished nature of commercial systems based on legacy conceptual metaphors;

- and second, because up until recently, end-user hardware was not powerful enough to support the complex graphical and computational requirements for the heavy environments required to support these novel interfaces.

Now that computers are powerful enough to build novel experimental interfaces on top of all the legacy libraries required to run generic hardware, we're starting to see again a lot of experimentation of those system-encompassing alternative metaphors for interaction.
Lille's subway is "driverless".
Quality usually differs by region? West vs East Europe Chocolat comes to mind.
>> "hey, we have someone coming around for X tomorrow at 9:30, we will let them in". I told them no but they still came every time.

Then they were breaking the law, and almost certainly the letting contract. The only question is whether you want to do anything about it or not(legally) - most people don't want to go and fight with their landlord over a repair happening with less than 24 hours notice.

I only had to do this once - our landlord wanted some work carried out in less than 24 hours from telling me and I said ok, but you need to give us at least 24 hours notice, come back the next day - and they did.
For those interested in Dijkstra, this website has a lot to offer: http://www.dijkstrascry.com/

I also followed some lectures given by the guy that runs that website. Apparently Dijkstra was not an easy person to get along with, there are stories of him being bored during some lecture, walking to the front, and laying down for a nap. (Sorry I can't provide a source, it's basically a rumour among academic staff here in Belgium).
If the attacker can MITM you, he can block your access too.
Or if you want something with zero set up, use Spectacle https://www.spectacleapp.com/
It's not fud. I hurt my back several times because I didn't realise I didn't have sufficient flexibility to do these lifts safely. Now years later, hardly a week goes by that I don't see people doing these lifts badly.

Your answer is a bit like the old joke: "Patient: doctor it hurts when I do this. Doctor: well, then don't do that".

The reality is that while these are great exercises, they are exercises that are easy to do badly, and that lot of people do badly without anyone ever pointing it out to them, because they think they know them and don't ask for help, and often people don't realize what the warning signs are.

To point out that there are risks with these exercises is sensible, and not FUD, because you can seriously harm both your back and your knees with them if you don't make sure you learn them properly, and a lot of people start out with insufficient flexibility to be able to do them properly.

I've done heavy compound lifts for 15+ years now, and my knees and back are stronger than they ever were before I lifted, but I also did manage to hurt my back when I first started, because I thought I'd learned how to do it properly but hadn't, and nobody corrected me, and I lacked the flexibility to even have a chance of doing them correctly. Thankfully I didn't hurt myself seriously, and took the opportunity to actually sort out the problems, but not everyone gets that lucky.
I think your key point is less that testing is easy than you should let the candidate prove their worth in their own way. This sounds key to me. Your original quote is… yeah, “easy” happens, but it’s not always elementary.

Testing a candidate is actually very candidate-dependent, I found out; however, it is a lot less hard when you let the candidate pick their own approach (and you supplement it subtly). I found it easier than most interviewers who tend to do scripted, one-size fits all tests.

I always ask candidates to talk about what they’ve done (I’m in data science, so university projects typically can be relevant for day-work; standard CS might not be so lucky). If there are omissions, ellipses, I might prod a bit.

The best candidates can easily juggle between business objective, method, architectural and technical choice, how they scaled a release into marginal improvements from prototypes to a full-fledged platform. It typically takes me one question, two follow-up and 10 minutes to know they are strong. From there, I can shelter them from more technical tests, or at least apologise for the process; ask if they are comfortable with white-boarding, etc.

The worst candidates are not that different: they can sweet-talk their way, but might not be able to scale up or down abstraction. You can prod from them if they are comfortable receiving feedback (based on how they react to you re-framing the question), their learning style (based on how excited when I ask details about specific implementation).

If you are uncertain, which remains most candidates, I like to put them in front of what I have been working on recently. It gets Legal a little nervous (it really shouldn’t) but it puts them in a rare but effective situation: I might not know as much as they do. I probably have had more time to explore, but no idea that they suggest, I can dismiss: either I had the same or it’s new to me and worth trying. I’m not the most structured worker, so I often have a bug, something that could be improved but it’s a priority, some high-level conceptual concern, etc. I make sure that they go for something that excites them or the problem that I’ve identified earlier.

I rarely need more than an hour to have a clear idea, including data preparation.
Cloud Computing: an integrated part of our lives
The cited study specifically says that muscle growth (hypertrophy) does improve with volume, from 1 to 3 to 5 sets, but that strength gain doesn't differ significantly. There's a lot of conflation between hypertrophy and strength. You can be strong without being big (up to a point) and vice versa.
Using the “triggered” buzzword to signal that this is another frivolous SJW anxiety, and yet this is not SJW related at all.

This is a ligitimate security issue, since internet-enabled locks are never going to be secure enough to trust your life with, and even if one brand works well, most landlords will not be technically equipped to sort the differences out on there own, and will wind up deploying these locks before expert researchers can evaluate them.

Working resonably-secure locks or not, what happens when the mothership goes down? When the domain gets hijacked? When wi-fi gets jammed? When wires get cut.

Really sophisticated two stage attacks are being used on car security systems already. Step one, damage the internet link and wait. Step two, when the link is down the car’s security is defeated, and may be safely stolen.

Oh look. Another buzzword. Get gaslighted.
>our landlord does have a physical copy of the key to our house

The practice in Turkey is to change the lock as soon as you move to your apartment. And most of the time landlords say "I don't want to be accountable if someone enters to the apartment, thus change the locks as soon as possible". And even though the landlord owns the property he is not allowed to enter to the apartment, there is a specific law for that.
Yes, but that lower abstraction level also meant that much less people was able to use those systems.
It seems like pretty normal Twitter style?
Yeah, we've been shipping Eizo monitors with our Baselight systems for the past 10+ years.
>Coincidentally, I wonder if the license allows it to be downloaded and installed on other OSes, like the old "Microsoft core fonts" package that included Verdana.

It doesn't look like it.

The Microsoft core fonts EULA (https://web.archive.org/web/20091208063245/http://www.micros...) says things like:

> You may install and use an unlimited number of copies of the SOFTWARE PRODUCT.

> You may reproduce and distribute an unlimited number of copies of the SOFTWARE PRODUCT; provided that [they're verbatim, include the EULA, aren't distributed for profit]

> You may not rename, edit or create any derivative works from the SOFTWARE PRODUCT, other than subsetting when embedding them in documents.

> You may permanently transfer all of your rights under this EULA, provided the recipient agrees to the terms of this EULA.

So you can distribute and install them. You have to take some care, but you don't need to involve Microsoft, and you're not bound to the systems they were originally intended for.

The Verdana Pro license (https://www.microsoft.com/en-us/servicesagreement/#STANDARDA...) says things like:

> You may install and use the application on Windows devices or Xbox consoles [...]

> [You may not:] Work around any technical limitations in the application.

So it's very limited.
Just what we need from a platform known for manipulation of users: For them to enter the field of politics.
I think there are a couple of problems with the "rising tide floats all boats" argument.

> My only metric is is it getting better on average for me and other people

This might be true for you, but may not be for all. Research suggests that on the whole people value relative wealth more than absolute wealth [1] making inequality an important predictor for social stability, a prerequisite for a capitalist system based on property rights.

> I hope capatilism lasts another couple of hundred years and everyone gets to level 3 or 4

As other comments have pointed out, it looks as though an economic system predicated on permanent growth - or even a particular rate of growth - might have some limits. It seems like it's not sustainable with our current level of technology.

[1] http://science.sciencemag.org/content/318/5854/1305.full?ijk...
In my experience, the number one reason to NOT stick with plain HTTP would be "transparent" shared caching proxies which cache older copies of files long after they've been replaced on the server, cache incomplete downloads as if they were complete downloads, and misbehave in several other annoying and hard-to-diagnose ways. By using TLS, these broken middleboxes often can be bypassed.
Apparently there used to be trillions of oysters in the area. Turns out humans were the predator.
If each file were padded to the nearest MiB, the total download size of the packages containing the nosh toolset would increase by almost 3000% from 1.5MiB to 46MiB. No package is greater than 0.5MiB in size.

I am fairly confident that this case is not an outlier. Out of the 847 packages currently in the package cache on one of my machines, 621 are less than 0.5MiB in size.
What to chooce? Bitdefender free or Avast free?
Please help to chOose a software for my PC. Bitdefender free or Avast free?
I'd guess that most people who value typographic nuance and clarity find Lisp's lack of concessions to syntax makes reading code an extremely clunky experience. I think Lisp's (lack of) syntax adds up to a set of tradeoffs that actively repels visual thinkers/typography folks, compared to Miranda-style syntax.

NB Haskell folks are not any more likely than Lispers to think visually. A lot of Haskell code is difficult to read. But it does feel like the Miranda-style syntax (particularly pattern matching) has made the first few steps towards eliminating unnecessary structure-related cognitive load on the programmer.

Lisp partisans will probably reject this opinion, but IMO the presence of strings of matching parens in Lisp isn't something that needs to be restyled with a better font, it's something that needs to be designed out of the language.

Edit: I know this ground has been well-covered in the past. Usually the advice is that by using a proper editor and relying on indentation, parens just stop being a noticeable problem. Whether just restyling parens is cosmetic or not, it seems less powerful even than that advice.
I'm afraid I can also only offer anecdata. Mine is based on hiring and then working with dozens of SW engs since 2008 (my first tech lead role), plus our student Incubator and open source projects (dozens of more junior devs).

The correlation between emphasis on simple, elegant design and code and algorithmic chops is indeed uncanny.

And I'd add "clarity of articulation" to that -- being able to express your thoughts and the problem/solution structure clearly and succinctly is a great indicator as well. Huge overlap with both code maintainability and algo quality.
An engineer gathers requirements through a formally defined process and writes a formal engineering specification which translates those requirements into actionable norms. For example: "server operating temperature shall be between -40 and +70 Celsius at 400 m above sea level and the power supply shall operate at Voltage between 110 to 240 Volts at either 50 or 60 Hz with peak load of 35 Amperes". Or: "the program shall support following options", with a detailed specification on what those options do and how they will do it. Or: "the software shall respond within 25 ms of receiving the request on port 4096. The protocol used shall be TCP". RFC documents are often good examples of system engineering and architecture.

Simply knocking in a program as a code monkey or hacking haphazardly on a program until it works in some way which isn't formally defined isn't an application of scientific theories in computer science into a practical product, which is what defines engineering.
Not really true, though. 280 characters makes for an OK sized paragraph.
Plague is lack of bike lanes and cars, not scooters.
Optimize all the things. Noto Sans is my current favorite.
And how exactly do you propose to solve this issue? The only reason these threads even get a liftoff is that of Twitter in the first place. A random blog post just doesn't get the same traction unless your blog is established, and a new platform is unlikely to work just for this one specific use case.

I don't mind the format as much as I mind typos and uneven thought, but that's an entirely different issue.
Nice, but I miss the more fundamental series of 3Blue1Brown like "the essence of linear algebra" series, the "essence of calculus" series, and the unfinished "deep learning" series from more than a year ago

Shame that this awesome visualization method he uses isn't used more for more fundamental concepts to learn from the ground up rather than specific puzzles like lately, I learned a lot from the "essence" series!
This is a really cool site, thanks!

It also helped me understand something about the font sizes that always puzzled me (but never enough to actually look it up).

All of the fonts there have the size of 16, but some are clearly bigger than others. Compare e.g. Inconsolata and Meslo:

http://app.programmingfonts.org/#inconsolata
http://app.programmingfonts.org/#meslo

Having them side by side, you can see that they contain the same vertical amount of space. Inconsolata's glyphs are smaller, but they're still in the box of the same height.

It does seem that the "font size" only refers to the height, though. The width is clearly variable.

To anyone who actually understands this properly: is the above correct or is that just an artefact of how the website renders the text?
No, older interfaces were designed to expose as much as the available functionality in the system as possible.

There was nothing in common widget libraries or development processes that helped users learn how to operate the system. Merely exposing all the functions is of no use if you don't already know what's their meaning and how you're supposed to use them.

People learned more those days not because the interface made it easy, but because they had no choice if they wanted to use the system at all.