Colour wheels

Complementary colours

Check out Blender Guru’s “Understanding color” to whet your appetite and install the excellent Color Harmony app (Android).

  1. Monochromatic
  2. Complementary
  3. Achromatic
  4. Analogous
  5. Accented analogous
  6. Triadic
  7. Tetradic
  8. Rectangle
  9. Square
  10. Polychromatic

RGB colour model

red, orange, yellow, chartreuse, green, spring, cyan, azure, blue, violet, magenta, and rose


Southern Vietnamese

Resources and vocabulary

References Vietnamese typography Vietnamese phonology - see comparison of initials Slang chời ơi - Oh man biết chết liền - know die immediately hên xui - bad luck (said when dealing with uncertainty: you don’t know if I did well in that exam) bó tay - give up (I/you give up, lost cause) cũng thường thôi - it’s OK Magic words Buồn Sad Ticklish Feel like [doing] something Feel like… cười - to laugh buồn cười - funny ngủ - to sleep buồn ngủ - sleepy nôn - to be sick buồn nôn - nauseous tè - to pee buồn tè - bursting (for a pee) ị - to poop buồn ị - bursting (for a poop) Single letter words See TVO [Read More]

The cost of (heavily) refurbishing a flat in Brighton in 2020

A rough order of magnitude

Build was converting an open plan shop into residential (two bedroom flat). Add 10% waste for all skirting, flooring and tiles. Estimate the cost of the electics as you go along if they’re not defined by the architect or you’re diverging from what the building contractor has specified. Anything to do with getting a new supply of electrics or water costs at least a grand. Patching the roof up was an unexpected expense. [Read More]

The Fibonacci Sequence

In different languages

Bash #!/bin/bash function fibonacci { local n=$1 [[ $n == 0 ]] && echo $n && return [[ $n == 1 ]] && echo $n && return local x=$(fibonacci $((n - 1))) local y=$(fibonacci $((n - 2))) echo $((x + y)) } echo -e sh\\t$(fibonacci 14) C #include <stdio.h> unsigned int fibonacci(const unsigned int); int main() { printf("c\t%d\n", fibonacci(14)); return 0l; } unsigned int fibonacci(const unsigned int n) { return ( n < 2 ? [Read More]

Cyber security

Creating a Linux password hash Like you find in /etc/shadow. mkpasswd --method=sha-512 --salt=Kf0TqvhN Search tools Use different search engines Banner grab httrack inspy metagoofil intitle:“index of” Infosec websites Cracking a KeePass2 master password with John the Ripper john <(keepass2john easy.kdbx) Considerations Language vulnerabilities Common cyber attacks Tor Crypto attacks - frequency analysis Data encryption standard AES advanced encryption standard Substitution permutation network Kali Linux Vulnerability research with reverse engineering, penetration testing and ethical hacking Low level Linux programming and/or comprehensive knowledge in operating system security and associated network/platform design, hardening and deployment. [Read More]

Decrypting TLS traffic

In Firefox

A Docker image that runs Chromium headless with SSLKEYLOGFILE set, opens an HTTPS page and dumps the decrypted TLS traffic to the terminal. Also runs in Play with Docker. Pull and run docker run --net host deanturpin/ssldump Dockerfile FROM kalilinux/kali-linux-docker RUN apt update RUN apt install -y chromium RUN apt install -y ssldump RUN apt install -y psmisc CMD \ # Kill the ssldump in the future or the container won't terminate ((sleep 10s && killall ssldump && cat ~/dump. [Read More]

Mobile frequency allocation

GSM 850⁄900 MHz 1.228 MHz = 3Mb/s Wireless 802.11n 40 MHz channel width 2.4 GHz 5 GHz,g_WLAN).svg 2412, 2417, 2422, 2427 2432, 2437, 2442, 2447 2452, 2457, 2462, 2467 2472, 2484 UMTS (3G) 3GPP W-CDMA (wideband) 2100 MHz 5 MHz = 2Mb/s Each cell uses 1.8-12 kb/s U-NII 5.150 - 5.925 Bluetooth 2.4 to 2.485 GHz A computer chip selects the 79 channels of the ISM band automatically to prevent eavesdropping and interference with other equipment. [Read More]

Simple Python web server

To report browser headers

My work Firefox ESR browser seemed to be giving up my username (I.e., half of my login credentials) in its HTTP headers so I wrote simple Python-based webserver that mirrors the browser HTTP headers back to the browser. The script is encapsulated in a Docker image and could be deployed to an AWS instance. Here the server is started on common HTTP ports. docker run --rm -d -p 80:8080 deanturpin/http docker run --rm -d -p 443:8080 deanturpin/http docker run --rm -d -p 8080:8080 deanturpin/http Dockerfile FROM ubuntu RUN apt update --yes RUN apt install --yes python COPY . [Read More]

The federal preserve

Fermentation: the art of cooking without cooking

Salt All these recipes use a percentage of salt to allay the progression of pathogens in favour of the good bacteria. All measurements are by weight, so if 1.6% salt is required then 1000g of veg would need 16g of salt. But you should always taste the mix during preparation. 2% salt is the standard but I go down as far as 1.6% with sauerkraut and haven’t experienced much mould. [Read More]

Security through absurdity

It was recently suggested that I consider using “unusual [TCP] ports” at work as a security measure. After I got my breath back I found these quotes. Security experts have rejected this view as far back as 1851. Rogues are very keen in their profession, and know already much more than we can teach them. System security should not depend on the secrecy of the implementation or its components. [Read More]