Browse Source

reorganize things into date-based entries

Still unwieldy, but I'm working on it.
Brennen Bearnes 4 years ago
parent
commit
7ec4cc2169

+ 2
- 7
Makefile View File

@@ -1,14 +1,9 @@
1
-# chapters contains a list of files that should be included in the book
2
-# this'll be used to check whether any of them have changed more recently
3
-# than index.html:
4
-chapters = $(shell cat chapters)
5
-
6 1
 all: index.html
7 2
 
8 3
 # this is only going to keep working properly as long as I have fewer chapters
9 4
 # than the max number of arguments to xargs
10
-index.html: ${chapters} chapters render.pl footer.html header.html
11
-	cat chapters | xargs ./render.pl | cat header.html - footer.html > $@
5
+index.html: entries/* render.pl footer.html header.html
6
+	ls entries/* | xargs ./render.pl | cat header.html - footer.html > $@
12 7
 
13 8
 publish: index.html
14 9
 	git push

+ 0
- 14
chapters View File

@@ -1,14 +0,0 @@
1
-./introduction/index.md
2
-./sysops/index.md
3
-./debian/index.md
4
-./systemd_notes/index.md
5
-./networked_computing/index.md
6
-./vim/index.md
7
-./organization/index.md
8
-./sbc/index.md
9
-./image_video/index.md
10
-./data_toolchain/index.md
11
-./candles/index.md
12
-./writing/index.md
13
-./conceptual_framing/index.md
14
-./endmatter/index.md

+ 0
- 4
debian/index.md View File

@@ -1,4 +0,0 @@
1
-debian
2
-======
3
-
4
-* [Debian New Maintainers' Guide](https://www.debian.org/doc/manuals/maint-guide/)

+ 0
- 1
endmatter/README.md View File

@@ -1 +0,0 @@
1
-index.md

+ 0
- 7
endmatter/index.md View File

@@ -1,7 +0,0 @@
1
-endmatter
2
-=========
3
-
4
-copying
5
--------
6
-
7
-[CC BY-SA 4.0][cc-by-sa]

introduction/index.md → entries/0-introduction.md View File

@@ -19,6 +19,11 @@ that inspired this one.  Go Bears.
19 19
 / [@brennen](https://ello.co/brennen)
20 20
 / [~brennen](http://squiggle.city/~brennen/)
21 21
 
22
+copying
23
+-------
24
+
25
+[CC BY-SA 4.0][cc-by-sa]
26
+
22 27
 <div class=details>
23 28
   <h2 class=clicker>contents</h2>
24 29
   <div class=full>

sysops/index.md → entries/2014-12-03.md View File

@@ -1,13 +1,10 @@
1
-sysops
2
-======
3
-
4
-The specific problems of operating a system with multiple human users.  Much
5
-in reference to [squiggle.city][squiggle.city].
1
+Wednesday, December 3, 2014
2
+===========================
6 3
 
7 4
 makecitizen
8 5
 -----------
9 6
 
10
-_wednesday, december 3, 2014_
7
+{sysops, scripting, adduser, chfn}
11 8
 
12 9
 Paul Ford sent out an e-mail to the tilde.club
13 10
 waitlist pointing at ~pfhawkins's list of other tildes, so I'm getting signup
@@ -85,27 +82,3 @@ totally idempotent, and could be driven off some separate file or output
85 82
 containing the set of users.
86 83
 
87 84
 (Thoughts like this are how systems like Puppet and Chef are born.)
88
-
89
-listusers / squiggle.city repo
90
-------------------------------
91
-
92
-_wednesday, december 10, 2014_
93
-
94
-There's now a [squigglecity organization on GitHub][squiggle.city.gitorg].
95
-What little is there is a classic duct-tape mess complete with a bunch of
96
-commits made as root, but may contain a few useful bits.
97
-
98
-I'm planning to clean up [this version of listusers.pl][listusers-dec-10] into a
99
-more generic `listusers` utility that just outputs TSV and pipe to csvkit / `jq`
100
-for HTML & JSON.
101
-
102
-Oh, right --- about the JSON.  ~ford proposed a standard `tilde.json` [kind of
103
-like this](http://squiggle.city/tilde.json), which I think is not a terrible
104
-idea at all though that one's a bit rough and the format could still use a
105
-little tweaking as of this writing.
106
-
107
-This is the kind of thing it's unbelievably easy to overthink.  I'm hoping
108
-we'll give it enough thought to do a few smart things but not so much thought
109
-that no one actually uses it.
110
-
111
-[listusers-dec-10]: https://github.com/squigglecity/squiggle.city/blob/1a07ccc8415b05ad239116a062d2992ae1537541/listusers.pl

vim/index.md → entries/2014-12-05.md View File

@@ -1,5 +1,8 @@
1
-vim
2
-===
1
+Friday, December 5, 2014
2
+========================
3
+
4
+notes on vim
5
+------------
3 6
 
4 7
 Vim is a text editor.  My slowly-evolving configuration can be found on GitHub,
5 8
 in [bpb-kit][bpb-kit].
@@ -10,8 +13,6 @@ fact, most things), but I am particular and don't always share his preferences.
10 13
 keybindings
11 14
 -----------
12 15
 
13
-_friday, december 5, 2014_
14
-
15 16
 I'm starting in on this notebook, which uses a Makefile, and think it might be
16 17
 nice to have a quick vim keybinding for `:make`.  I would use `F5`, by analogy
17 18
 to QBasic, but I've already bound that to `:wall`, which writes all the open

+ 38
- 0
entries/2014-12-07.md View File

@@ -0,0 +1,38 @@
1
+Sunday, December 7, 2014
2
+========================
3
+
4
+notes directory
5
+---------------
6
+
7
+On organizing todo lists, see [the p1k3 entry from August of
8
+2014](https://p1k3.com/2014/8/23).
9
+
10
+For years now, I've kept that sort of thing in a `notes.txt`.  At some point
11
+notes.txt got its own directory with a haphazard jumble of auxiliary files.  It
12
+looks like I turned that directory into a git repository a couple of years ago.
13
+
14
+Unlike a lot of what I keep in git, `~/notes/` isn't meant for any kind of
15
+publication.  In fact, it'd be pretty dumb to let it out in the world.  So I got
16
+to thinking:  I should really encrypt this.
17
+
18
+So what's the best way to encrypt a single directory on Linux?
19
+
20
+Two search strings:
21
+
22
+- linux encrypted directory
23
+- encrypted git repo
24
+
25
+It looks like maybe [http://ecryptfs.org/][eCryptFS] is the thing?  This machine's an
26
+Ubuntu, so let's see what we can find:
27
+
28
+    $ apt-cache search ecryptfs
29
+    ecryptfs-utils - ecryptfs cryptographic filesystem (utilities)
30
+    ecryptfs-utils-dbg - ecryptfs cryptographic filesystem (utilities; debug)
31
+    libecryptfs-dev - ecryptfs cryptographic filesystem (development)
32
+    libecryptfs0 - ecryptfs cryptographic filesystem (library)
33
+    python-ecryptfs - ecryptfs cryptographic filesystem (python)
34
+    zescrow-client - back up eCryptfs Encrypted Home or Encrypted Private Configuration
35
+
36
+Google suggests that ecryptfs-utils might be what I'm looking for.
37
+
38
+I become distracted reading about protests and leave this idea for another day.

sbc/index.md → entries/2014-12-08.md View File

@@ -1,11 +1,54 @@
1
-single-board computers
2
-======================
1
+Monday, December 8, 2014
2
+========================
3
+
4
+ssh
5
+---
6
+
7
+I use SSH for damn near everything.  We need SSH for damn near everything.
8
+
9
+I have this thought that SSH is quite possibly the only end-user-exposed
10
+implementation of acceptable crypto in wide use which actually satisfies the
11
+"actual human beings can use this" constraint at the same time as satisfying
12
+the "this makes your shit relatively secure" constraint.  That's not to say
13
+it's easy for the average mortal to comprehend, but it beats the shit out of
14
+almost everything else I can think of.
15
+
16
+In "almost everything else", I include SSL/TLS/HTTPS, which sort-of works as
17
+far as the general user population of browsers is concerned, much of the time,
18
+but which is an absolute nightmare to administer and which is a fundamentally
19
+broken design on a political / systems-of-control / economic /
20
+regular-admins-get-this-right level.  Arguably, the only thing that has been
21
+worse for the wide adoption of crypto by normal users than SSL/TLS is PGP.
22
+
23
+DISCLAIMER:  I DON'T KNOW SHIT ABOUT CRYPTO.  Tell me how I'm wrong.  
24
+
25
+-> ✴ <-
26
+
27
+* "[Sorry Theo, but SSH Sucks](http://harmful.cat-v.org/software/ssh)"
28
+
29
+mosh
30
+----
31
+
32
+I'm not exactly sure when mosh started to catch on with people I know, but I'd
33
+say it's on the order of a year or two that I've been aware of it.  The basic
34
+thing here is that it's essentially OpenSSH with better characteristics for a
35
+specific cluster of use cases:
36
+
37
+  - laggy, high-latency, intermittently-broken network connections
38
+  - client machines that frequently hop networks and/or suspend operations
39
+  - unreliable VPNs (which is to say very nearly all VPNS in actual use)
40
+
41
+time tracking
42
+-------------
43
+
44
+I'm about to start in on some remote contracting stuff, so I go looking for a
45
+time tracking tool.  For the moment I settle on this little tray widget called
46
+[hamster](http://projecthamster.wordpress.com/), which looks functional if not
47
+precisely inspiring.
3 48
 
4 49
 noobs / raspbian
5 50
 ----------------
6 51
 
7
-_monday, december 8, 2014_
8
-
9 52
 Last year I did a bunch of work on a Raspberry Pi, but it's been a few months
10 53
 since I booted one up.  I got a model B+ (more USB ports, various hardware
11 54
 tweaks, takes a microSD card instead of the full-size one) in my last employee
@@ -160,8 +203,6 @@ This is a really slick install process now, so good work to somebody on that.
160 203
 beaglebone black
161 204
 ----------------
162 205
 
163
-_monday, december 8, 2014_
164
-
165 206
 I've got a Beaglebone Black sitting here new in the box.  It comes with a USB
166 207
 cable, so I plug it in.  Instantly there are bright blue blinky lights, and my
167 208
 laptop tells me I'm connected to an ethernet network and I've got a new drive
@@ -179,9 +220,9 @@ strikes me as good tech in a bunch of ways.
179 220
 Josh Datko, who I've gotten to know a little bit, has a book called _Beaglebone
180 221
 for Secret Agents_.  It's been on my ever-growing to-read list for a while; I'm
181 222
 going to have to give it a look sooner rather than later.
182
-
183 223
 reading list
184 224
 ------------
185 225
 
186 226
 * http://www.jann.cc/2013/01/15/trying_out_the_adafruit_webide.html
187 227
 * http://www.angstrom-distribution.org/
228
+* http://www.raspberrypi.org/documentation/configuration/config-txt.md

+ 24
- 0
entries/2014-12-10.md View File

@@ -0,0 +1,24 @@
1
+Wednesday, December 10, 2014
2
+============================
3
+
4
+listusers / squiggle.city repo
5
+------------------------------
6
+
7
+There's now a [squigglecity organization on GitHub][squiggle.city.gitorg].
8
+What little is there is a classic duct-tape mess complete with a bunch of
9
+commits made as root, but may contain a few useful bits.
10
+
11
+I'm planning to clean up [this version of listusers.pl][listusers-dec-10] into a
12
+more generic `listusers` utility that just outputs TSV and pipe to csvkit / `jq`
13
+for HTML & JSON.
14
+
15
+Oh, right --- about the JSON.  ~ford proposed a standard `tilde.json` [kind of
16
+like this](http://squiggle.city/tilde.json), which I think is not a terrible
17
+idea at all though that one's a bit rough and the format could still use a
18
+little tweaking as of this writing.
19
+
20
+This is the kind of thing it's unbelievably easy to overthink.  I'm hoping
21
+we'll give it enough thought to do a few smart things but not so much thought
22
+that no one actually uses it.
23
+
24
+[listusers-dec-10]: https://github.com/squigglecity/squiggle.city/blob/1a07ccc8415b05ad239116a062d2992ae1537541/listusers.pl

+ 59
- 0
entries/2014-12-18.md View File

@@ -0,0 +1,59 @@
1
+Thursday, December 18, 2014
2
+===========================
3
+
4
+screencast gifs
5
+---------------
6
+
7
+Looking to make some GIFs of things that happen on my screen, found `byzanz`.
8
+
9
+    $ sudo apt-get install byzanz
10
+    byzanz-record -x 1 -y 1 --delay=4 -h 150 -w 700 hello_world.gif
11
+
12
+Options:
13
+
14
+- `-x` and `-y` set origin of capture on screen
15
+- `-h` and `-w` set height and width to capture
16
+
17
+I think I need a more clever way to trigger / manage this than just fiddling
18
+with CLI options, but it works really well and produces lightweight image
19
+files.
20
+
21
+I think it would be cool if there were a utility that let me use arrow keys /
22
+hjkl / the mouse cursor to visually select a region of the screen.  It could
23
+return x, y, height, and width, then I'd let byzanz handle the capture.
24
+
25
+That can't be the _hardest_ thing in the world to do.
26
+
27
+-> ☆ <-
28
+
29
+[xdotool](http://www.semicomplete.com/projects/xdotool/) seems like kind of a
30
+swiss army knife, and has a `getmouselocation` command.  Theoretically, at
31
+least, you can have it respond to events, including a mouse click.  I can't
32
+quite wrap my head around how this is supposed to work, and my first few
33
+attempts fall flat.
34
+
35
+[GNU xnee](https://www.gnu.org/software/xnee/) might also be promising, but I
36
+don't really get anywhere with it.
37
+
38
+Eventually I find an
39
+[Ask Ubuntu](http://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast)
40
+thread on creating screencast gifs, which points to
41
+[xrectsel](https://github.com/lolilolicon/xrectsel), a tool for
42
+returning the coordinates and size of a screen region selected with the mouse:
43
+
44
+    brennen@desiderata 22:06:28 /var/www/workings-book (master) ★  xrectsel "%x %y %w %h"
45
+    432 130 718 575%
46
+
47
+I wind up with [`gif_sel`](https://github.com/brennen/bpb-kit/blob/master/bin/gif_sel):
48
+
49
+    #!/usr/bin/env bash
50
+
51
+    # requires:
52
+    # https://github.com/lolilolicon/xrectsel.git
53
+
54
+    eval `xrectsel "BYZANZ_X=%x; BYZANZ_Y=%y; BYZANZ_WIDTH=%w; BYZANZ_HEIGHT=%h"`
55
+    byzanz-record -x $BYZANZ_X -y $BYZANZ_Y --delay=4 -h $BYZANZ_HEIGHT -w $BYZANZ_WIDTH ~/screenshots/screencast-`date +"%Y-%m-%d-%T"`.gif
56
+
57
+I'll probably wind up with a couple of wrappers for this for different lengths
58
+of recording (for starting with dmenu), though it would be nice if I could just
59
+have it record until I press some hotkey.

organization/index.md → entries/2014-12-19.md View File

@@ -1,55 +1,7 @@
1
-organization
2
-============
1
+Friday, December 19, 2014
2
+=========================
3 3
 
4
-notes directory
5
----------------
6
-
7
-_sunday, december 7, 2014_
8
-
9
-On organizing todo lists, see [the p1k3 entry from August of
10
-2014](https://p1k3.com/2014/8/23).
11
-
12
-For years now, I've kept that sort of thing in a `notes.txt`.  At some point
13
-notes.txt got its own directory with a haphazard jumble of auxiliary files.  It
14
-looks like I turned that directory into a git repository a couple of years ago.
15
-
16
-Unlike a lot of what I keep in git, `~/notes/` isn't meant for any kind of
17
-publication.  In fact, it'd be pretty dumb to let it out in the world.  So I got
18
-to thinking:  I should really encrypt this.
19
-
20
-So what's the best way to encrypt a single directory on Linux?
21
-
22
-Two search strings:
23
-
24
-- linux encrypted directory
25
-- encrypted git repo
26
-
27
-It looks like maybe [http://ecryptfs.org/][eCryptFS] is the thing?  This machine's an
28
-Ubuntu, so let's see what we can find:
29
-
30
-    $ apt-cache search ecryptfs
31
-    ecryptfs-utils - ecryptfs cryptographic filesystem (utilities)
32
-    ecryptfs-utils-dbg - ecryptfs cryptographic filesystem (utilities; debug)
33
-    libecryptfs-dev - ecryptfs cryptographic filesystem (development)
34
-    libecryptfs0 - ecryptfs cryptographic filesystem (library)
35
-    python-ecryptfs - ecryptfs cryptographic filesystem (python)
36
-    zescrow-client - back up eCryptfs Encrypted Home or Encrypted Private Configuration
37
-
38
-Google suggests that ecryptfs-utils might be what I'm looking for.
39
-
40
-I become distracted reading about protests and leave this idea for another day.
41
-
42
-time tracking
43
--------------
44
-
45
-_monday, december 8, 2014_
46
-
47
-I'm about to start in on some remote contracting stuff, so I go looking for a
48
-time tracking tool.  For the moment I settle on this little tray widget called
49
-[hamster](http://projecthamster.wordpress.com/), which looks functional if not
50
-precisely inspiring.
51
-
52
-_friday, december 19, 2014_
4
+{timetracking}
53 5
 
54 6
 So hamster really doesn't scratch my particular itch all that well.  Rather
55 7
 than devote any serious brain energy to finding or writing a replacement that
@@ -144,3 +96,40 @@ If this were going to be used by anyone but me I would do it in pure-Perl and
144 96
 make it robust against stupid input.
145 97
 
146 98
 [date-examples]: https://www.gnu.org/software/coreutils/manual/html_node/Examples-of-date.html
99
+
100
+drawing tools
101
+-------------
102
+
103
+Ok, so because I'm starting to poke at drawing again for the first time in
104
+quite a while (even to the extent that I'll soon be publishing some stuff that
105
+includes cartoon graphics, despite having _no_ idea what I'm doing), I thought
106
+I'd take some rough notes on where I'm at with toolset.
107
+
108
+The first thing is that I'm not using any Adobe tools, or indeed any
109
+proprietary software (unless you count the firmware on my cameras and maybe
110
+Flickr) to work with images.  I am fully aware that this is a _ridiculous_
111
+limitation to self-impose, but I want to stick with it as best I can.
112
+
113
+For a long time, I've sort of fumbled my way through GIMP whenever I needed to
114
+do the kind of light image editing stuff that inevitably comes up in the life
115
+of a web developer no matter how many things you foist off on your
116
+Photoshop-skilled, design-happy coworkers.  I think GIMP gets kind of an unfair
117
+rap; it's a pretty capable piece of software.  That said, I've still never
118
+really put the time in to get genuinely skilled with it, and it's not the most
119
+accessible thing for just doodling around.
120
+
121
+Several years back, I [bought a cheap Wacom tablet](https://p1k3.com/2011/4/13).
122
+I was maybe a little optimistic in that writeup, but I still really enjoy
123
+[MyPaint](http://mypaint.intilinux.com/).  The problem is that, while it's really
124
+fun for a sketchy/painty/extemperaneous kind of workflow, and dovetails
125
+beautifully with the tablet interface, it deliberately eschews a lot of features
126
+that you start to want for _editing_ an image.  I don't blame its developers for
127
+that --- they're obviously trying to do a certain kind of thing, and constraints
128
+often make for great art --- but I'm wondering if I can't get some of the same
129
+vibe with a tool that also lets me easily cut/copy/scale stuff.
130
+
131
+I'm giving [Krita](https://krita.org/) a shot with that in mind.  It has a real
132
+KDE vibe to it.  Lots of modular GUI widgets, menus, etc.  A little
133
+bureaucratic.  It doesn't feel as fluid or immediate as MyPaint right out of
134
+the gate, but it's definitely got more in the way of features.  Could grow on
135
+me.

+ 17
- 0
entries/2014-12-23.md View File

@@ -0,0 +1,17 @@
1
+Tuesday, December 23, 2014
2
+==========================
3
+
4
+screenshots
5
+-----------
6
+
7
+Looking to streamline capture of static screenshots a bit.  Options:
8
+
9
+- `gnome-screenshot` - use this already, it's fine, whatever.
10
+- `shutter` - weirdness with my xmonad setup?  Errors and I don't feel like taking
11
+  the time to find out why.
12
+- `scrot` - buncha nice command line options
13
+
14
+I wind up forking Tyler's [grab](https://github.com/thcipriani/dotfiles/blob/master/bin/grab),
15
+a nice wrapper for `scrot`, which is pretty much what I was going to write anyway.
16
+
17
+This is pretty good at defining a region for a static screenshot.

candles/index.md → entries/2014-12-28.md View File

@@ -1,8 +1,8 @@
1
-candles & candlemaking
2
-======================
1
+Sunday, December 28, 2014
2
+=========================
3 3
 
4
-sunday, december 28, 2014
5
--------------------------
4
+candles & candlemaking
5
+----------------------
6 6
 
7 7
 A year ago at Christmastime, I decided to see what kind of candlemaking
8 8
 supplies were still at my parents' house, and wound up digging a couple of big

+ 19
- 0
entries/2015-01-03.md View File

@@ -0,0 +1,19 @@
1
+Saturday, January 3, 2015
2
+=========================
3
+
4
+ipv6
5
+----
6
+
7
+I was hanging out on the internet and heard that imt@protocol.club had set up
8
+[club6.nl](https://club6.nl), a tildebox reachable only over ipv6.  I applied
9
+for an account and [got one](https://club6.nl/~brennen) (very speedy turnaround,
10
+[~imt](https://club6.nl/~imt/)).
11
+
12
+The next problem was how to connect.  I am an utter prole when it comes to
13
+networking.  The first thing I remembered was that DigitalOcean optionally
14
+supports ipv6 when creating a new droplet, and sure enough they
15
+also [have a guide for enabling it][enable6] on existing droplets.
16
+
17
+TODO: Get my own sites resolving and reachable via ipv6.
18
+
19
+[enable6]: https://www.digitalocean.com/community/tutorials/how-to-enable-ipv6-for-digitalocean-droplets

writing/index.md → entries/2015-01-07.md View File

@@ -1,11 +1,9 @@
1
-writing and documents
2
-=====================
1
+Wednesday, January 7, 2014
2
+==========================
3 3
 
4 4
 local webservers and static html generation
5 5
 -------------------------------------------
6 6
 
7
-_wednesday, january 7, 2014_
8
-
9 7
 I haven't always run an httpd on my main local machine, but I've been doing it
10 8
 again for the last year or two now, and it feels like a major help.  I started
11 9
 by setting up a development copy of [display][1] under Apache, then noticed

conceptual_framing/index.md → entries/conceptual_framing.md View File


data_toolchain/index.md → entries/data_toolchain.md View File


systemd_notes/index.md → entries/systemd_notes.md View File


+ 0
- 117
image_video/index.md View File

@@ -1,117 +0,0 @@
1
-images & video
2
-==============
3
-
4
-screencast gifs
5
----------------
6
-
7
-_thursday, december 18, 2014_
8
-
9
-Looking to make some GIFs of things that happen on my screen, found `byzanz`.
10
-
11
-    $ sudo apt-get install byzanz
12
-    byzanz-record -x 1 -y 1 --delay=4 -h 150 -w 700 hello_world.gif
13
-
14
-Options:
15
-
16
-- `-x` and `-y` set origin of capture on screen
17
-- `-h` and `-w` set height and width to capture
18
-
19
-I think I need a more clever way to trigger / manage this than just fiddling
20
-with CLI options, but it works really well and produces lightweight image
21
-files.
22
-
23
-I think it would be cool if there were a utility that let me use arrow keys /
24
-hjkl / the mouse cursor to visually select a region of the screen.  It could
25
-return x, y, height, and width, then I'd let byzanz handle the capture.
26
-
27
-That can't be the _hardest_ thing in the world to do.
28
-
29
--> ☆ <-
30
-
31
-[xdotool](http://www.semicomplete.com/projects/xdotool/) seems like kind of a
32
-swiss army knife, and has a `getmouselocation` command.  Theoretically, at
33
-least, you can have it respond to events, including a mouse click.  I can't
34
-quite wrap my head around how this is supposed to work, and my first few
35
-attempts fall flat.
36
-
37
-[GNU xnee](https://www.gnu.org/software/xnee/) might also be promising, but I
38
-don't really get anywhere with it.
39
-
40
-Eventually I find an
41
-[Ask Ubuntu](http://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast)
42
-thread on creating screencast gifs, which points to
43
-[xrectsel](https://github.com/lolilolicon/xrectsel), a tool for
44
-returning the coordinates and size of a screen region selected with the mouse:
45
-
46
-    brennen@desiderata 22:06:28 /var/www/workings-book (master) ★  xrectsel "%x %y %w %h"
47
-    432 130 718 575%
48
-
49
-I wind up with [`gif_sel`](https://github.com/brennen/bpb-kit/blob/master/bin/gif_sel):
50
-
51
-    #!/usr/bin/env bash
52
-
53
-    # requires:
54
-    # https://github.com/lolilolicon/xrectsel.git
55
-
56
-    eval `xrectsel "BYZANZ_X=%x; BYZANZ_Y=%y; BYZANZ_WIDTH=%w; BYZANZ_HEIGHT=%h"`
57
-    byzanz-record -x $BYZANZ_X -y $BYZANZ_Y --delay=4 -h $BYZANZ_HEIGHT -w $BYZANZ_WIDTH ~/screenshots/screencast-`date +"%Y-%m-%d-%T"`.gif
58
-
59
-I'll probably wind up with a couple of wrappers for this for different lengths
60
-of recording (for starting with dmenu), though it would be nice if I could just
61
-have it record until I press some hotkey.
62
-
63
-drawing tools
64
--------------
65
-
66
-_friday, december 19, 2014_
67
-
68
-Ok, so because I'm starting to poke at drawing again for the first time in
69
-quite a while (even to the extent that I'll soon be publishing some stuff that
70
-includes cartoon graphics, despite having _no_ idea what I'm doing), I thought
71
-I'd take some rough notes on where I'm at with toolset.
72
-
73
-The first thing is that I'm not using any Adobe tools, or indeed any
74
-proprietary software (unless you count the firmware on my cameras and maybe
75
-Flickr) to work with images.  I am fully aware that this is a _ridiculous_
76
-limitation to self-impose, but I want to stick with it as best I can.
77
-
78
-For a long time, I've sort of fumbled my way through GIMP whenever I needed to
79
-do the kind of light image editing stuff that inevitably comes up in the life
80
-of a web developer no matter how many things you foist off on your
81
-Photoshop-skilled, design-happy coworkers.  I think GIMP gets kind of an unfair
82
-rap; it's a pretty capable piece of software.  That said, I've still never
83
-really put the time in to get genuinely skilled with it, and it's not the most
84
-accessible thing for just doodling around.
85
-
86
-Several years back, I [bought a cheap Wacom tablet](https://p1k3.com/2011/4/13).
87
-I was maybe a little optimistic in that writeup, but I still really enjoy
88
-[MyPaint](http://mypaint.intilinux.com/).  The problem is that, while it's really
89
-fun for a sketchy/painty/extemperaneous kind of workflow, and dovetails
90
-beautifully with the tablet interface, it deliberately eschews a lot of features
91
-that you start to want for _editing_ an image.  I don't blame its developers for
92
-that --- they're obviously trying to do a certain kind of thing, and constraints
93
-often make for great art --- but I'm wondering if I can't get some of the same
94
-vibe with a tool that also lets me easily cut/copy/scale stuff.
95
-
96
-I'm giving [Krita](https://krita.org/) a shot with that in mind.  It has a real
97
-KDE vibe to it.  Lots of modular GUI widgets, menus, etc.  A little
98
-bureaucratic.  It doesn't feel as fluid or immediate as MyPaint right out of
99
-the gate, but it's definitely got more in the way of features.  Could grow on
100
-me.
101
-
102
-screenshots
103
------------
104
-
105
-_tuesday, december 23, 2014_
106
-
107
-Looking to streamline capture of static screenshots a bit.  Options:
108
-
109
-- `gnome-screenshot` - use this already, it's fine, whatever.
110
-- `shutter` - weirdness with my xmonad setup?  Errors and I don't feel like taking
111
-  the time to find out why.
112
-- `scrot` - buncha nice command line options
113
-
114
-I wind up forking Tyler's [grab](https://github.com/thcipriani/dotfiles/blob/master/bin/grab),
115
-a nice wrapper for `scrot`, which is pretty much what I was going to write anyway.
116
-
117
-This is pretty good at defining a region for a static screenshot.

+ 320
- 332
index.html View File

@@ -35,93 +35,107 @@ that inspired this one.  Go Bears.</p>
35 35
 / <a href="https://ello.co/brennen">@brennen</a>
36 36
 / <a href="http://squiggle.city/~brennen/">~brennen</a></p>
37 37
 
38
+<h2><a name=a-technical-notebook-copying href=#a-technical-notebook-copying>#</a> copying</h2>
39
+
40
+<p><a href="http://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a></p>
41
+
38 42
 <div class=details>
39
-  <h2 class=clicker><a name=contents href=#contents>#</a> contents</h2>
43
+  <h2 class=clicker><a name=a-technical-notebook-contents href=#a-technical-notebook-contents>#</a> contents</h2>
40 44
   <div class=full>
41 45
     <div class=contents><ol>
42 46
 <li><a href="#a-technical-notebook">a technical notebook</a>
43 47
 
44 48
 <ul>
45
-<li><a href="#contents">contents</a></li>
49
+<li><a href="#a-technical-notebook-copying">copying</a></li>
50
+<li><a href="#a-technical-notebook-contents">contents</a></li>
46 51
 </ul>
47 52
 </li>
48
-<li><a href="#sysops">sysops</a>
53
+<li><a href="#Wednesday-December-3-2014">Wednesday, December 3, 2014</a>
49 54
 
50 55
 <ul>
51
-<li><a href="#makecitizen">makecitizen</a></li>
52
-<li><a href="#listusers-squiggle-city-repo">listusers / squiggle.city repo</a></li>
56
+<li><a href="#Wednesday-December-3-2014-makecitizen">makecitizen</a></li>
53 57
 </ul>
54 58
 </li>
55
-<li><a href="#debian">debian</a></li>
56
-<li><a href="#systemd-notes">systemd notes</a></li>
57
-<li><a href="#networked-computing">networked computing</a>
59
+<li><a href="#Friday-December-5-2014">Friday, December 5, 2014</a>
58 60
 
59 61
 <ul>
60
-<li><a href="#ssh">ssh</a></li>
61
-<li><a href="#mosh">mosh</a></li>
62
-<li><a href="#ipv6">ipv6</a></li>
62
+<li><a href="#Friday-December-5-2014-notes-on-vim">notes on vim</a></li>
63
+<li><a href="#Friday-December-5-2014-keybindings">keybindings</a></li>
63 64
 </ul>
64 65
 </li>
65
-<li><a href="#vim">vim</a>
66
+<li><a href="#Sunday-December-7-2014">Sunday, December 7, 2014</a>
66 67
 
67 68
 <ul>
68
-<li><a href="#keybindings">keybindings</a></li>
69
+<li><a href="#Sunday-December-7-2014-notes-directory">notes directory</a></li>
69 70
 </ul>
70 71
 </li>
71
-<li><a href="#organization">organization</a>
72
+<li><a href="#Monday-December-8-2014">Monday, December 8, 2014</a>
72 73
 
73 74
 <ul>
74
-<li><a href="#notes-directory">notes directory</a></li>
75
-<li><a href="#time-tracking">time tracking</a></li>
75
+<li><a href="#Monday-December-8-2014-ssh">ssh</a></li>
76
+<li><a href="#Monday-December-8-2014-mosh">mosh</a></li>
77
+<li><a href="#Monday-December-8-2014-time-tracking">time tracking</a></li>
78
+<li><a href="#Monday-December-8-2014-noobs-raspbian">noobs / raspbian</a></li>
79
+<li><a href="#Monday-December-8-2014-beaglebone-black">beaglebone black</a></li>
80
+<li><a href="#Monday-December-8-2014-reading-list">reading list</a></li>
76 81
 </ul>
77 82
 </li>
78
-<li><a href="#single-board-computers">single-board computers</a>
83
+<li><a href="#Wednesday-December-10-2014">Wednesday, December 10, 2014</a>
79 84
 
80 85
 <ul>
81
-<li><a href="#noobs-raspbian">noobs / raspbian</a></li>
82
-<li><a href="#beaglebone-black">beaglebone black</a></li>
83
-<li><a href="#reading-list">reading list</a></li>
86
+<li><a href="#Wednesday-December-10-2014-listusers-squiggle-city-repo">listusers / squiggle.city repo</a></li>
84 87
 </ul>
85 88
 </li>
86
-<li><a href="#images-amp-video">images &amp; video</a>
89
+<li><a href="#Thursday-December-18-2014">Thursday, December 18, 2014</a>
87 90
 
88 91
 <ul>
89
-<li><a href="#screencast-gifs">screencast gifs</a></li>
90
-<li><a href="#drawing-tools">drawing tools</a></li>
91
-<li><a href="#screenshots">screenshots</a></li>
92
+<li><a href="#Thursday-December-18-2014-screencast-gifs">screencast gifs</a></li>
92 93
 </ul>
93 94
 </li>
94
-<li><a href="#tools-amp-toolchains-for-data-munging-amp-analysis">tools &amp; toolchains for data munging &amp; analysis</a>
95
+<li><a href="#Friday-December-19-2014">Friday, December 19, 2014</a>
96
+
97
+<ul>
98
+<li><a href="#Friday-December-19-2014-drawing-tools">drawing tools</a></li>
99
+</ul>
100
+</li>
101
+<li><a href="#Tuesday-December-23-2014">Tuesday, December 23, 2014</a>
102
+
103
+<ul>
104
+<li><a href="#Tuesday-December-23-2014-screenshots">screenshots</a></li>
105
+</ul>
106
+</li>
107
+<li><a href="#Sunday-December-28-2014">Sunday, December 28, 2014</a>
95 108
 
96 109
 <ul>
97
-<li><a href="#csvkit">csvkit</a></li>
98
-<li><a href="#jq">jq</a></li>
110
+<li><a href="#Sunday-December-28-2014-candles-amp-candlemaking">candles &amp; candlemaking</a></li>
99 111
 </ul>
100 112
 </li>
101
-<li><a href="#candles-amp-candlemaking">candles &amp; candlemaking</a>
113
+<li><a href="#Saturday-January-3-2015">Saturday, January 3, 2015</a>
102 114
 
103 115
 <ul>
104
-<li><a href="#sunday-december-28-2014">sunday, december 28, 2014</a></li>
116
+<li><a href="#Saturday-January-3-2015-ipv6">ipv6</a></li>
105 117
 </ul>
106 118
 </li>
107
-<li><a href="#writing-and-documents">writing and documents</a>
119
+<li><a href="#Wednesday-January-7-2014">Wednesday, January 7, 2014</a>
108 120
 
109 121
 <ul>
110
-<li><a href="#local-webservers-and-static-html-generation">local webservers and static html generation</a></li>
122
+<li><a href="#Wednesday-January-7-2014-local-webservers-and-static-html-generation">local webservers and static html generation</a></li>
111 123
 </ul>
112 124
 </li>
113 125
 <li><a href="#conceptual-framing">conceptual framing</a>
114 126
 
115 127
 <ul>
116
-<li><a href="#namespaces-scope">namespaces / scope</a></li>
128
+<li><a href="#conceptual-framing-namespaces-scope">namespaces / scope</a></li>
117 129
 </ul>
118 130
 </li>
119
-<li><a href="#endmatter">endmatter</a>
131
+<li><a href="#tools-amp-toolchains-for-data-munging-amp-analysis">tools &amp; toolchains for data munging &amp; analysis</a>
120 132
 
121 133
 <ul>
122
-<li><a href="#copying">copying</a></li>
134
+<li><a href="#tools-amp-toolchains-for-data-munging-amp-analysis-csvkit">csvkit</a></li>
135
+<li><a href="#tools-amp-toolchains-for-data-munging-amp-analysis-jq">jq</a></li>
123 136
 </ul>
124 137
 </li>
138
+<li><a href="#systemd-notes">systemd notes</a></li>
125 139
 </ol>
126 140
 
127 141
 </div>
@@ -136,14 +150,11 @@ that inspired this one.  Go Bears.</p>
136 150
 
137 151
 <article>
138 152
 
139
-<h1><a name=sysops href=#sysops>#</a> sysops</h1>
140
-
141
-<p>The specific problems of operating a system with multiple human users.  Much
142
-in reference to <a href="http://squiggle.city/">squiggle.city</a>.</p>
153
+<h1><a name=Wednesday-December-3-2014 href=#Wednesday-December-3-2014>#</a> Wednesday, December 3, 2014</h1>
143 154
 
144
-<h2><a name=makecitizen href=#makecitizen>#</a> makecitizen</h2>
155
+<h2><a name=Wednesday-December-3-2014-makecitizen href=#Wednesday-December-3-2014-makecitizen>#</a> makecitizen</h2>
145 156
 
146
-<p><em>wednesday, december 3, 2014</em></p>
157
+<p>{sysops, scripting, adduser, chfn}</p>
147 158
 
148 159
 <p>Paul Ford sent out an e-mail to the tilde.club
149 160
 waitlist pointing at ~pfhawkins&rsquo;s list of other tildes, so I&rsquo;m getting signup
@@ -227,41 +238,6 @@ containing the set of users.</p>
227 238
 
228 239
 <p>(Thoughts like this are how systems like Puppet and Chef are born.)</p>
229 240
 
230
-<h2><a name=listusers-squiggle-city-repo href=#listusers-squiggle-city-repo>#</a> listusers / squiggle.city repo</h2>
231
-
232
-<p><em>wednesday, december 10, 2014</em></p>
233
-
234
-<p>There&rsquo;s now a <a href="https://github.com/squigglecity/">squigglecity organization on GitHub</a>.
235
-What little is there is a classic duct-tape mess complete with a bunch of
236
-commits made as root, but may contain a few useful bits.</p>
237
-
238
-<p>I&rsquo;m planning to clean up <a href="https://github.com/squigglecity/squiggle.city/blob/1a07ccc8415b05ad239116a062d2992ae1537541/listusers.pl">this version of listusers.pl</a> into a
239
-more generic <code>listusers</code> utility that just outputs TSV and pipe to csvkit / <code>jq</code>
240
-for HTML &amp; JSON.</p>
241
-
242
-<p>Oh, right &mdash; about the JSON.  ~ford proposed a standard <code>tilde.json</code> <a href="http://squiggle.city/tilde.json">kind of
243
-like this</a>, which I think is not a terrible
244
-idea at all though that one&rsquo;s a bit rough and the format could still use a
245
-little tweaking as of this writing.</p>
246
-
247
-<p>This is the kind of thing it&rsquo;s unbelievably easy to overthink.  I&rsquo;m hoping
248
-we&rsquo;ll give it enough thought to do a few smart things but not so much thought
249
-that no one actually uses it.</p>
250
-
251
-
252
-</article>
253
-
254
-
255
-
256
-<article>
257
-
258
-<h1><a name=debian href=#debian>#</a> debian</h1>
259
-
260
-<ul>
261
-<li><a href="https://www.debian.org/doc/manuals/maint-guide/">Debian New Maintainers' Guide</a></li>
262
-</ul>
263
-
264
-
265 241
 
266 242
 </article>
267 243
 
@@ -269,91 +245,9 @@ that no one actually uses it.</p>
269 245
 
270 246
 <article>
271 247
 
272
-<h1><a name=systemd-notes href=#systemd-notes>#</a> systemd notes</h1>
273
-
274
-<ul>
275
-<li>https://letsgettechnicalblog.wordpress.com/2014/07/07/systemd-on-raspbian/</li>
276
-</ul>
277
-
278
-
279
-
280
-</article>
281
-
282
-
283
-
284
-<article>
285
-
286
-<h1><a name=networked-computing href=#networked-computing>#</a> networked computing</h1>
287
-
288
-<h2><a name=ssh href=#ssh>#</a> ssh</h2>
289
-
290
-<p><em>monday, december 8, 2014</em></p>
291
-
292
-<p>I use SSH for damn near everything.  We need SSH for damn near everything.</p>
293
-
294
-<p>I have this thought that SSH is quite possibly the only end-user-exposed
295
-implementation of acceptable crypto in wide use which actually satisfies the
296
-&ldquo;actual human beings can use this&rdquo; constraint at the same time as satisfying
297
-the &ldquo;this makes your shit relatively secure&rdquo; constraint.  That&rsquo;s not to say
298
-it&rsquo;s easy for the average mortal to comprehend, but it beats the shit out of
299
-almost everything else I can think of.</p>
300
-
301
-<p>In &ldquo;almost everything else&rdquo;, I include SSL/TLS/HTTPS, which sort-of works as
302
-far as the general user population of browsers is concerned, much of the time,
303
-but which is an absolute nightmare to administer and which is a fundamentally
304
-broken design on a political / systems-of-control / economic /
305
-regular-admins-get-this-right level.  Arguably, the only thing that has been
306
-worse for the wide adoption of crypto by normal users than SSL/TLS is PGP.</p>
307
-
308
-<p>DISCLAIMER:  I DON&rsquo;T KNOW SHIT ABOUT CRYPTO.  Tell me how I&rsquo;m wrong.</p>
309
-
310
-<p style="text-align:center;"> ✴</p>
311
-
312
-<ul>
313
-<li>&ldquo;<a href="http://harmful.cat-v.org/software/ssh">Sorry Theo, but SSH Sucks</a>&rdquo;</li>
314
-</ul>
248
+<h1><a name=Friday-December-5-2014 href=#Friday-December-5-2014>#</a> Friday, December 5, 2014</h1>
315 249
 
316
-
317
-<h2><a name=mosh href=#mosh>#</a> mosh</h2>
318
-
319
-<p><em>monday, december 8, 2014</em></p>
320
-
321
-<p>I&rsquo;m not exactly sure when mosh started to catch on with people I know, but I&rsquo;d
322
-say it&rsquo;s on the order of a year or two that I&rsquo;ve been aware of it.  The basic
323
-thing here is that it&rsquo;s essentially OpenSSH with better characteristics for a
324
-specific cluster of use cases:</p>
325
-
326
-<ul>
327
-<li>laggy, high-latency, intermittently-broken network connections</li>
328
-<li>client machines that frequently hop networks and/or suspend operations</li>
329
-<li>unreliable VPNs (which is to say very nearly all VPNS in actual use)</li>
330
-</ul>
331
-
332
-
333
-<h2><a name=ipv6 href=#ipv6>#</a> ipv6</h2>
334
-
335
-<p><em>saturday, january 3, 2015</em></p>
336
-
337
-<p>I was hanging out on the internet and heard that imt@protocol.club had set up
338
-<a href="https://club6.nl">club6.nl</a>, a tildebox reachable only over ipv6.  I applied
339
-for an account and <a href="https://club6.nl/~brennen">got one</a> (very speedy turnaround,
340
-<a href="https://club6.nl/~imt/">~imt</a>).</p>
341
-
342
-<p>The next problem was how to connect.  I am an utter prole when it comes to
343
-networking.  The first thing I remembered was that DigitalOcean optionally
344
-supports ipv6 when creating a new droplet, and sure enough they
345
-also <a href="https://www.digitalocean.com/community/tutorials/how-to-enable-ipv6-for-digitalocean-droplets">have a guide for enabling it</a> on existing droplets.</p>
346
-
347
-<p>TODO: Get my own sites resolving and reachable via ipv6.</p>
348
-
349
-
350
-</article>
351
-
352
-
353
-
354
-<article>
355
-
356
-<h1><a name=vim href=#vim>#</a> vim</h1>
250
+<h2><a name=Friday-December-5-2014-notes-on-vim href=#Friday-December-5-2014-notes-on-vim>#</a> notes on vim</h2>
357 251
 
358 252
 <p>Vim is a text editor.  My slowly-evolving configuration can be found on GitHub,
359 253
 in <a href="https://github.com/brennen/bpb-kit">bpb-kit</a>.</p>
@@ -361,9 +255,7 @@ in <a href="https://github.com/brennen/bpb-kit">bpb-kit</a>.</p>
361 255
 <p><a href="https://github.com/thcipriani/">Tyler Cipriani</a> is a lot smarter than I am about vim (and, in
362 256
 fact, most things), but I am particular and don&rsquo;t always share his preferences.</p>
363 257
 
364
-<h2><a name=keybindings href=#keybindings>#</a> keybindings</h2>
365
-
366
-<p><em>friday, december 5, 2014</em></p>
258
+<h2><a name=Friday-December-5-2014-keybindings href=#Friday-December-5-2014-keybindings>#</a> keybindings</h2>
367 259
 
368 260
 <p>I&rsquo;m starting in on this notebook, which uses a Makefile, and think it might be
369 261
 nice to have a quick vim keybinding for <code>:make</code>.  I would use <code>F5</code>, by analogy
@@ -410,11 +302,9 @@ implemented it.</p>
410 302
 
411 303
 <article>
412 304
 
413
-<h1><a name=organization href=#organization>#</a> organization</h1>
414
-
415
-<h2><a name=notes-directory href=#notes-directory>#</a> notes directory</h2>
305
+<h1><a name=Sunday-December-7-2014 href=#Sunday-December-7-2014>#</a> Sunday, December 7, 2014</h1>
416 306
 
417
-<p><em>sunday, december 7, 2014</em></p>
307
+<h2><a name=Sunday-December-7-2014-notes-directory href=#Sunday-December-7-2014-notes-directory>#</a> notes directory</h2>
418 308
 
419 309
 <p>On organizing todo lists, see <a href="https://p1k3.com/2014/8/23">the p1k3 entry from August of
420 310
 2014</a>.</p>
@@ -453,126 +343,64 @@ zescrow-client - back up eCryptfs Encrypted Home or Encrypted Private Configurat
453 343
 
454 344
 <p>I become distracted reading about protests and leave this idea for another day.</p>
455 345
 
456
-<h2><a name=time-tracking href=#time-tracking>#</a> time tracking</h2>
457
-
458
-<p><em>monday, december 8, 2014</em></p>
459 346
 
460
-<p>I&rsquo;m about to start in on some remote contracting stuff, so I go looking for a
461
-time tracking tool.  For the moment I settle on this little tray widget called
462
-<a href="http://projecthamster.wordpress.com/">hamster</a>, which looks functional if not
463
-precisely inspiring.</p>
464
-
465
-<p><em>friday, december 19, 2014</em></p>
466
-
467
-<p>So hamster really doesn&rsquo;t scratch my particular itch all that well.  Rather
468
-than devote any serious brain energy to finding or writing a replacement that
469
-does, I&rsquo;ve decided to just use a text file.</p>
470
-
471
-<p>It looks like the following:</p>
472
-
473
-<pre><code>2014-12-17 21:55 - 2014-12-17 11:40
474
-2014-12-18 10:05 - 2014-12-18 12:50
475
-2014-12-18 13:45 - 2014-12-18 16:00
476
-</code></pre>
477
-
478
-<p>This is just two datetimes for each range of time when I&rsquo;m working on a given
479
-thing, delimited by <code>/ - /</code>.  I just want a quick script to tally the time
480
-represented.  (Later, if I need to track more than one project, I&rsquo;ll expand on
481
-this by adding a project name and/or notes to the end of the line.)</p>
482
-
483
-<p>It kind of seems like I should be able to do this with GNU <code>date</code>, but let&rsquo;s
484
-find out.  Here&rsquo;re the <a href="https://www.gnu.org/software/coreutils/manual/html_node/Examples-of-date.html">official examples</a>.  This sounds about
485
-right:</p>
486
-
487
-<blockquote><p>To convert a date string to the number of seconds since the epoch (which is
488
-1970-01-01 00:00:00 UTC), use the &ndash;date option with the ‘%s’ format. That
489
-can be useful in sorting and/or graphing and/or comparing data by date. The
490
-following command outputs the number of the seconds since the epoch for the
491
-time two minutes after the epoch:</p>
492
-
493
-<pre><code>    date --date='1970-01-01 00:02:00 +0000' +%s
494
-    120
495
-</code></pre></blockquote>
496
-
497
-<p>As a test case, I start here:</p>
498
-
499
-<pre><code>$ cat ~/bin/timelog
500
-#!/usr/bin/env bash
501
-
502
-date --date="$1" +%s
503
-
504
-$ timelog '2014-12-17 21:55'
505
-1418878500
506
-</code></pre>
507
-
508
-<p>Ok, groovy.</p>
347
+</article>
509 348
 
510
-<p>I was going to do the rest of this in shell or awk or something, but then I
511
-thought &ldquo;I should not spend more than 10 minutes on this&rdquo;, and wrote the following
512
-Perl:</p>
513 349
 
514
-<pre><code>#!/usr/bin/env perl
515 350
 
516
-use warnings;
517
-use strict;
518
-use 5.10.0;
351
+<article>
519 352
 
520
-my $total_hours = 0;
353
+<h1><a name=Monday-December-8-2014 href=#Monday-December-8-2014>#</a> Monday, December 8, 2014</h1>
521 354
 
522
-# while we've got input from a file/stdin, split it into two datestamps
523
-# and feed that to date(1)
524
-while (my $line = &lt;&gt;) {
525
-  chomp($line);
526
-  my ($start, $end) = map { get_seconds($_) } split / - /, $line;
527
-  my $interval = $end - $start;
528
-  my $hours = $interval / 3600;
529
-  $total_hours += $hours;
530
-  say sprintf("$line - %.3f hours", $hours);
531
-}
355
+<h2><a name=Monday-December-8-2014-ssh href=#Monday-December-8-2014-ssh>#</a> ssh</h2>
532 356
 
533
-say sprintf("%.3f total hours", $total_hours);
357
+<p>I use SSH for damn near everything.  We need SSH for damn near everything.</p>
534 358
 
535
-sub get_seconds {
536
-  my ($stamp) = @_;
537
-  my $seconds = `date --date="$stamp" +%s`;
538
-  chomp($seconds);
539
-  return $seconds;
540
-}
541
-</code></pre>
359
+<p>I have this thought that SSH is quite possibly the only end-user-exposed
360
+implementation of acceptable crypto in wide use which actually satisfies the
361
+&ldquo;actual human beings can use this&rdquo; constraint at the same time as satisfying
362
+the &ldquo;this makes your shit relatively secure&rdquo; constraint.  That&rsquo;s not to say
363
+it&rsquo;s easy for the average mortal to comprehend, but it beats the shit out of
364
+almost everything else I can think of.</p>
542 365
 
543
-<p>Which gives this sort of output:</p>
366
+<p>In &ldquo;almost everything else&rdquo;, I include SSL/TLS/HTTPS, which sort-of works as
367
+far as the general user population of browsers is concerned, much of the time,
368
+but which is an absolute nightmare to administer and which is a fundamentally
369
+broken design on a political / systems-of-control / economic /
370
+regular-admins-get-this-right level.  Arguably, the only thing that has been
371
+worse for the wide adoption of crypto by normal users than SSL/TLS is PGP.</p>
544 372
 
545
-<pre><code>brennen@desiderata 14:54:38 /home/brennen/bin (master) ★ timelog ~/notes/some_employer.txt
546
-2014-12-15 13:10 - 2014-12-15 14:35 - 1.417 hours
547
-2014-12-16 10:00 - 2014-12-16 12:55 - 2.917 hours
548
-2014-12-16 14:00 - 2014-12-16 17:15 - 3.250 hours
549
-2014-12-17 15:00 - 2014-12-17 16:51 - 1.850 hours
550
-2014-12-17 21:55 - 2014-12-17 23:40 - 1.750 hours
551
-2014-12-18 10:05 - 2014-12-18 12:50 - 2.750 hours
552
-2014-12-18 13:45 - 2014-12-18 16:00 - 2.250 hours
553
-2014-12-18 17:00 - 2014-12-18 17:30 - 0.500 hours
554
-16.683 total hours
555
-</code></pre>
373
+<p>DISCLAIMER:  I DON&rsquo;T KNOW SHIT ABOUT CRYPTO.  Tell me how I&rsquo;m wrong.</p>
556 374
 
557
-<p>This is me once again being lazy and treating Perl as a way to wrap shell
558
-utilities when I want to easily chop stuff up and do arithmetic.  It is <em>many
559
-kinds of wrong</em> to do things this way, but right now I don&rsquo;t care.</p>
375
+<p style="text-align:center;"> ✴</p>
560 376
 
561
-<p>If this were going to be used by anyone but me I would do it in pure-Perl and
562
-make it robust against stupid input.</p>
377
+<ul>
378
+<li>&ldquo;<a href="http://harmful.cat-v.org/software/ssh">Sorry Theo, but SSH Sucks</a>&rdquo;</li>
379
+</ul>
563 380
 
564 381
 
565
-</article>
382
+<h2><a name=Monday-December-8-2014-mosh href=#Monday-December-8-2014-mosh>#</a> mosh</h2>
566 383
 
384
+<p>I&rsquo;m not exactly sure when mosh started to catch on with people I know, but I&rsquo;d
385
+say it&rsquo;s on the order of a year or two that I&rsquo;ve been aware of it.  The basic
386
+thing here is that it&rsquo;s essentially OpenSSH with better characteristics for a
387
+specific cluster of use cases:</p>
567 388
 
389
+<ul>
390
+<li>laggy, high-latency, intermittently-broken network connections</li>
391
+<li>client machines that frequently hop networks and/or suspend operations</li>
392
+<li>unreliable VPNs (which is to say very nearly all VPNS in actual use)</li>
393
+</ul>
568 394
 
569
-<article>
570 395
 
571
-<h1><a name=single-board-computers href=#single-board-computers>#</a> single-board computers</h1>
396
+<h2><a name=Monday-December-8-2014-time-tracking href=#Monday-December-8-2014-time-tracking>#</a> time tracking</h2>
572 397
 
573
-<h2><a name=noobs-raspbian href=#noobs-raspbian>#</a> noobs / raspbian</h2>
398
+<p>I&rsquo;m about to start in on some remote contracting stuff, so I go looking for a
399
+time tracking tool.  For the moment I settle on this little tray widget called
400
+<a href="http://projecthamster.wordpress.com/">hamster</a>, which looks functional if not
401
+precisely inspiring.</p>
574 402
 
575
-<p><em>monday, december 8, 2014</em></p>
403
+<h2><a name=Monday-December-8-2014-noobs-raspbian href=#Monday-December-8-2014-noobs-raspbian>#</a> noobs / raspbian</h2>
576 404
 
577 405
 <p>Last year I did a bunch of work on a Raspberry Pi, but it&rsquo;s been a few months
578 406
 since I booted one up.  I got a model B+ (more USB ports, various hardware
@@ -735,9 +563,7 @@ night might is likely dying/dead.</p>
735 563
 
736 564
 <p>This is a really slick install process now, so good work to somebody on that.</p>
737 565
 
738
-<h2><a name=beaglebone-black href=#beaglebone-black>#</a> beaglebone black</h2>
739
-
740
-<p><em>monday, december 8, 2014</em></p>
566
+<h2><a name=Monday-December-8-2014-beaglebone-black href=#Monday-December-8-2014-beaglebone-black>#</a> beaglebone black</h2>
741 567
 
742 568
 <p>I&rsquo;ve got a Beaglebone Black sitting here new in the box.  It comes with a USB
743 569
 cable, so I plug it in.  Instantly there are bright blue blinky lights, and my
@@ -757,11 +583,12 @@ strikes me as good tech in a bunch of ways.</p>
757 583
 for Secret Agents</em>.  It&rsquo;s been on my ever-growing to-read list for a while; I&rsquo;m
758 584
 going to have to give it a look sooner rather than later.</p>
759 585
 
760
-<h2><a name=reading-list href=#reading-list>#</a> reading list</h2>
586
+<h2><a name=Monday-December-8-2014-reading-list href=#Monday-December-8-2014-reading-list>#</a> reading list</h2>
761 587
 
762 588
 <ul>
763 589
 <li>http://www.jann.cc/2013/01/15/trying_out_the_adafruit_webide.html</li>
764 590
 <li>http://www.angstrom-distribution.org/</li>
591
+<li>http://www.raspberrypi.org/documentation/configuration/config-txt.md</li>
765 592
 </ul>
766 593
 
767 594
 
@@ -772,11 +599,37 @@ going to have to give it a look sooner rather than later.</p>
772 599
 
773 600
 <article>
774 601
 
775
-<h1><a name=images-amp-video href=#images-amp-video>#</a> images &amp; video</h1>
602
+<h1><a name=Wednesday-December-10-2014 href=#Wednesday-December-10-2014>#</a> Wednesday, December 10, 2014</h1>
603
+
604
+<h2><a name=Wednesday-December-10-2014-listusers-squiggle-city-repo href=#Wednesday-December-10-2014-listusers-squiggle-city-repo>#</a> listusers / squiggle.city repo</h2>
605
+
606
+<p>There&rsquo;s now a <a href="https://github.com/squigglecity/">squigglecity organization on GitHub</a>.
607
+What little is there is a classic duct-tape mess complete with a bunch of
608
+commits made as root, but may contain a few useful bits.</p>
609
+
610
+<p>I&rsquo;m planning to clean up <a href="https://github.com/squigglecity/squiggle.city/blob/1a07ccc8415b05ad239116a062d2992ae1537541/listusers.pl">this version of listusers.pl</a> into a
611
+more generic <code>listusers</code> utility that just outputs TSV and pipe to csvkit / <code>jq</code>
612
+for HTML &amp; JSON.</p>
613
+
614
+<p>Oh, right &mdash; about the JSON.  ~ford proposed a standard <code>tilde.json</code> <a href="http://squiggle.city/tilde.json">kind of
615
+like this</a>, which I think is not a terrible
616
+idea at all though that one&rsquo;s a bit rough and the format could still use a
617
+little tweaking as of this writing.</p>
618
+
619
+<p>This is the kind of thing it&rsquo;s unbelievably easy to overthink.  I&rsquo;m hoping
620
+we&rsquo;ll give it enough thought to do a few smart things but not so much thought
621
+that no one actually uses it.</p>
622
+
623
+
624
+</article>
625
+
626
+
776 627
 
777
-<h2><a name=screencast-gifs href=#screencast-gifs>#</a> screencast gifs</h2>
628
+<article>
629
+
630
+<h1><a name=Thursday-December-18-2014 href=#Thursday-December-18-2014>#</a> Thursday, December 18, 2014</h1>
778 631
 
779
-<p><em>thursday, december 18, 2014</em></p>
632
+<h2><a name=Thursday-December-18-2014-screencast-gifs href=#Thursday-December-18-2014-screencast-gifs>#</a> screencast gifs</h2>
780 633
 
781 634
 <p>Looking to make some GIFs of things that happen on my screen, found <code>byzanz</code>.</p>
782 635
 
@@ -838,9 +691,115 @@ byzanz-record -x $BYZANZ_X -y $BYZANZ_Y --delay=4 -h $BYZANZ_HEIGHT -w $BYZANZ_W
838 691
 of recording (for starting with dmenu), though it would be nice if I could just
839 692
 have it record until I press some hotkey.</p>
840 693
 
841
-<h2><a name=drawing-tools href=#drawing-tools>#</a> drawing tools</h2>
842 694
 
843
-<p><em>friday, december 19, 2014</em></p>
695
+</article>
696
+
697
+
698
+
699
+<article>
700
+
701
+<h1><a name=Friday-December-19-2014 href=#Friday-December-19-2014>#</a> Friday, December 19, 2014</h1>
702
+
703
+<p>{timetracking}</p>
704
+
705
+<p>So hamster really doesn&rsquo;t scratch my particular itch all that well.  Rather
706
+than devote any serious brain energy to finding or writing a replacement that
707
+does, I&rsquo;ve decided to just use a text file.</p>
708
+
709
+<p>It looks like the following:</p>
710
+
711
+<pre><code>2014-12-17 21:55 - 2014-12-17 11:40
712
+2014-12-18 10:05 - 2014-12-18 12:50
713
+2014-12-18 13:45 - 2014-12-18 16:00
714
+</code></pre>
715
+
716
+<p>This is just two datetimes for each range of time when I&rsquo;m working on a given
717
+thing, delimited by <code>/ - /</code>.  I just want a quick script to tally the time
718
+represented.  (Later, if I need to track more than one project, I&rsquo;ll expand on
719
+this by adding a project name and/or notes to the end of the line.)</p>
720
+
721
+<p>It kind of seems like I should be able to do this with GNU <code>date</code>, but let&rsquo;s
722
+find out.  Here&rsquo;re the <a href="https://www.gnu.org/software/coreutils/manual/html_node/Examples-of-date.html">official examples</a>.  This sounds about
723
+right:</p>
724
+
725
+<blockquote><p>To convert a date string to the number of seconds since the epoch (which is
726
+1970-01-01 00:00:00 UTC), use the &ndash;date option with the ‘%s’ format. That
727
+can be useful in sorting and/or graphing and/or comparing data by date. The
728
+following command outputs the number of the seconds since the epoch for the
729
+time two minutes after the epoch:</p>
730
+
731
+<pre><code>    date --date='1970-01-01 00:02:00 +0000' +%s
732
+    120
733
+</code></pre></blockquote>
734
+
735
+<p>As a test case, I start here:</p>
736
+
737
+<pre><code>$ cat ~/bin/timelog
738
+#!/usr/bin/env bash
739
+
740
+date --date="$1" +%s
741
+
742
+$ timelog '2014-12-17 21:55'
743
+1418878500
744
+</code></pre>
745
+
746
+<p>Ok, groovy.</p>
747
+
748
+<p>I was going to do the rest of this in shell or awk or something, but then I
749
+thought &ldquo;I should not spend more than 10 minutes on this&rdquo;, and wrote the following
750
+Perl:</p>
751
+
752
+<pre><code>#!/usr/bin/env perl
753
+
754
+use warnings;
755
+use strict;
756
+use 5.10.0;
757
+
758
+my $total_hours = 0;
759
+
760
+# while we've got input from a file/stdin, split it into two datestamps
761
+# and feed that to date(1)
762
+while (my $line = &lt;&gt;) {
763
+  chomp($line);
764
+  my ($start, $end) = map { get_seconds($_) } split / - /, $line;
765
+  my $interval = $end - $start;
766
+  my $hours = $interval / 3600;
767
+  $total_hours += $hours;
768
+  say sprintf("$line - %.3f hours", $hours);
769
+}
770
+
771
+say sprintf("%.3f total hours", $total_hours);
772
+
773
+sub get_seconds {
774
+  my ($stamp) = @_;
775
+  my $seconds = `date --date="$stamp" +%s`;
776
+  chomp($seconds);
777
+  return $seconds;
778
+}
779
+</code></pre>
780
+
781
+<p>Which gives this sort of output:</p>
782
+
783
+<pre><code>brennen@desiderata 14:54:38 /home/brennen/bin (master) ★ timelog ~/notes/some_employer.txt
784
+2014-12-15 13:10 - 2014-12-15 14:35 - 1.417 hours
785
+2014-12-16 10:00 - 2014-12-16 12:55 - 2.917 hours
786
+2014-12-16 14:00 - 2014-12-16 17:15 - 3.250 hours
787
+2014-12-17 15:00 - 2014-12-17 16:51 - 1.850 hours
788
+2014-12-17 21:55 - 2014-12-17 23:40 - 1.750 hours
789
+2014-12-18 10:05 - 2014-12-18 12:50 - 2.750 hours
790
+2014-12-18 13:45 - 2014-12-18 16:00 - 2.250 hours
791
+2014-12-18 17:00 - 2014-12-18 17:30 - 0.500 hours
792
+16.683 total hours
793
+</code></pre>
794
+
795
+<p>This is me once again being lazy and treating Perl as a way to wrap shell
796
+utilities when I want to easily chop stuff up and do arithmetic.  It is <em>many
797
+kinds of wrong</em> to do things this way, but right now I don&rsquo;t care.</p>
798
+
799
+<p>If this were going to be used by anyone but me I would do it in pure-Perl and
800
+make it robust against stupid input.</p>
801
+
802
+<h2><a name=Friday-December-19-2014-drawing-tools href=#Friday-December-19-2014-drawing-tools>#</a> drawing tools</h2>
844 803
 
845 804
 <p>Ok, so because I&rsquo;m starting to poke at drawing again for the first time in
846 805
 quite a while (even to the extent that I&rsquo;ll soon be publishing some stuff that
@@ -876,9 +835,16 @@ bureaucratic.  It doesn&rsquo;t feel as fluid or immediate as MyPaint right out
876 835
 the gate, but it&rsquo;s definitely got more in the way of features.  Could grow on
877 836
 me.</p>
878 837
 
879
-<h2><a name=screenshots href=#screenshots>#</a> screenshots</h2>
880 838
 
881
-<p><em>tuesday, december 23, 2014</em></p>
839
+</article>
840
+
841
+
842
+
843
+<article>
844
+
845
+<h1><a name=Tuesday-December-23-2014 href=#Tuesday-December-23-2014>#</a> Tuesday, December 23, 2014</h1>
846
+
847
+<h2><a name=Tuesday-December-23-2014-screenshots href=#Tuesday-December-23-2014-screenshots>#</a> screenshots</h2>
882 848
 
883 849
 <p>Looking to streamline capture of static screenshots a bit.  Options:</p>
884 850
 
@@ -902,55 +868,9 @@ a nice wrapper for <code>scrot</code>, which is pretty much what I was going to
902 868
 
903 869
 <article>
904 870
 
905
-<h1><a name=tools-amp-toolchains-for-data-munging-amp-analysis href=#tools-amp-toolchains-for-data-munging-amp-analysis>#</a> tools &amp; toolchains for data munging &amp; analysis</h1>
906
-
907
-<h2><a name=csvkit href=#csvkit>#</a> csvkit</h2>
908
-
909
-<p>This is super handy.  Wish I&rsquo;d started using it sooner:</p>
910
-
911
-<blockquote><p>csvkit is a suite of utilities for converting to and working with CSV, the
912
-king of tabular file formats.</p>
913
-
914
-<p>&hellip;</p>
871
+<h1><a name=Sunday-December-28-2014 href=#Sunday-December-28-2014>#</a> Sunday, December 28, 2014</h1>
915 872
 
916
-<p>csvkit is to tabular data what the standard Unix text processing suite (grep,
917
-sed, cut, sort) is to text. As such, csvkit adheres to the Unix philosophy.</p>
918
-
919
-<ol>
920
-<li>Small is beautiful.</li>
921
-<li>Make each program do one thing well.</li>
922
-<li>Build a prototype as soon as possible.</li>
923
-<li>Choose portability over efficiency.</li>
924
-<li>Store data in flat text files.</li>
925
-<li>Use software leverage to your advantage.</li>
926
-<li>Use shell scripts to increase leverage and portability.</li>
927
-<li>Avoid captive user interfaces.</li>
928
-<li>Make every program a filter.</li>
929
-</ol>
930
-</blockquote>
931
-
932
-<p>&ndash; <a href="https://csvkit.readthedocs.org/en/0.9.0">csvkit 0.9.0</a></p>
933
-
934
-<h2><a name=jq href=#jq>#</a> jq</h2>
935
-
936
-<p>Also super handy, if a notch less intuitive.  Powerful DSL / pretty-printer /
937
-filter for working with JSON records at the command line.</p>
938
-
939
-<ul>
940
-<li>http://stedolan.github.io/jq/</li>
941
-</ul>
942
-
943
-
944
-
945
-</article>
946
-
947
-
948
-
949
-<article>
950
-
951
-<h1><a name=candles-amp-candlemaking href=#candles-amp-candlemaking>#</a> candles &amp; candlemaking</h1>
952
-
953
-<h2><a name=sunday-december-28-2014 href=#sunday-december-28-2014>#</a> sunday, december 28, 2014</h2>
873
+<h2><a name=Sunday-December-28-2014-candles-amp-candlemaking href=#Sunday-December-28-2014-candles-amp-candlemaking>#</a> candles &amp; candlemaking</h2>
954 874
 
955 875
 <p>A year ago at Christmastime, I decided to see what kind of candlemaking
956 876
 supplies were still at my parents' house, and wound up digging a couple of big
@@ -999,11 +919,32 @@ pans out.</li>
999 919
 
1000 920
 <article>
1001 921
 
1002
-<h1><a name=writing-and-documents href=#writing-and-documents>#</a> writing and documents</h1>
922
+<h1><a name=Saturday-January-3-2015 href=#Saturday-January-3-2015>#</a> Saturday, January 3, 2015</h1>
1003 923
 
1004
-<h2><a name=local-webservers-and-static-html-generation href=#local-webservers-and-static-html-generation>#</a> local webservers and static html generation</h2>
924
+<h2><a name=Saturday-January-3-2015-ipv6 href=#Saturday-January-3-2015-ipv6>#</a> ipv6</h2>
1005 925
 
1006
-<p><em>wednesday, january 7, 2014</em></p>
926
+<p>I was hanging out on the internet and heard that imt@protocol.club had set up
927
+<a href="https://club6.nl">club6.nl</a>, a tildebox reachable only over ipv6.  I applied
928
+for an account and <a href="https://club6.nl/~brennen">got one</a> (very speedy turnaround,
929
+<a href="https://club6.nl/~imt/">~imt</a>).</p>
930
+
931
+<p>The next problem was how to connect.  I am an utter prole when it comes to
932
+networking.  The first thing I remembered was that DigitalOcean optionally
933
+supports ipv6 when creating a new droplet, and sure enough they
934
+also <a href="https://www.digitalocean.com/community/tutorials/how-to-enable-ipv6-for-digitalocean-droplets">have a guide for enabling it</a> on existing droplets.</p>
935
+
936
+<p>TODO: Get my own sites resolving and reachable via ipv6.</p>
937
+
938
+
939
+</article>
940
+
941
+
942
+
943
+<article>
944
+
945
+<h1><a name=Wednesday-January-7-2014 href=#Wednesday-January-7-2014>#</a> Wednesday, January 7, 2014</h1>
946
+
947
+<h2><a name=Wednesday-January-7-2014-local-webservers-and-static-html-generation href=#Wednesday-January-7-2014-local-webservers-and-static-html-generation>#</a> local webservers and static html generation</h2>
1007 948
 
1008 949
 <p>I haven&rsquo;t always run an httpd on my main local machine, but I&rsquo;ve been doing it
1009 950
 again for the last year or two now, and it feels like a major help.  I started
@@ -1066,7 +1007,7 @@ statically.</p>
1066 1007
 
1067 1008
 <h1><a name=conceptual-framing href=#conceptual-framing>#</a> conceptual framing</h1>
1068 1009
 
1069
-<h2><a name=namespaces-scope href=#namespaces-scope>#</a> namespaces / scope</h2>
1010
+<h2><a name=conceptual-framing-namespaces-scope href=#conceptual-framing-namespaces-scope>#</a> namespaces / scope</h2>
1070 1011
 
1071 1012
 <p>I&rsquo;ve got an aversion to hierarchy, developed out of equal parts natural
1072 1013
 contempt for authority qua authority and learned fear of certain modes of
@@ -1092,11 +1033,58 @@ tasks without continually reasoning about the program as a whole.</p>
1092 1033
 
1093 1034
 <article>
1094 1035
 
1095
-<h1><a name=endmatter href=#endmatter>#</a> endmatter</h1>
1036
+<h1><a name=tools-amp-toolchains-for-data-munging-amp-analysis href=#tools-amp-toolchains-for-data-munging-amp-analysis>#</a> tools &amp; toolchains for data munging &amp; analysis</h1>
1096 1037
 
1097
-<h2><a name=copying href=#copying>#</a> copying</h2>
1038
+<h2><a name=tools-amp-toolchains-for-data-munging-amp-analysis-csvkit href=#tools-amp-toolchains-for-data-munging-amp-analysis-csvkit>#</a> csvkit</h2>
1039
+
1040
+<p>This is super handy.  Wish I&rsquo;d started using it sooner:</p>
1041
+
1042
+<blockquote><p>csvkit is a suite of utilities for converting to and working with CSV, the
1043
+king of tabular file formats.</p>
1044
+
1045
+<p>&hellip;</p>
1046
+
1047
+<p>csvkit is to tabular data what the standard Unix text processing suite (grep,
1048
+sed, cut, sort) is to text. As such, csvkit adheres to the Unix philosophy.</p>
1049
+
1050
+<ol>
1051
+<li>Small is beautiful.</li>
1052
+<li>Make each program do one thing well.</li>
1053
+<li>Build a prototype as soon as possible.</li>
1054
+<li>Choose portability over efficiency.</li>
1055
+<li>Store data in flat text files.</li>
1056
+<li>Use software leverage to your advantage.</li>
1057
+<li>Use shell scripts to increase leverage and portability.</li>
1058
+<li>Avoid captive user interfaces.</li>
1059
+<li>Make every program a filter.</li>
1060
+</ol>
1061
+</blockquote>
1062
+
1063
+<p>&ndash; <a href="https://csvkit.readthedocs.org/en/0.9.0">csvkit 0.9.0</a></p>
1064
+
1065
+<h2><a name=tools-amp-toolchains-for-data-munging-amp-analysis-jq href=#tools-amp-toolchains-for-data-munging-amp-analysis-jq>#</a> jq</h2>
1066
+
1067
+<p>Also super handy, if a notch less intuitive.  Powerful DSL / pretty-printer /
1068
+filter for working with JSON records at the command line.</p>
1069
+
1070
+<ul>
1071
+<li>http://stedolan.github.io/jq/</li>
1072
+</ul>
1073
+
1074
+
1075
+
1076
+</article>
1077
+
1078
+
1079
+
1080
+<article>
1081
+
1082
+<h1><a name=systemd-notes href=#systemd-notes>#</a> systemd notes</h1>
1083
+
1084
+<ul>
1085
+<li>https://letsgettechnicalblog.wordpress.com/2014/07/07/systemd-on-raspbian/</li>
1086
+</ul>
1098 1087
 
1099
-<p><a href="http://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a></p>
1100 1088
 
1101 1089
 
1102 1090
 </article>

+ 0
- 62
networked_computing/index.md View File

@@ -1,62 +0,0 @@
1
-networked computing
2
-===================
3
-
4
-ssh
5
----
6
-
7
-_monday, december 8, 2014_
8
-
9
-I use SSH for damn near everything.  We need SSH for damn near everything.
10
-
11
-I have this thought that SSH is quite possibly the only end-user-exposed
12
-implementation of acceptable crypto in wide use which actually satisfies the
13
-"actual human beings can use this" constraint at the same time as satisfying
14
-the "this makes your shit relatively secure" constraint.  That's not to say
15
-it's easy for the average mortal to comprehend, but it beats the shit out of
16
-almost everything else I can think of.
17
-
18
-In "almost everything else", I include SSL/TLS/HTTPS, which sort-of works as
19
-far as the general user population of browsers is concerned, much of the time,
20
-but which is an absolute nightmare to administer and which is a fundamentally
21
-broken design on a political / systems-of-control / economic /
22
-regular-admins-get-this-right level.  Arguably, the only thing that has been
23
-worse for the wide adoption of crypto by normal users than SSL/TLS is PGP.
24
-
25
-DISCLAIMER:  I DON'T KNOW SHIT ABOUT CRYPTO.  Tell me how I'm wrong.  
26
-
27
--> ✴ <-
28
-
29
-* "[Sorry Theo, but SSH Sucks](http://harmful.cat-v.org/software/ssh)"
30
-
31
-mosh
32
-----
33
-
34
-_monday, december 8, 2014_
35
-
36
-I'm not exactly sure when mosh started to catch on with people I know, but I'd
37
-say it's on the order of a year or two that I've been aware of it.  The basic
38
-thing here is that it's essentially OpenSSH with better characteristics for a
39
-specific cluster of use cases:
40
-
41
-  - laggy, high-latency, intermittently-broken network connections
42
-  - client machines that frequently hop networks and/or suspend operations
43
-  - unreliable VPNs (which is to say very nearly all VPNS in actual use)
44
-
45
-ipv6
46
-----
47
-
48
-_saturday, january 3, 2015_
49
-
50
-I was hanging out on the internet and heard that imt@protocol.club had set up
51
-[club6.nl](https://club6.nl), a tildebox reachable only over ipv6.  I applied
52
-for an account and [got one](https://club6.nl/~brennen) (very speedy turnaround,
53
-[~imt](https://club6.nl/~imt/)).
54
-
55
-The next problem was how to connect.  I am an utter prole when it comes to
56
-networking.  The first thing I remembered was that DigitalOcean optionally
57
-supports ipv6 when creating a new droplet, and sure enough they
58
-also [have a guide for enabling it][enable6] on existing droplets.
59
-
60
-TODO: Get my own sites resolving and reachable via ipv6.
61
-
62
-[enable6]: https://www.digitalocean.com/community/tutorials/how-to-enable-ipv6-for-digitalocean-droplets

+ 13
- 3
render.pl View File

@@ -3,9 +3,11 @@
3 3
 use strict;
4 4
 use warnings;
5 5
 use 5.10.0;
6
+use feature "state";
6 7
 
7 8
 use Cwd;
8 9
 use File::Basename;
10
+use HTML::Entities;
9 11
 use Text::Markdown::Discount;
10 12
 
11 13
 # Enable html5 block-level tags:
@@ -64,17 +66,23 @@ sub handle_block {
64 66
 sub replace_some_stuff {
65 67
   my ($markup) = @_;
66 68
 
67
-  # bold first "$ command" string in a code block
68
-  # $markup =~ s{<code>(\$ .*?)$}{<code><b>$1</b>}gm;
69
-
70 69
   my @contents;
70
+  my $a_name_prefix_for_h2;
71 71
 
72 72
   # insert anchors in headers, accumulate a table of contents
73 73
   $markup =~ s{<(h[12])(.*?)>(.*?)</h[12]>}{
74 74
     my ($tag, $attributes, $text) = ($1, $2, $3);
75
+
75 76
     my $a_name = $text;
76 77
     $a_name =~ s/[^a-z0-9]+/-/ig;
77 78
     $a_name =~ s/^-|-$//g;
79
+
80
+    if ($tag eq 'h1') {
81
+      $a_name_prefix_for_h2 = $a_name;
82
+    } else {
83
+      $a_name = $a_name_prefix_for_h2 . '-' . $a_name;
84
+    }
85
+
78 86
     push @contents, make_contents_link($tag, $a_name, $text);
79 87
     "<$tag$attributes><a name=$a_name href=#$a_name>#</a> $text</$tag>";
80 88
   }iesg;
@@ -91,8 +99,10 @@ sub replace_some_stuff {
91 99
 sub make_contents_link {
92 100
   my ($tag, $a_name, $text) = @_;
93 101
   if ($tag eq 'h2') {
102
+    # indented bullet
94 103
     return "    * [$text](#$a_name)";
95 104
   } elsif ($tag eq 'h1') {
105
+    # top-level ordered-list item
96 106
     return "1. [$text](#$a_name)";
97 107
   }
98 108
 }

+ 23
- 0
scratch View File

@@ -0,0 +1,23 @@
1
+Doing a little Bash scripting:
2
+
3
+[Reading on exit codes](http://www.rdio.com/artist/Carolina_Chocolate_Drops/album/Dona_Got_a_Ramblin%27_mind/).
4
+
5
+[And](http://www.tldp.org/LDP/abs/html/exitcodes.html#EXITCODESREF):
6
+
7
+> There has been an attempt to systematize exit status numbers (see
8
+> /usr/include/sysexits.h), but this is intended for C and C++ programmers. A
9
+> similar standard for scripting might be appropriate. The author of this
10
+> document proposes restricting user-defined exit codes to the range 64 - 113
11
+> (in addition to 0, for success), to conform with the C/C++ standard. This
12
+> would allot 50 valid codes, and make troubleshooting scripts more
13
+> straightforward. [2] All user-defined exit codes in the accompanying examples
14
+> to this document conform to this standard, except where overriding
15
+> circumstances exist, as in Example 9-2.
16
+
17
+For the moment, a reasonable pattern to follow seems like:
18
+
19
+1. If it's just some general error, `exit 1`
20
+2. If I want to specify meaningful codes, use something 64-113.
21
+
22
+
23
+* [Debian New Maintainers' Guide](https://www.debian.org/doc/manuals/maint-guide/)

+ 0
- 7
terminal_multiplexing/index.md View File

@@ -1,7 +0,0 @@
1
-terminal multiplexing
2
-=====================
3
-
4
-tmux
5
-----
6
-
7
-`tmux` is the shit.

+ 4
- 1
workings.css View File

@@ -12,9 +12,12 @@ body {
12 12
 
13 13
 .contents ul li {
14 14
   list-style: none;
15
+  font-size: smaller;
15 16
 }
16 17
 
17
-.contents ul li li {
18
+.contents ul {
19
+  margin: 0;
20
+  padding: 0;
18 21
 }
19 22
 
20 23
 ul li {