oldie | 4 years ago | on: Why noise is necessary for our brains to perform at a high-level
oldie's comments
oldie | 4 years ago | on: Why noise is necessary for our brains to perform at a high-level
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
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
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
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: Recent deaths in young people in England and Wales
oldie | 4 years ago | on: How to permanently delete your Facebook account
oldie | 4 years ago | on: Linux-Router
oldie | 4 years ago | on: Linux-Router
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
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: The biggest competitor to your digital service? The Mars Bar
oldie | 5 years ago | on: Poll: Will you take the Covid vaccine?
oldie | 5 years ago | on: Poll: Will you take the Covid vaccine?
oldie | 5 years ago | on: Poll: Will you take the Covid vaccine?
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?
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 | 5 years ago | on: Poll: Will you take the Covid vaccine?
oldie | 6 years ago | on: Meal timing strategies appear to lower appetite, improve fat burning
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?
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.
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? :-)