oldie's comments

oldie | 4 years ago | on: Why noise is necessary for our brains to perform at a high-level

I find a conversation more distracting if it's relevant to me.

If we have to cram developers into open plan offices then each feature team should be dispersed throughout the building, so that the discussions each person overhears are less relevant to the person overhearing them.

Contrarian, or what? :-)

oldie | 4 years ago | on: Why noise is necessary for our brains to perform at a high-level

2500ppm? Good grief.

I notice a slight blunting of my mental edge at about 1000ppm. I always maintain enough ventilation to keep below about 800ppm. I don't guess; I monitor.

At work, in our delapidated office, I've seen up to 1800ppm by lunchtime. No wonder no one can concentrate in there.

It's not cheap, but you can buy heat-recovery ventilation for domestic properties: stale air is pumped out, fresh air is pumped in, and there's a heat-exchanger to warm the incoming air. Typically, air is extracted from rooms such as kitchens, bathrooms and toilets (so that you expel moisture, smoke and odours) and pumped into living spaces such as lounges, dining rooms and bedrooms. It doesn't provide enough air changes per hour to mitigate the danger from Covid-19, but it does do enough to keep CO2 levels down where you want them, and it avoids arguments with people who want to close all the windows and doors because they "don't like a draught".

oldie | 4 years ago | on: Why noise is necessary for our brains to perform at a high-level

I'm a software engineer. I choose music or silence tactically. If I need to power myself through a task, I use music to do it. If I'm trying to solve a difficult problem or master a complex body of unfamiliar code, I need silence.

Before WFH become the norm in early 2020, there were days when I made no progress at all until everyone else had gone home. The precious hour between 5pm and 6pm -- when the cleaners came and talked to me and broke my concentration again -- was sometimes more productive than the entire day that led up to it.

What also helps, working alone, is the ability to talk out loud to yourself. For me, it's a superpower. I dread losing it if Management decides to pull us all back into the office when the pandemic is over. (Or, even worse, continually talking to myself without realising it. :-))

oldie | 4 years ago | on: EBCDIC is incompatible with GDPR

Remember all the ghastliness with code pages that sprang up around Ascii, such that systems configured for different languages didn't agree about what characters most code points were supposed to represent? Well, good news: Ebcdic supports that. For example, here's a code page that can represent all the characters you're likely to need in French:

https://en.everybodywiki.com/EBCDIC_297

So, to be unable to represent á, è, ô, ü, ç, etc, the application would have to be locked into not just Ebcdic but also a particular Ebcdic code page that seems unsuited to the locale where the program was running.

Admittedly, an Ebcdic system will have difficulty representing French, Greek and Russian names at the same time, because there's no code page that encodes all the necessary characters.

An application hard-coded to US-Ascii would also be unable to support accented characters, and an application using any one Ascii code page (as opposed to Unicode) would have the same difficulty representing French, Greek and Russian names at the same time. Which is why, in 2021, we don't do that.

oldie | 4 years ago | on: Facebook chooses profits over people

How many people bemoaning Facebook's evils on HN still have Facebook accounts?

Do what you know you ought to do. Stop feeding the beast. Set a better example. Close your account and don't look back. And, when people ask you why you left, tell them.

oldie | 4 years ago | on: Linux-Router

I'm sorry -- slip of the keyboard. Where I wrote "load-balancing" here yesterday (not once but twice), I should have written "traffic-shaping." I have only one Internet connection -- that's all I can get here -- but traffic-shaping moves the queue from the ADSL router or the ISP into the little Linux box, where it can be managed better, and ensures that heavy users such as big uploads and downloads don't crowd out interactive users. The Web search I suggested will make more sense in that context!

oldie | 4 years ago | on: Linux-Router

Take a look at <https://www.gl-inet.com/>. These boxes come with a nice, simplified GUI, but will run stock OpenWRT, which you can build yourself if you wish.

I placed one of these boxes behind my ADSL router to do load-balancing. To use it as an Internet router, you'd instead need to couple it with a modem. A colleague whom I trust recommends Draytek kit but (a) I've not tried it, (b) it's not cheap and (c) I'm just a stranger on the Internet, so read around carefully before splashing out.

oldie | 4 years ago | on: Linux-Router

I've found myself in a similar situation. What I've learnt is that good load-balancing makes a surprising difference. It won't help you back up your files to the cloud any faster, but it will keep your Internet connection usable for other people while you do so. I've gone from being unable to hold one decent Skype conversation to being able to hold two in parallel on the same network. I've gone from ping times of up to 800ms when my wife used WhatsApp to ping times below 25ms in all realistic load conditions, including WhatsApp, and even flat-out file transfers in both directions at once. For video conferencing and general Web browsing, low latency is usually more important than high bandwidth.

The route I took was to place a small, low-power Linux box between my network and my ADSL router, running OpenWRT, and then configure load-balancing on that. A Web search for "bufferbloat cake" (no, really :-)) will show you one of the most useful Web sites I found.

One other measure you can take is aggressive content-blocking. I use Pi-Hole, uBlock Origin, Privacy Badger and Blokada, and I recommend them all. If you don't have much bandwidth, you don't want to give half of it away to marketers and creepy trackers. Use what little you have to work for you, rather than against you.

Having started from a position of knowing very little about Linux networking, I'd say that the Linux networking stack is powerful, flexible and fast, but it's let down by the available documentation, most of which seems to have been written at least fifteen years ago, and much of which is simply out-of-date. I couldn't find anything that just starts at the beginning and tells you everything you want to know, and is based on modern Linux commands and facilities. I'd write it myself if I understood it well enough but, honestly, I still don't. For anyone who wants to contribute to Linux but is a wordsmith rather than a coder, here's your chance.

oldie | 5 years ago | on: Poll: Will you take the Covid vaccine?

Politicians, having long ago squandered their own credibility, are now working their way through someone else's. But it's not an easy partnership. Politicians, especially during an emergency, need to produce fast, clear, consistent answers; science, as I'm sure you know, is about the gradual and painstaking accumulation of knowledge, and about nuance and qualification and uncertainty and interpretation. Scientists love to be proved wrong; politicians can't stand it.

oldie | 5 years ago | on: Poll: Will you take the Covid vaccine?

This is an important and under-considered factor when people are deciding about getting vaccinated. Other groups of people who can't currently get vaccinated, at least in my country, include children and pregnant women. They all deserve protection.

I wish you safety and good health until a suitable vaccine becomes available to you.

oldie | 5 years ago | on: Poll: Will you take the Covid vaccine?

I suggest that Western culture's understanding of risk is immature. Is it the case that driving at the speed limit is safe and driving 5% faster is dangerous? Of course not. Driving at any speed carries risk; driving faster, on a given road, in given conditions, is usually more dangerous; and society needs to decide the degree of risk it will accept. (This applies especially in cases such as driving, where the benefit of speeding accrues to the driver, but much of the risk is imposed on others without their consent.)

A better approach to the safety of the vaccine is to ask whether it's safer to take it or to abstain, and who bears the risk in each case. I accept that the numbers won't be the same for everyone: they depend on age, sex, gregariousness, medical condition, culture, job, and perhaps (I don't know) ethnicity. However, people I know who've had Covid-19 say it's brutal: even if it doesn't kill you, it can give you a really rough time. I know of four friends of friends who've died of it, including one in his twenties. And let's not forget long Covid, which can strike at any age. Set against that the clinical trials that the vaccine has undergone, with trials halted if even one person became seriously ill. Finally, there seems to be at least a reasonable possibility that being vaccinated will reduce a person's ability to infect others.

All in all, any of the leading vaccines available in the West look like a better bet, for me and the people around me, than just crossing my fingers and hoping.

Should I take it now or wait? There seems little doubt that vaccines will be refined over the coming years. A vaccine taken in 2023 will probably be safer, and certainly better understood, than one taken in 2021. But someone who waits two years has endured two extra years' risk of suffering, spreading and possibly dying from Covid. You would have to think that vaccines are much more dangerous than I do for that to be a reasonable trade-off.

oldie | 6 years ago | on: Meal timing strategies appear to lower appetite, improve fat burning

I'm really glad it did you do much good.

For me, it was the other way round. When I used intermittent fasting (in the form of the 5:2 diet) to get my weight under control, I stopped snoring like a rhino, and my sleep improved. As did my wife's. :-)

More anecdote: trying to fast of the weight without exercise was miserable. My weight plateaued, and I was permanently cold. Doing some sensible exercise solved both problems. Diet or exercise? False dichotomy.

oldie | 7 years ago | on: Ask HN: What made you change your mind about a programming language/paradigm?

I the early Nineties, I had a good idea of what an ideal programming language would be. Then I encountered Perl, which was diametrically opposite to everything I thought I wanted. Perl enabled me to do in a morning what would have taken a week in C. I was blown away. I was converted. I became a Perl evangelist. I used Perl everywhere I could.

20-odd years later, writing Perl for fun and C++ for money, I had a Perl program which, over ten years, had gradually grown to about 5,000 lines and 25 classes. It needed more testing than anything else I maintained. I missed the help I would have got from a C++ compiler -- what some Perl people disparagingly call BDSM. In C++, if I need to add a Widget argument to a leaf method, the compiler will find all the call sites that need updating. If they in turn need updating to accept a Widget, the compiler will find their call sites, and so on. By the time the program compiles again, it's much of the way towards working. But Perl doesn't do that for me. I can't even specify the number of arguments a method should take, let alone their types.

I eventually rewrote the whole thing in D. It came out at almost exactly the same length, which was a surprise, but I got native speed, much-reduced memory consumption, and proper type-safety. My hunch is that a translation to modern C++ would have been longer and taken more work than doing it in D, but not that much more, and the performance would have been better still.

This is not so much a story about Perl, C, C++ and D as about weakly- and strongly-typed languages. (Perl 6, in particular, remedies some of the deficiencies in Perl 5's type system, and some of the bolt-on object systems for Perl 5 take steps in that direction as well. These are heroic and ingenious efforts to give users the best of all possible worlds, to the extent that that's possible, and I wish them well.) Languages that are too weakly typed, too dynamic, too flexible, are fine for short programs that are maintained over a short period of time, but they just don't scale -- maintenance becomes too difficult, too time-consuming and too error-prone. At some point, it's best to rewrite in a well-chosen language that imposes more structure and provides more type-safety, and work with that structure (not against it) to make your program rigid enough to stand up under its own weight.

As a result of that experience, I no longer use Perl, or any other very dynamic language, for anything but the smallest throwaway programs. For everything else, I anticipate the need to grow by using C++ or D, and the next language I learn is more likely to be Rust than, say, Python.

A more general point: if you only know one composer, one band or one style of music and you think the rest aren't worth knowing, you don't know music. Even though I don't use dynamic languages much nowadays, I'm a stronger engineer for having done so. Do take the time to learn several different languages that differ widely from each other and from what you already know -- preferably including some assembler -- and don't assume that the language of the month is best suited to your unique temperament or to the job in front of you. Having an abundance of tools and choosing between them wisely is better than having one and using it for everything. It doesn't matter how dexterously you can use a soldering iron when what you need is a chainsaw.

page 1