HN user

74ls00

65 karma

Software Engineer

http://www.rlamacraft.uk

Posts0
Comments50
View on HN
No posts found.

I’m sorry but this comment just highlights how mind bogglingly bad we in tech are at documentation and knowledge transfer. The very idea that a single project can only survive as long as the same individuals are working on it is insane. For hundreds of years architectural projects have outlasted the original architect. Or just look at civil engineering: transportation networks, utility infrastructure, etc. The idea that every project must bring on a high schooler to maximise the longevity of a project before we have to start over is ludicrous. Our tech stack needs to prioritise stability, we need to learn how to document from our friends in other disciplines, our funding models need to expect smaller returns over much longer timescales, and we need a culture of celebrating those who do the tireless job of maintenance.

I agree. Sometimes I'm prototyping something or feeling my way down one possible implementation -- it's a lot more efficient to go deep in one area of the codebase and come back to fix up everywhere else later once I'm sure this is the right trajectory. In my day job, I use Flow.js which gives me this and I'm a little hesitant to give that up, given there's no many static type checkers that work this way.

Lots of mine (like git and vim) have already been mentioned, so here's some different ones

The Elm compiler, for giving me a welcoming on-ramp into functional programming. It's not the best nor my favourite, but its by far the most beginner friendly and is worth all developers learning for how it changes the way you think.

ed, whichever implementation you chose. And that's precisely what I'm thankful for. It showed me (via Michael W Lucas's book) that a software program can be fully specified, that you can have the entire spec in your head, and that you can just pick up any compliant implementation. So very refreshing.

What are you talking about? Of course they do! Try performing any of the operations listed in this article, or making a reply to this comment, by only twiddling the state of the transistors in your CPU.

Several years ago, to learn about machine learning, I wrote an algorithm that learnt what the best links in a Wikipedia article are to click in order to find the shortest route between two random articles. The answer was pretty much what you’d expect: top of the article, see also section at the bottom, first paragraph of each section, and then the rest of the article

It's only tangentially related, but I just wanted to say that being able to programmatically hack around with the minecraft world via python on the raspberry pi is what first made programming fun for me. I distinctly remember building a binary clock; actually writing code to achieve something I wanted rather than some arbitrary class exercise

I've recently taken up basketry for much the same reasons, but it has the added bonus that you don't really need any special equipment and the cost of materials is pretty low. Just so satisfying holding a thing in your hand that software just doesn't have.

Yes, going back and understanding why something broke/has changed is incredibly valuable. Often it's not because of one singular decision but a collection of decisions over time that resulted in some behavioural regression. Being able to easily hop through all the commits of the recent past is incredibly valuable for me to understand how we can prevent such errors in the future, not just patch over the current one and move on. Fixing things without considering how we got here I tend to find leads to messy code; extra checks and assertions that aren't necessary if one takes the time to update the underlying assumption or modules that end up too tightly coupled because an extra bit of logic is added to fix that one bug.

Obviously it's possible to go too far; not every commit needs an attached essay. Many of my commits are just "fixed typo" or "added unit test for X", but then sometimes I'll write a short paragraphs or two explaining my rationale, referencing the commits that came before

I find this debate interesting, but I can see this argument being used by both sides. Is your point that you don’t foresee external issues by buying like the supplier going under/the product becoming unmaintained or that you don’t foresee internal issues by building like some critical security oversight?

The main thing I’ve never understood is why online voting is even desirable. Even if it were as secure what’s wrong with going to a polling station? If it’s inaccessible to many busy people then let’s make it a public holiday. What problem are we trying to solve?

Precise means lots of fine-grained information; accurate means close to the truth. If the weather is 20° exactly and one thermometer reads 20.2° and another 20.562° the first can be described as more accurate and the latter as more precise. Hence the expression, “precisely wrong”.

From the long term view, it seems reasonable to assume that the high economic growth rates of the 20th century are not going to be something we’ll see again anytime soon. An environmentally-sustainable economic outlook for the future is likely to see long period of close to 0% growth, and more frequent periods of negative growth. Environmentally-sustainable economics seems like a net positive for society, and at this point, an almost necessity.

I do - assuming there’s actually something to show off then I put it up. I have static websites only half full of content, repositories with just an assortment of scripts and configs, libraries that are just enough to meet the use case, etc

The Second World War is certainly the most tumultuous time in Japanese history but it was still an era of relative stability when compared to civil wars, revolutions, and invasions in most parts of the world E.g. the monarchy prevails

Whilst I have no doubt that computerised spelling checking is standardising spelling, this has been a trend going back centuries. As writing has becoming more widespread, spelling and grammar has become more fixed. Shakespeare signed his name about a dozen different ways and the spelling we all agree on today only became standardised about a hundred years ago. Essentially, I don’t buy the argument that there’s something special about the Internet, it’s just that as widespread communication becomes more ubiquitous, the variability in that medium reduces - be it languages, vocabulary, grammatical style (I’d be interested to know if anyone has done a study into accent homogenisation).

My gut feeling is that as a species we are reducing the total variability whilst accelerating the change along the increasingly standardised forms I.e. I don’t think a US-UK English split would occur today but we are adding new words faster than ever

You make an interesting point, but I’m not sure I find it entirely convincing. To feel out the limits of your argument, what is it that you see as fundamentally different between the Internet and the dawn of recorded sound? The ubiquity, the geographical homogeneity, and ease of recording? Would the same argument apply to vocabulary and spelling of the written word?