Skip to content

Instantly share code, notes, and snippets.

View sinewalker's full-sized avatar

Michael Lockhart sinewalker

View GitHub Profile
@sinewalker
sinewalker / send-email.md
Last active April 14, 2023 10:06
Sending email from Linux command line (postfix or netcat)
  • Send a blank test message with a subject to an email address:

    mail -s "Subject" user@example.com < /dev/null

    (you can substitute /dev/null with a file, or pipe, to populate the body. It must end with a period on a line by itself.)

  • Send a blank email with an attachment:

    mail -a somefile -s "Subject" user@example.com < /dev/null

@sinewalker
sinewalker / windows-password.md
Last active September 17, 2018 03:03
Disable password expiry in Windows 7
  1. Start menu > Run
  2. wmic
  3. right-click; Run as Administrator
  4. UserAccount where PasswordExpires=TRUE set PasswordExpires=FALSE
  5. press Y for each account confirmation
@sinewalker
sinewalker / boulderdash.rb
Last active July 14, 2023 16:48
Boulder Dash Theme
# Boulder Dash for ATARI 2600, by Peter Liepa, 1984
# A Live Loop to algorave to.
#
# Original music (Youtube, Commodore 64 version): https://www.youtube.com/watch?v=14CAO72_pJw
# A pretty accurate transcription: https://musescore.com/user/3769276/scores/1076731 (I can't hear any errors)
#
# Interesting note: Boulder Dash was originally written for the ATARI 2600 video game console, which had a TIA sound chip
# with two oscillators to generate tones (max polyphony was 2). So on both the Youtube recording (which is of a C64 port)
# and the MIDI score transcription, only two notes are ever played at once.
#
@sinewalker
sinewalker / scsi-rescan.md
Created August 28, 2018 23:48
Rescan SCSI devices after changing on VM Host

Rescanning a Linux SCSI device after it is changed on a VM Host

Sometimes when you change the logical drive of a VM from the Host, the device size is not reflected in the Guest. So attempts to use the extra space with fdisk or the NVM tools will not "see" the extra disc.

This is because the Linux kernel doesn't notice it, because it's not looking. Linux usually only scans this at boot time. But you probably can't reboot a server if it's live, so what do you do?

To tell Linux to have another look now, you just need to poke it:

echo 1 &gt; /sys/bus/scsi/devices/1:0:0:0/rescan
@sinewalker
sinewalker / doctorwho.rb
Last active August 14, 2018 17:57
Dr. Pi
# Dr. Who
# Transcribed by ear from different T.V. introductions, probably not
# entirely correct either; so it's my own arrangement.
#
# I wanted to hear if I could get some of the effects in too
#
# Mike Lockhart 2018-08-10
use_bpm 130
@sinewalker
sinewalker / ugrade-requests.html
Created August 1, 2018 08:02
Upgrade HTML mixed-content meta tag
<!doctype html>
<html>
<head>
<title>whatever</title>
<meta charset="utf-8">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<!-- rest of header:
<link rel="stylesheet" href="something.css">
<script src="somescript.js"/>
-->
@sinewalker
sinewalker / toggle-comment-sed.sh
Last active July 16, 2018 23:09
Comment / un-comment a line in a config file, matching a pattern, using sed
sed -i '/pattern/s/^/#/g' file #to comment out
sed -i '/pattern/s/^#//g' file #to uncomment
@sinewalker
sinewalker / ticktock.service
Created July 13, 2018 12:09
ticktock systemd service
[Unit]
Description=ticktock
AssertPathExists=/home/mjl
[Service]
WorkingDirectory=/home/mjl
#unbuffered:
ExecStart=/usr/bin/python -u /home/mjl/ticktock.py
#buffered:
#ExecStart=/home/mjl/ticktock.py
@sinewalker
sinewalker / ticktock.py
Created July 13, 2018 12:06
Python tick-tock
#!/usr/bin/env python
from time import sleep
from datetime import datetime
while True:
print(datetime.now())
sleep(1)
@sinewalker
sinewalker / git-merge-origin\master.md
Last active July 6, 2018 22:18
Merge remote origin/master into a new local repository

This little dance is needed to merge in the remote origin/master to a fresh local (one created without cloning the remote, such as by a tool like pass). I don't know if there is a better way?

You need to do this when

  • you have another application which can use git for storing data, and you need to fill it with history from a common remote, but the application doesn't support git clone, only git init type operations
  • you have a local repository with local changes that you want to keep, but still merge in the origin (although you could go the other way, I think?)

Use commands like these to merge in a remote to your local master, as the new origin: