Category Archives: Remember This

Staying cool in a heatwave

I’ve been reading lots over the last little while, on how to stay cool in the current heatwave. This is all the recommendations I have. I’ll follow this up with explanations of each suggestion in another post later — writing this has taken a lot out of me! Links are for example, buy what’s available and fits your needs 🙂

The UK is not set up for heat waves of up to 40c, thousands of people will die, we may have power and water outages.

Things to do immediately

Things to do the day before the heatwave

  • Turn your fridge and freezer up — make them colder
  • Freeze bottles of water (Separately from the immediate water stock!). Old fizzy drink bottles are fine. Squeeze them a little before putting the lid on, to give the water space to expand into
    • For one of the bottles, fill it halfway up, and store in the freezer so you can get to it. When you want a cold drink, just fill it a bit, and shake. Instant cold water!
  • If you have south-facing windows, prepare to cover them. A sheet, tin foil, paper.
  • Prepare foods ready to eat cold. Tuna mayo, egg mayo for sandwiches, salads, cold meats, cook some beans ready. Consider cooking a pasta bake or similar and putting it entirely into the fridge
  • At night, open your windows:
    • If you have a multiple level house, open windows/doors on one side of your house on the bottom floor, and on the top open the windows on the other side — so air will flow in a diagonal
    • If you’re in a flat or bungalow, open the windows/doors on opposite side of the house
  • Try to stay at home, or indoors. If your office has air con, I’m jealous. Avoid heavy activity during the day
  • Cover any south facing window with tin foil / paper / baking paper / cardboard / sheets. Do this on the outside if at all possible. If you do it on the inside, you might overheat your windows, and break them. Expensive bills later!

During the heatwave

peeling warning sign

DO NOTs

Do not do any of these things. They will harm you!

  • Drink Alcohol
  • Drink too much coffee (A little to prevent withdrawal is a good idea, but give energy drinks a miss)
  • Use “Air Conditioners” that don’t have an extract hose, that you have to fill with water. They use up the indoor air ability to absorb water — and sweating is the main way you lose heat when it’s too hot, so they make you hotter and make fans work less effectively. It’s safe to use them with a window open
  • Use air conditioners with an extract hose out a window without sealing your window with these kits. Yes they’re ugly, but without them you’re literally pulling hot air in from outside!
  • Heavy exercise — including manual work — especially during the peak in the afternoon, 1200 – 2000 (12pm to 8pm)
  • Avoid cooking using the oven, or hobs whilst windows are closed. If you have to, use the microwave
  • Avoid travelling if possible. Trains will be very slow, aircon may fail. Roads may melt
Green node of traffic light

DOs

  • An hour after sunrise, or as close as possible, close your windows
    • During the heatwave, check the temperature sensor against the weather app, or your weather station. When the indoor temperature is close to the outdoor temperature, go outside a second to see if it feels cooler outside (in the shade!) than inside. If so, open the windows as recommended above — in a diagonal, or opposite side of your dwelling
  • Drink lots of water. One or two electrolyte drinks a day in the absolute peak temperature
  • If indoor temp is below outdoor temp, keep the windows closed. Make sure to open them when it’s warmer
  • Consider pointing a fan out the window once it’s time to open the windows. Use a tissue or light cloth to work out which way the natural wind is blowing air, and point the fan in the direction to work with the wind, not against it
  • Wear light, airy clothes. If you can, stick to 100% cotton, which will wick your sweat and help it evaporate, keeping you cooler
  • Wear a hat if you go outside, and remember your sunscreen — even if it’s cloudy
  • If you have cats, put out a few bowls of water, spread around the building for them to drink from
  • If you have plants, water them before the temperature peak
  • Shower with a lukewarm shower. You want the water just a little cool to the touch. Too cold, and you’ll confuse your body, too hot, and you’ll just make it worse
  • Freeze a hot water bottle. Wrap it in a towel to cool down
  • Wrap an ice pack in a towel, and hold it between your upper thighs. You have arteries there, so will cool your entire body rapidly
  • Damp a towel and put it around your neck
  • Put your feet in a bucket or large bowl of water
  • Don’t use your fans feature to have it change direction it blows air into — oscillation. You want to set up a breeze of air around your room, that’ll effectively multiply how much air is moving without needing too many fans
  • Put a bowl of ice in front of a fan
  • Damp a sheet, or wet duvet cover before sleeping
  • You can set up a fan to blow *into* a duvet cover, effectively inflating it with a constant supply of fresh air. You can use clothes pegs attach it to the fan’s grills

Comment your own tips below!

Recipes

In a fit of desperation, I tweeted asking for *simple*, *easy*, cheap recipes. This is what I got in return. I’m totally posting this so it’s really easy to print them.

And season to taste 😉 Salt & pepper of course, but you can add any herbs you like to it as well.
I must admit, I don’t know what Orzo is..
https://twitter.com/ConnallTheCoble/status/1149055579832410113

Swappiness in linux

Shamelessly stolen from wikipedia because they’re thinking about removing this, as  “Wikipedia is not a howto”. *sigh*.

 

With kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over, it is likely better to use 1 for cases where 0 used to be optimal.

To temporarily set the swappiness in Linux, write the desired value (e.g. 10) to /proc/sys/vm/swappiness using the following command, running as root user:

# Set the swappiness value as root
echo 10 > /proc/sys/vm/swappiness

# Alternatively, run this
sysctl -w vm.swappiness=10

# Verify the change
cat /proc/sys/vm/swappiness
10

# Alternatively, verify the change
sysctl vm.swappiness
vm.swappiness = 10

Permanent changes are made in /etc/sysctl.conf via the following configuration line (inserted, if not present):

vm.swappiness = 10

10 is generally good for ‘I don’t want swapping to happen except if you *really* need it.

 

Varnish weird error

Are you getting a weird error from varnish that you’re having trouble working out? Is it cryptically saying that there’s an issue with your host definition in your VCL?

Expected ID got ';'
 (program line 165), at
 ('input' Line 20 Pos 30)
 .first_byte_timeout = 120;
 -----------------------------#

You need to add a time unit to your timeout definitions — ‘s’ for seconds, ‘m’ for minutes.  Stupid cryptic error is dumbly cryptic. Grrr.
https://varnish-cache.org/lists/pipermail/varnish-bugs/2011-August/003983.html

Varnish nsca logging on systemd system with x-forwarded-for

So, you have a Varnish server running systemd, which is behind a reverse proxy for SSL like nginx, and you can’t work out how to make varnishncsa log IP addresses from a specified header? Well, it’s a bit of a pain in the neck really. You need to override the systemd service file, which is like systemd’s version of the init scripts. Due to it being systemd, this is not just a case of editing a file…

For Debian, you can use the service file below, and paste it into
/etc/systemd/system/varnishncsa.service

Once done, you need to reload systemd’s service listing itself;
$ systemctl daemon-reload

Congratulations, you now have varnishncsa logs including the visitor’s real IP address, as specified by Nginx. Change the name in “{X-Forwarded-For}” to change the header name, for example if you want CloudFlare’s view of the client’s IP address, use “CF-Connecting-IP”

[Service]
 RuntimeDirectory=varnishncsa
 Type=forking
 PIDFile=/run/varnishncsa/varnishncsa.pid
 User=varnishlog
 Group=varnish
 ExecStart=/usr/bin/varnishncsa -a -w /var/log/varnish/varnishncsa.log -D -P /run/varnishncsa/varnishncsa.pid -F '%%{X-Forwarded-For}i %%l %%u %%t "%%r" %%s %%b "%%{Referer}i" "%%{User-agent}i"'
 ExecReload=/bin/kill -HUP $MAINPID

 

mysql/mariadb failing to start under systemd

If SystemD MariaDB/MySQL is failing to start, make sure your logs directory is set correctly. Sometimes this is caused by failing to correctly make sure the directory is moved.

You’ll see an error log in the journal as follows;

Nov 27 18:24:55 db-a mysqld[28677]: 2017-11-27 18:24:55 140273229838208 [Note] /usr/sbin/mysqld (mysqld 10.2.10-MariaDB-10.2.10+maria~jessie-log) starting as process 28677
Nov 27 18:24:55 db-a systemd[1]: mariadb.service: main process exited, code=exited, status=1/FAILURE
Nov 27 18:24:55 db-a systemd[1]: Failed to start MariaDB database server.
Nov 27 18:24:55 db-a systemd[1]: Unit mariadb.service entered failed state.

SetEnvIf https (Tell apache we’re behind a reverse proxy handling SSL)

This is complicated, but I need to remember this, so I want to put it somewhere. You need to add this to apache config / .htaccess file to get apache to correctly set the HTTPS environment variable when the backend is secure. It trips based on the X-Forwarded-Proto header being ‘https’.

SetEnvIf X-Forwarded-Proto "https" HTTPS=on

Grep picking up HTML (text) file as a binary file

For some reason, grep, thought that a “HTML document, Non-ISO extended-ASCII text, with very long lines” was a binary, so refused to print contents.

TIL about -a. In grep, -a tells grep to process a binary file as if it were text. This means, if grep incorrectly thinks a file is binary, it’ll still work with it.

That cost me at least 2 hours of scratching my head, wondering why my regex wasn’t working as it should…

Odd Magento / Fishpig / WordPress error

If you get an error like:
Fatal error: Call to a member function select() on a non-object in /home/username/public_html/app/code/community/Fishpig/Wordpress/Model/Resource/Page.php on line 119

Then, check you’ve not just changed a MySQL username, without updating the fishpig configuration, or otherwise Fishpig can’t access the MySQL database for some reason. It seems to store a MySQL login in Magento config. I’ve not yet found exactly where, I’ll update this post with more once I understand more about what it’s doing.

 

It presented as the main Magento site throwing the following error:

exception ‘Zend_Exception’ with message ‘dbModel read resource does not implement Zend_Db_Adapter_Abstract’

 

Which it seems that most everyone will tell you to clear your cache to fix. You *will* need to clear your cache, probably. Just, after fixing the MySQL connection issue.

 

The following line is to make it easier for people googling to find this post:
Fatal error: Call to a member function select() on a non-object in /public_html/app/code/community/Fishpig/Wordpress/Model/Resource/Page.php on line 119 magento fishpig

 

This post my making sure  https://xkcd.com/979/ doesn’t happen from me.