Author Archives: Kirrus

sunset photo, taken 20th april 2007 in Wales, UK.

Depression & Suicide

I wrote this as a response to an image post trying to guilt-trip people into not commiting suicide using friends and family, on reddit. The reddit OP removed his post due to criticism, so I’ve copied it here.

Here’s the thing most people don’t get about suicide.

Those who choose to kill themselves aren’t (normally) irrational. They’re making a considered option. They’re aware of the pain they’ll leave. They’re aware of the pain of the method.

Someone who chooses to commit suicide is exactly the same response as the person who chooses to jump to death from a burning building. It’s not that the suicide is a good option. It’s that staying is unbearable.

Severe depression, or severe recurrent depression the type I suffer from, is a cruel, evil disease. It eats at your joy of life, it eats at your ability to look after yourself, it eats at your ability to function day-to-day, even simple things like cooking a meal being more akin to climbing mount Everest in a wheelchair, blindfolded, with your hands tied behind your back, than anything else.

You want to help someone like me not decide in the darkest, most painful times not to die?

First, don’t try to guilt-trip them with friends and family. It won’t help, I already know all those things. I’ve already considered them. I’ve discounted them. Sometimes the suffering is just too great.

Second, be there. That friend who you’ve not heard from for a while? Phone. Suggest popping over for a cuppa tea. Suggest they come to you. Push a little. Text. Email. IM. Skype. Reach out.

Third, if you know someone is suffering, offer to listen, anytime, anywhere, anyhow, and mean it. Keep your phone on next to you, and pick it up at 3am if they call.

Forth, if someone is really bad, struggling day to day, offer real help. Not “I’m here for you” but “hey, I’m coming over Friday, we’ll watch a film and order pizza”. Or “Hey, I’m bringing over my pasta bake, and leaving it with you, I’ll pick up the dish tomorrow.”. “Hey, need any help with housework? I’m free Saturday to come help if you want?”

Finally, Accept that, even then, sometimes someone like me will be suffering too much, and it’s not about you. It’s not about your pain, that they were suffering too much, and decided enough was enough. They’re in less pain than they were before.

P.S. Vote. Vote for people who give a shit about mental health support (in the UK, NOT THE CONSERVATIVES FOR THE LOVE OF ALL THAT IS GOOD). Vote for those who care about basic medical support. Consider donating to research.

p.p.s edit; please don’t say anything along the lines of ‘why don’t you just decide to be happy?’. That doesn’t help.

But seriously, be there for your friends and family, especially if they’re being weirdly distant. You may just save a life.

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.

 

Systemd is the stupidest piece of stupid brain-dead init software ever invented.

A tale, in a log.
systemd: BOOTING !
systemd: Oh noes! /var needs fscking! let’s drop into emergency shell
systemd: Emergency shell! You should check out the log. It’ll totally tell you something pointless that’ll send you on a wild goose chase for half an hour.
systemd: Oh, by the way, I mounted /var cos I want to log there, and I won’t unmount it for you in emergency shell, cos that’s just helpful.
systemd: What, wait, you’re not going to use SysV are you? No, don’t touch tha<URK>
SysV: Booting.
SysV: Oh noes! /var needs fscking! Let’s try fscking it for you …
SysV: /var failed. needs manual intervention. Here’s an emergency shell. Not with /var mounted because I’m not a moron of a boot loader.
SysV: What’s that, you’ve fixed it? Oh, you can reboot with “shutdown -r now”, it’s fine, I won’t force you to use my own internal reboot command, because we’re all adults here.

*sigh*. Can I get those 2 hours of my life back please?

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

ARGH! A Rant about software developers

When software developers update their software to include new configuration options, they have a bunch of options to pick from, of how to handle installs running on the old options.

For example, you could

  1.  automatically update config
  2.  document a process to gracefully update config
  3.  Give human readable errors showing what changes you need to make to conifg
  4.  Break the application with a super cryptic error message, and refuse to start until config is wiped with ‘new’ default config.

Why do developers keep picking 4? At least 2 horribly complex bits of software in the past year have decided to do that to me, which cost me a few days of head-bashing-against-desk trying to work out what was broken time. 🙁

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