2015-12-14
[Microblog] Life and smiles
I was responsible and did something good for me, and am now smiling at grass again.
2015-08-22
[Technology] Accessing files.web.uoguelph.ca from Linux when off campus
Until a few weeks ago, I was able to login remotely to my University's web hosting server. Now, I need to connect via VPN first.
On Fedora Linux, I made sure I had vpnc installed and NetworkManager-vpnc. Then I went to Network Manager's settings/preferences, added a new connection (+ in the bottom left), chose VNC, and chose the vpnc client. Then I used the settings from this page:
https://www.uoguelph.ca/ccs/internet-phones/virtual-private-network-vpn/using-vpn
It beats using the creepy script from vpn.uoguelph.ca at least.
On Fedora Linux, I made sure I had vpnc installed and NetworkManager-vpnc. Then I went to Network Manager's settings/preferences, added a new connection (+ in the bottom left), chose VNC, and chose the vpnc client. Then I used the settings from this page:
https://www.uoguelph.ca/ccs/internet-phones/virtual-private-network-vpn/using-vpn
It beats using the creepy script from vpn.uoguelph.ca at least.
[General] Heading Homeward
It's the Flesherton Fling this weekend! You should totally come out. We used to have the Split Rail Festival. Then we started making fences from metal and it seemed outmoded. Now we just have flings - the moral decay of our century.
2015-08-19
[Technology] Automating my life away
Posted by
Richard
at
23:15
Labels: #Technology, automation, file formats, jobs, libreoffice, libxml, libxml2, microsoft, openoffice, perl, progress, sql, triumf, xml
Labels: #Technology, automation, file formats, jobs, libreoffice, libxml, libxml2, microsoft, openoffice, perl, progress, sql, triumf, xml
A decade ago, part of a job was to help automate creation
of a report that normally involved a human scanning through dozens of
spreadsheets each year, copying and pasting numbers and generating
graphs and tables, manually.
The place where I worked
predominantly used Perl. (It was a science laboratory.) My solution
was to use OpenOffice's GUI to bulk-convert the Microsoft Excel
spreadsheets (binary XLS files) to whichever file format OpenOffice used
at the time that was actually a collection of XML in a zipped
directory. (Was that .sdc?)
From there, I wrote
some Perl CGI scripts to automatically generate most of the tables and
graphics into HTML form, in some fashion that looked nice when imported
into OpenOffice. (Really?!) The person who was responsible for the
report, who normally took a few weeks to do, said that it would save him
so much of the time, that it would take him now a couple days to look
at the data and write conclusions and maybe do some cleaning. He
marveled at automation and how quickly he could be replaced. The
automation revolution in action.
Today I used LibreOffice to convert about a hundred spreadsheets into CSV files with this one command:
find . -name "*.xls" | while read line; do
(cd "$(dirname "$line")" &&
libreoffice --headless --convert-to csv "$(basename "$line")");
done
I
am not sure that OpenOffice could do headless conversion back then. I
was probably overwhelmed by all the potential everywhere to discover the
functionality if it exists. This would have helped free a few hours of
my life.
Automation, a revolution.UPDATE:
Converting to CSV only does the 1st sheet tab. You apparently can't specify a different sheet to be the active sheet. I also had to convert some other old spreadsheets for easy parsing (mostly just grep'ing through them to find data). In that case, I used --convert-to html which was beautiful, even if one of the resultant HTML files was 138MB large.
[Technology] Starting Firefox Faster
Posted by
Richard
at
23:04
Labels: #Technology, browsing, experimenting, firefox, optimisation, performance, speed
Labels: #Technology, browsing, experimenting, firefox, optimisation, performance, speed
summary: if you use pinned tabs, and they're all loading at start, despite setting tabs to not load until selected, this post is for you.I have two hard disks, a 24GB SSD (fast!) and a spinner. I noticed that to fully load Firefox and wait for everything to settle, it was taking about a minute and a half, back when my root directory was on the HDD. Recently (see earlier posts), I moved my root onto the SSD. That improved things marginally. Firefox was now settling in around 1m12s. I tried moving my profile onto the SSD. Now I was down around 1m00s. (These are averaged from multiple warm runs.) That is still abysmal.
One thing I notice is that a private web app I wrote (look up My Daily in past posts maybe) is guarded by an .htaccess file, and I have it as a pinned tab. In that full minute, before things finish settling, I get prompted to authenticate myself. I then recalled that I had enabled the Firefox option to load tabs when clicked (Preferences > General > "Don't load tabs until selected"), so why is it loading?
All the pinned tabs actually seem to be loading at startup. Grr. Perhaps that is tunable?
I went to about:config, and sure enough, typing in "pinned" filtered down to this setting:
browser.sessionstore.restore_pinned_tabs_on_demanddefaulting to "false". I set it to "true", and now Firefox takes <3s to open and settle. Sure, clicking on a pinned tab now takes a normal time to load the tab, but it's better than loading GMail, Google Calendar, Blogger, Google Drive, Google Keep and my web app ALL AT ONCE.
2015-08-16
[Technology] Resizing my encrypted /home partition
Posted by
Richard
at
16:15
Labels: #Technology, encryption, ext3, ext4, fedora, fedora 22, file systems, hard drives, luks, resizing, ssd
Labels: #Technology, encryption, ext3, ext4, fedora, fedora 22, file systems, hard drives, luks, resizing, ssd
I just wrote a post about why I reinstalled Fedora 22: because I wanted root to be on the SSD, and I needed to purge a lot of old installed software anyway. :P And how that led to trying out the open source b43 wireless driver.
This is more interesting than my wireless problem. Because I no longer needed a / partition on my HDD, I wanted to extend my home partition. It isn't as dead-simple as back a decade ago. Back then, I would use fdisk to delete and recreate partitions and resize2fs to resize the file system.
Now I have layers upon layers of useful abstraction. I'm calling each something potentially inaccurate, and the tool I needed in brackets. (Those with wildcards match multiple tools with the same beginning.)
Top
At first I was almost a little annoyed at the apparent complexity, but it's actually straight forward. My drive is still divided into multiple partitions in a partition table. (/dev/sda1, /dev/sda2, /dev/sda3, etc; I have 8 for various reasons).
Physical volumes seem to correspond to those partitions, but mostly just the useful storage ones (e.g. I don't have them for EFI or swap partitions). pvcreate lets me define them.
The physical volumes are collected into volume groups. For example, /dev/sdb1 (my intended root) might be a part of "pantaloons-fedora-ssd" (if I named my machine pantaloons), and /dev/sda2 and /dev/sda4 might both be part of "pantaloons-fedora-hdd" (two large areas for my /home that I'd like to combine later, but which are currently separated by some other, annoying partition).
The volume group kind of looks like a single contiguous (!) entity (despite being a collection of disparate physical partitions). Then, I can define logical volumes atop the volume groups.
I can have both / and swap as separate logical volumes atop "pantaloons-fedora-ssd" (talk about cramped - maybe I don't want to hibernate after all), and have a single logical volume for /home atop the "pantaloons-fedora-hdd" volume group.
This is where things get a little trippy though. Where does the encryption happen?
For my root file system, it looks like it happens like:
partition /dev/sdb1 > LUKS > physical volume > EXT4 file system
For my home file system, it looks like this:
partitions /dev/sda2,/dev/sda4 > two physical volumes > 1 volume group > 1 logical volume > LUKS > EXT4 file system
The home partition and its LUKS (using cryptsetup/dm-crypt) was originally configured through whichever tool Fedora provided years ago (preupgrade? fedup? anaconda?), while the configuration on my SSD was what was recommended in F22.
Basically, I had to (with steps that actually increase space emboldened):
This is more interesting than my wireless problem. Because I no longer needed a / partition on my HDD, I wanted to extend my home partition. It isn't as dead-simple as back a decade ago. Back then, I would use fdisk to delete and recreate partitions and resize2fs to resize the file system.
Now I have layers upon layers of useful abstraction. I'm calling each something potentially inaccurate, and the tool I needed in brackets. (Those with wildcards match multiple tools with the same beginning.)
Top
- ext4 file system (resize2fs)
- Logical volume (lv*)
- Volume group (vg*)
- Physical volume (pv*)
- partitions (fdisk)
At first I was almost a little annoyed at the apparent complexity, but it's actually straight forward. My drive is still divided into multiple partitions in a partition table. (/dev/sda1, /dev/sda2, /dev/sda3, etc; I have 8 for various reasons).
Physical volumes seem to correspond to those partitions, but mostly just the useful storage ones (e.g. I don't have them for EFI or swap partitions). pvcreate lets me define them.
The physical volumes are collected into volume groups. For example, /dev/sdb1 (my intended root) might be a part of "pantaloons-fedora-ssd" (if I named my machine pantaloons), and /dev/sda2 and /dev/sda4 might both be part of "pantaloons-fedora-hdd" (two large areas for my /home that I'd like to combine later, but which are currently separated by some other, annoying partition).
The volume group kind of looks like a single contiguous (!) entity (despite being a collection of disparate physical partitions). Then, I can define logical volumes atop the volume groups.
I can have both / and swap as separate logical volumes atop "pantaloons-fedora-ssd" (talk about cramped - maybe I don't want to hibernate after all), and have a single logical volume for /home atop the "pantaloons-fedora-hdd" volume group.
This is where things get a little trippy though. Where does the encryption happen?
For my root file system, it looks like it happens like:
partition /dev/sdb1 > LUKS > physical volume > EXT4 file system
For my home file system, it looks like this:
partitions /dev/sda2,/dev/sda4 > two physical volumes > 1 volume group > 1 logical volume > LUKS > EXT4 file system
FS | Ext4 | Ext4 | ||
---|---|---|---|---|
(LUKS) | /dev/mapper/luks-BAR | |||
LVs | root | swap | /home | |
VGs | pantaloons-fedora-ssd | pantaloons-fedora-hdd | ||
PVs | /dev/mapper/luks-FOO | /dev/sda2 | /dev/sda4 | |
(LUKS) | /dev/mapper/luks-FOO | /dev/sda2 | /dev/sda4 | |
partitions | /dev/sdb3 | |||
disks | /dev/sdb (SSD) | /dev/sda (HDD) |
The home partition and its LUKS (using cryptsetup/dm-crypt) was originally configured through whichever tool Fedora provided years ago (preupgrade? fedup? anaconda?), while the configuration on my SSD was what was recommended in F22.
Basically, I had to (with steps that actually increase space emboldened):
- define a new partition in the partition table,
- define a new Physical Volume (PV) over top it,
- extend my Volume Group (VG) to include the new Physical Volume
- unmount the file system I was going to extend,
- close its LUKS setup
- extend the file system's Logical Volume (LV) overtop the new space in the Volume Group
- reopen the LUKS setup
- resize the LUKS setup (are these two out of order? hope not!), and
- resize the Ext4 partition
- # cfdisk, to delete the old root on the /dev/sda4 partition and recreate it
- # pvcreate /dev/sda4 (creates a physical volume)
- # vgextend pantaloons-fedora-hdd /dev/sda4 (add the PV into the VG increasing its overall size)
- make sure /home isn't mounted
- # fsck.ext4 -C 0 -f /dev/mapper/luks-BAR (let's make sure the inodes are fine on our file system before messing with it)
- # cryptsetup luksClose luks-BAR (close LUKS while we change the underlying LV)
- # lvextend -L +61G /dev/pantaloons-fedora-hdd/home (increase the size of our LV within the VG)
- # lvextend -L +242M /dev/pantaloons-fedora-hdd/home (catch a little more space)
- there is probably a way to just extend it to the full space available, maybe read the man page
- # cryptsetup luksOpen /dev/pantaloons-fedora-home luks-BAR
- # cryptsetup resize luks-BAR (resizing the LUKS setup)
- # fsck.ext4 -C 0 -f /dev/mapper/luks-BAR (for paranoia maybe)
- # resize2fs /dev/mapper/luks-BAR (finally, let's resize our Ext4 file system)
[Technology] How to Mount the Overlay Filesystem of a Live USB
Posted by
Richard
at
16:13
Labels: #Technology, fedora, fedora 22, file systems, hard drive, linux, livecd, liveusb, mounting
Labels: #Technology, fedora, fedora 22, file systems, hard drive, linux, livecd, liveusb, mounting
So, I wanted to demonstrate the commands in the previous post used for resizing my file system, but of course I did that from a live USB (since I wanted my file systems unmounted). However, I did not want to reboot my computer just now to copy root's bash history, so I looked up how to mount the overlay using these instructions:
https://fedoraproject.org/wiki/LiveOS_image
The simplified version would be:
- insert USB key into computer
- identify it
$ journalctl --system
mine was created as /dev/sdc1 - mount it, creating target directories as you go:
# mount /dev/sdc1 /tmp/sdc1 - mount the read-only squashed file system:
# mount /tmp/sdc1/LiveOS/squashfs.img /tmp/squashfs - create a block device for its ext3fs image:
# losetup /dev/loop1 /tmp/squashfs/LiveOS/ext3fs.img -r - create a block device for the overlay:
# losetup /dev/loop2 /tmp/sdc1/LiveOS/overlay-LIVE-foo - calculate size of loop1
# blockdev -q --getsz /dev/loop1mine was 12582912 - define a device combining the two
# dmsetup create myliveos --table "0 12582912 snapshot 7:1 7:2 P 8"
myliveos: my own name for the device, call it what you will
12582912: the # of blocks I acquired from step 7, put in yours
7:1 references loop1
7:2 references loop2 - mount the combined device
# mount /dev/mapper/myliveos /tmp/myliveos
[Technology] Installing Fedora 22, again: wireless Internet and resizing file systems
Posted by
Richard
at
16:12
Labels: #Technology, b43, broadcom, fedora, fedora 22, open source, wireless
Labels: #Technology, b43, broadcom, fedora, fedora 22, open source, wireless
I have a 24GB SSD and a 500GB HDD in my computer.
A few months ago, every time my computer hibernated or slept, my file system on my SSD got corrupted, and I had to fsck it to repair it. I ended up just creating a new partition on my HDD and installing my OS there.
Recently, I've grown reckless, and decided I wanted to have my OS on the SSD after all. I did some SMART tests and my SSD seems to be fine, so pretending to forget about the earlier drama, I reformatted the SSD and re-installed Fedora 22.
In the end, I had to do these things
A few months ago, every time my computer hibernated or slept, my file system on my SSD got corrupted, and I had to fsck it to repair it. I ended up just creating a new partition on my HDD and installing my OS there.
Recently, I've grown reckless, and decided I wanted to have my OS on the SSD after all. I did some SMART tests and my SSD seems to be fine, so pretending to forget about the earlier drama, I reformatted the SSD and re-installed Fedora 22.
Wireless Internet
Of course, the Internet doesn't work out of the box. That's because of Broadcom's proprietary drivers and firmware. Previously, I used the wl driver, using akmod-wl and kmod-wl. My device:03:00.0 Network controller: Broadcom Corporation BCM43228 802.11a/b/g/nI looked at the open source driver, b43, though, and it claimed to now support it(!). I apparently needed the firmware from the Windows driver, though. Sigh. Indeed, journalctl --system (instead of dmesg) reported this:
This lead me to http://linuxwireless.sipsolutions.net/en/users/Drivers/b43/#Fedora, which has a broken link to http://linuxwireless.sipsolutions.net/en/users/Drivers/b43#other_distros further down the page.
[ 162.191310] b43-phy0: Broadcom 43228 WLAN found (core revision 30)
[ 162.191764] b43-phy0: Found PHY: Analog 9, Type 4 (N), Revision 16
[ 162.191776] b43-phy0: Found Radio: Manuf 0x17F, ID 0x2057, Revision 9, Version 1
[ 162.192544] Broadcom 43xx driver loaded [ Features: PMNLS ]
[ 162.192570] b43 bcma0:1: Direct firmware load for b43/ucode30_mimo.fw failed with error -2
[ 162.192596] b43 bcma0:1: Direct firmware load for b43/ucode30_mimo.fw failed with error -2
[ 162.192995] b43 bcma0:1: Direct firmware load for b43-open/ucode30_mimo.fw failed with error -2
[ 162.193015] b43 bcma0:1: Direct firmware load for b43-open/ucode30_mimo.fw failed with error -2
[ 162.193019] b43-phy0 ERROR: Firmware file "b43/ucode30_mimo.fw" not found
[ 162.193022] b43-phy0 ERROR: Firmware file "b43-open/ucode30_mimo.fw" not found
[ 162.193024] b43-phy0 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware for this driver version. Please carefully read all instructions on this website.
In the end, I had to do these things
$ dnf install b43-fwcutter wget # dnf instead of yumAnd it worked.
$ export FIRMWARE_INSTALL_DIR="/lib/firmware"
$ wget http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2
$ tar xjf broadcom-wl-5.100.138.tar.bz2
$ sudo b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.100.138/linux/wl_apsta.o
$ modprobe b43
Mounting encrypted /home partition
I cheated and used gnome-disks to make my encrypted /home partition auto-mount. Sorry.2015-08-03
2015-08-02
[General] Simplicity and Innovation
It can be so hard to just find something simple/"normal".
I go into a store and I want to buy a binder. They all have designs on them. None of them are just "normal" - plain and simple.
I want to find a simple muffin recipe. No, no walnuts, no blueberries, no bananas, absolutely no animal parts, no no no no. Just a muffin. Recipe websites have large categories with 90 different types of muffins. I don't care. I just want some fat, some sugar, and some wheat in the shape of a muffin. I'll add something later.
Perhaps that will be where AI assistants/future websites have room to grow: helping simplify what should be simple.
Eventually I found this:
http://vegweb.com/recipes/simple-muffins
I go into a store and I want to buy a binder. They all have designs on them. None of them are just "normal" - plain and simple.
I want to find a simple muffin recipe. No, no walnuts, no blueberries, no bananas, absolutely no animal parts, no no no no. Just a muffin. Recipe websites have large categories with 90 different types of muffins. I don't care. I just want some fat, some sugar, and some wheat in the shape of a muffin. I'll add something later.
Perhaps that will be where AI assistants/future websites have room to grow: helping simplify what should be simple.
Eventually I found this:
http://vegweb.com/recipes/simple-muffins
2015-06-02
[Technology] GoogleCL, OAuth2, and bitrot
I have a fancy process for managing photos I take, curating them, and uploading them to PicasaWeb/Google+ Photos/Google Photos/whatever you want to call it. It partially relies on googlecl (github, google code (old)).
However, it only authenticates using OAuth1, and that was deprecated recently. Maybe when I'm done with school I'll try to take it over. In the meantime, I'll be resurrecting an old libgdata tool I wrote 6 years ago on the other side of the planet. Yay!
However, it only authenticates using OAuth1, and that was deprecated recently. Maybe when I'm done with school I'll try to take it over. In the meantime, I'll be resurrecting an old libgdata tool I wrote 6 years ago on the other side of the planet. Yay!
2015-05-29
[Technology] Memory leaks, vala, and copying delegates
Some of the Gee data structures, like a TreeSet, can get a comparator, a GLib.CompareDataFunc comparator.
If I define a compliant static function and hand it over to the TreeSet's constructor, I get a warning that copying delegates is not supported. I can't really change how TreeSet handles it, and I couldn't find how I was supposed to pass it elsewhere, so I passed it over like this (not exact code):
class ApplePie : Pie {
private GLib.CompareDataFunc get_cmp () {
return (a,b) => { return a.foo - b.foo; };
}
}
class CherryPie : Pie {
private GLib.CompareDataFunc get_cmp () {
return (a,b) => { return a.bar - b.bar; };
}
}
class Pie {
TreeSet ts;
public Pie () {
ts = new TreeSet (this.get_cmp ());
}
}
You see, I needed different comparators for different subclasses, but I couldn't just hand over static functions. However, somehow, passing a function instantiated in this manner to new TreeSet () resulted in an increase to the reference count for pie! And, in fact, I had 10 different collections that made use of 3 different comparators like this. And I went through 10,000s of pies! I think you can start to see my problem.
The functions were causing reference cycles so none of my pies were being freed when I was finished with them, and I quickly ran out of memory. :D Hooray!
Right now, I'm doing what I'm not supposed to, and passing static functions (copying delegates) to the new TreeSet constructor (they're passed from the subclass to the superclass through base (), so that might be a part of the problem) and things are working alright.
I'm grateful for Malloc.mallinfo ().uordblks, and for GLib.Object.ref_count for helping me see into problem today.
If I define a compliant static function and hand it over to the TreeSet's constructor, I get a warning that copying delegates is not supported. I can't really change how TreeSet handles it, and I couldn't find how I was supposed to pass it elsewhere, so I passed it over like this (not exact code):
class ApplePie : Pie {
private GLib.CompareDataFunc get_cmp () {
return (a,b) => { return a.foo - b.foo; };
}
}
class CherryPie : Pie {
private GLib.CompareDataFunc get_cmp () {
return (a,b) => { return a.bar - b.bar; };
}
}
class Pie {
TreeSet ts;
public Pie () {
ts = new TreeSet (this.get_cmp ());
}
}
You see, I needed different comparators for different subclasses, but I couldn't just hand over static functions. However, somehow, passing a function instantiated in this manner to new TreeSet () resulted in an increase to the reference count for pie! And, in fact, I had 10 different collections that made use of 3 different comparators like this. And I went through 10,000s of pies! I think you can start to see my problem.
The functions were causing reference cycles so none of my pies were being freed when I was finished with them, and I quickly ran out of memory. :D Hooray!
Right now, I'm doing what I'm not supposed to, and passing static functions (copying delegates) to the new TreeSet constructor (they're passed from the subclass to the superclass through base (), so that might be a part of the problem) and things are working alright.
I'm grateful for Malloc.mallinfo ().uordblks, and for GLib.Object.ref_count for helping me see into problem today.
2015-05-28
[Technology] Infinite Loops
I read some advice published by NASA Jet Propulsion Laboratory’s (JPL) Laboratory for Reliable Software that advocated always having a counter on loops that might otherwise depend on some state changing (e.g. like while (set_is_empty (set) == FALSE) { ... }) (their rule #2).
I used to prioritise smaller code. I still do. But I'm happier to also write more and more complete code now and do it more carefully. I'm now willing to take more time to write it in the first place, replete with appropriate error checks, rather than trying to take a lot of shortcuts. For example, using C versus a higher level language - if I'm hoping for the code to be around for a while, I don't mind the extra time it might take to write it in C. I used to worry about whether my editor was slowing me down. Now I think it almost never does - planning out what I'll do takes way more time.
So, back to NASA. In my thesis code, I started doing that. I've defined some limits for loops that wouldn't normally have a counter, and when the loop exits, I check to see whether the counter reached the limit, and if it did, I now report an error.
Today, that came in useful, and helped me quickly discover an error in a comparator elsewhere in my code. (A tree wasn't reliably ordering nodes so a loop trying to clear nodes was repeating continuing infinitely. Whoops.)
Problem solved.
I used to prioritise smaller code. I still do. But I'm happier to also write more and more complete code now and do it more carefully. I'm now willing to take more time to write it in the first place, replete with appropriate error checks, rather than trying to take a lot of shortcuts. For example, using C versus a higher level language - if I'm hoping for the code to be around for a while, I don't mind the extra time it might take to write it in C. I used to worry about whether my editor was slowing me down. Now I think it almost never does - planning out what I'll do takes way more time.
So, back to NASA. In my thesis code, I started doing that. I've defined some limits for loops that wouldn't normally have a counter, and when the loop exits, I check to see whether the counter reached the limit, and if it did, I now report an error.
Today, that came in useful, and helped me quickly discover an error in a comparator elsewhere in my code. (A tree wasn't reliably ordering nodes so a loop trying to clear nodes was repeating continuing infinitely. Whoops.)
Problem solved.
2015-05-27
[Technology] emacs and vala-mode: set-difference
When using emacs 24.5 and vala-mode, I started getting this error:
"Symbol's function definition is void: set-difference"
After some googling, it turns out to be related to cc-mode using cl (CommonLisp). The not-ideal workaround for now is to apparently include
"Symbol's function definition is void: set-difference"
After some googling, it turns out to be related to cc-mode using cl (CommonLisp). The not-ideal workaround for now is to apparently include
(require 'cl)In your ~/.emacs file.
2015-03-15
[General] Fear and Loathing on Facebook
I am a shy person.
Actually, I just have very low self-esteem.
Since grade 4 and before. I always assume people don't really want me around. It's because sometimes someone has been around that I didn't want around. Or because I'd be a witness to someone bearing around that others obviously didn't want them around but the person really wanted to be included.
I am a bit stupid. I should have focused on being inclusive of the undesirables. They are still people and have something beautiful to offer, probably. Sometimes I wanted to be cool, though, so I wouldn't. I wanted to be desirable. Why? Who mattered so much that I had to start watching what I did and what I said so much?
It used to be crippling. Interacting with most people involve a very explicit façade. It doesn't really now. It's a more implicit and ingrained façade I guess. Sometimes it's not a façade at all.
Of course, I've always treasured the friends I've felt natural with. My best friend is my best friend because of an important decision I made in high school to be happy and to give up on a group of jerky jerks and to focus on that consistent friend who didn't seem to be concerned so much with what the others thought.
In daily life, I tend to be reluctant to initiate social activity. I tend to wait to be included by others. I assume most of my friends aren't super keen on hanging out with me, so it's better not to oblige them by asking, but to wait until they feel like it. That's probably not entirely true. I end up very happy when a friend seems consistently interested in my presence, but with the transience of all things, that tends to pass for various reasons (e.g. moving, life changes, etc). By not proposing things, I remain uncontroversial.
This is also how I approach sharing on facebook. I share things that are mostly neutral. They're not about me; I share events that I am helping promote. I sometimes post questions. I don't share things about me, because inevitably a portion of people who read it will groan and think I'm stupid. Some people will decide I'm annoying.
Today I was catching up on VlogBrothers episodes. I treat them like real friends, in a way! I get super excited to watch them. I like their ideas and the way they talk about them. I wanted to share that. I wanted to connect with others on that point. I wanted to share something important to me and connect with others through it.
However, I have friends who don't like them. There are complaints. Of course there are. They're not perfect. My friends who complain about them are also not perfect, though.
I get tired by how much energy gets devoted to hating things. Especially among some of my social circles. They get very political, and people seem to really enjoy hating those they disagree. In theory, you should care about those you disagree with, because you'd want to help them by helping them resolve some misunderstanding that causes the disagreement. If you want to make progress with the thing you care about, you'd want to be able to bring on board even those who currently act as obstacles, right?
Anyway, hatred makes me a bit tired. So, I did share my love for the VlogBrothers, and I also "tipped my hat" to those who dislike them, sincerely offering them a cookie to help deal with the trauma, so hopefully they won't feel the need to get into a fury about it.
So, I found sharing something on facebook really scary. But I'm going to try to keep sharing things on facebook. Maybe a thing a day. Oh my.
Actually, I just have very low self-esteem.
Since grade 4 and before. I always assume people don't really want me around. It's because sometimes someone has been around that I didn't want around. Or because I'd be a witness to someone bearing around that others obviously didn't want them around but the person really wanted to be included.
I am a bit stupid. I should have focused on being inclusive of the undesirables. They are still people and have something beautiful to offer, probably. Sometimes I wanted to be cool, though, so I wouldn't. I wanted to be desirable. Why? Who mattered so much that I had to start watching what I did and what I said so much?
It used to be crippling. Interacting with most people involve a very explicit façade. It doesn't really now. It's a more implicit and ingrained façade I guess. Sometimes it's not a façade at all.
Of course, I've always treasured the friends I've felt natural with. My best friend is my best friend because of an important decision I made in high school to be happy and to give up on a group of jerky jerks and to focus on that consistent friend who didn't seem to be concerned so much with what the others thought.
In daily life, I tend to be reluctant to initiate social activity. I tend to wait to be included by others. I assume most of my friends aren't super keen on hanging out with me, so it's better not to oblige them by asking, but to wait until they feel like it. That's probably not entirely true. I end up very happy when a friend seems consistently interested in my presence, but with the transience of all things, that tends to pass for various reasons (e.g. moving, life changes, etc). By not proposing things, I remain uncontroversial.
This is also how I approach sharing on facebook. I share things that are mostly neutral. They're not about me; I share events that I am helping promote. I sometimes post questions. I don't share things about me, because inevitably a portion of people who read it will groan and think I'm stupid. Some people will decide I'm annoying.
Today I was catching up on VlogBrothers episodes. I treat them like real friends, in a way! I get super excited to watch them. I like their ideas and the way they talk about them. I wanted to share that. I wanted to connect with others on that point. I wanted to share something important to me and connect with others through it.
However, I have friends who don't like them. There are complaints. Of course there are. They're not perfect. My friends who complain about them are also not perfect, though.
I get tired by how much energy gets devoted to hating things. Especially among some of my social circles. They get very political, and people seem to really enjoy hating those they disagree. In theory, you should care about those you disagree with, because you'd want to help them by helping them resolve some misunderstanding that causes the disagreement. If you want to make progress with the thing you care about, you'd want to be able to bring on board even those who currently act as obstacles, right?
Anyway, hatred makes me a bit tired. So, I did share my love for the VlogBrothers, and I also "tipped my hat" to those who dislike them, sincerely offering them a cookie to help deal with the trauma, so hopefully they won't feel the need to get into a fury about it.
So, I found sharing something on facebook really scary. But I'm going to try to keep sharing things on facebook. Maybe a thing a day. Oh my.
2015-02-23
[General] Away from Computer, Be Left Back
I am going to try to take a break from everything except my thesis for next 9 weeks. See you in the summer.
2015-02-17
[General] My everynight
A long walk late at night up a steep hill, down a strange residential
street. Looking back, down at the downtown, I see all the lights. I
see the cathedral and the crane and some of my favourite streets, all so
tiny like little models. The air is clear and crisp and hurts if I
breathe too deeply. The sky is so empty, but if I wait and stare for
long enough, it’s really not that empty at all. It’s noisy, with a
stellar static.
I walk up some lonely grey steps, quite a steep hike, and their summit gives the best view of the night. I can even see towards the east, towards where I lived last winter nearer the edge of town and the river. I make a guess as to what the river is in the darkness. I can see the train tracks near my current home. I could have gotten where I was by riding those rails, but no trains roll by at this hour. I hear there’s a strike, anyway.
Further ahead there’s a swing set. I could swing there, and I remember that I already have. Swinging, a cornerstone of my identity and my history. Play. Play sometimes feels heavy to me now, so tied to old memories, but then I can always force myself to do it, just to start. I should have pushed myself more before, but now’s better than never. I can’t swing right now, as friends are expecting me. I shuffle on.
I sing to myself a bit, quietly. An observer with his cigarette removed temporarily from between his lips comments on my cute fuzzy hat, I can’t make out what he said so I reply with something ambiguous. He says something more that I can’t make out over the snow’s crunch so I laugh at what might have been a jest and shuffle on. Meaningless and joyful interactions.
There are pretty houses with pretty snow gardens. A few still have lights out, really pretty lights, and I praise these hold outs for resisting calendars. I wish every night could be like this.
I walk up some lonely grey steps, quite a steep hike, and their summit gives the best view of the night. I can even see towards the east, towards where I lived last winter nearer the edge of town and the river. I make a guess as to what the river is in the darkness. I can see the train tracks near my current home. I could have gotten where I was by riding those rails, but no trains roll by at this hour. I hear there’s a strike, anyway.
Further ahead there’s a swing set. I could swing there, and I remember that I already have. Swinging, a cornerstone of my identity and my history. Play. Play sometimes feels heavy to me now, so tied to old memories, but then I can always force myself to do it, just to start. I should have pushed myself more before, but now’s better than never. I can’t swing right now, as friends are expecting me. I shuffle on.
I sing to myself a bit, quietly. An observer with his cigarette removed temporarily from between his lips comments on my cute fuzzy hat, I can’t make out what he said so I reply with something ambiguous. He says something more that I can’t make out over the snow’s crunch so I laugh at what might have been a jest and shuffle on. Meaningless and joyful interactions.
There are pretty houses with pretty snow gardens. A few still have lights out, really pretty lights, and I praise these hold outs for resisting calendars. I wish every night could be like this.
2015-02-15
[General] Microtriumphs
I finally have imposed a system on my Gmail labeling. It took an hour today, but it has re-organised my "organic" approach that started a decade ago. And as we know, organic materials rot.
Basically, it meant giving up on many of my more complex plans for labels, and just accepting something simpler. I have some major groupings, like mailing lists, broken down by social, tech, work, etc, which are then broken down by their source. I have a people grouping, broken down by family, friends, and other, then broken down by name. I have alternative inboxes (where filters cause messages to skip my main one), for groups that I'm a part of, and those messages also get filtered into their own "mailboxes" so when I remove them from their custom inbox, they're still neatly grouped.
Simple and useful.
Basically, it meant giving up on many of my more complex plans for labels, and just accepting something simpler. I have some major groupings, like mailing lists, broken down by social, tech, work, etc, which are then broken down by their source. I have a people grouping, broken down by family, friends, and other, then broken down by name. I have alternative inboxes (where filters cause messages to skip my main one), for groups that I'm a part of, and those messages also get filtered into their own "mailboxes" so when I remove them from their custom inbox, they're still neatly grouped.
Simple and useful.
2015-01-31
[Budo] Resolve
"You do it simply through the sheer effort of will it takes to be beaten but still show up for practice."
- Kim Taylor
- Kim Taylor
2015-01-29
[General] Purified memories
You know how over time your memories lose some details and some things you end up idealising? I think I like that effect. I think it's generous and good to strip away unflattering details and recall people and events more fondly than they originally warranted. Well, as long as you don't use the rosefied memory to inform important decisions. :D
[Microblog] The stupidity of Google Music (Play Listen)
I don't understand can look at my entire music collection and then fail so horribly to predict what music I'd like. They're wrong 9 out of 10 times.
Also, I have no idea why it's so hard to get it to Just Play music. They keep asking me to narrow things into restrictive boxes. I just want a system that learns what I might like and introduces me to new stuff.
Also, I have no idea why it's so hard to get it to Just Play music. They keep asking me to narrow things into restrictive boxes. I just want a system that learns what I might like and introduces me to new stuff.
[School] 100 Days of Thesis: Day 91
I have done a horrible job of blogging about my Masters. I originally had grand plans. So, starting today, I will count down the last 100 days of my Masters. I think I actually have slightly less than that. Yes, today is day 91.
[General] Lots of thoughts, no time to articulate them
There is a lot I would like to write about in here.
How efficiency involves keeping people uncomfortable. If people are becoming comfortable, there's probably 'waste' in the system that can be stripped away until you find the threshold beyond which enough people start failing that the system collapses. "Equilibrium." Sellers generally probably wish they could have greater profit margins and buyers wish they could pay less.
How imbalances, where one person profits at the expense of another, probably can't be sustained; something is getting depleted. In theory, if one supplier is charging more than they "should" (based on their own costs and the spending power of their buyers), people seeking opportunities can correct that by supplying the product at a more reasonable price. In practise, suppliers collude, even implicitly, and people abuse the difficulty in entering certain markets to help prevent competition and prolong an exploitation.
Some types of imbalance apparently can be maintained for a prolonged period of time, and even increased, though. Growing income gaps are a good example, where wealth gets consolidated and used to increase consolidation, squeezing more out of more people. But perhaps that's a push for efficiency. The situation has changed so that more people can technically survive with less. People can exist with a lot of debt that they can never reasonably repay and be relatively unemployed and still eat and enjoy some form of shelter.
That's disturbing. In theory, the more debt you hold, the less free you are. You can't easily quit your job, because you owe tens of thousands of dollars to your creditors.
Every time a change comes along (e.g. a new technology) which should in theory make people more comfortable, free up their capacity to live life, that capacity gets quickly filled in. Computers and printers greatly expedite tasks from the 1980s, but rather than enjoy more free time as a result, that freed time was just filled up by other things. More work got done in the same period of time. Is that bad or good?
In theory, my computer should work incredibly smoothly with little resistance in my usage, since processors and memory have increased by an order of magnitude over my youth, but no, my computer is still quite slow, my phone even slower, despite being almost as powerful as my previous computer. Why? Why can't people let the increased capacity be and let others relax and enjoy existence a little? Why do I have to feel frustrated at my phone when it processes 1,600,000,000 operations a second (twice, since it's dual core) but I can't efficiently send a text message - a task I was able to do fine on a phone that was 20 times slower 8 years ago? Why is 'good, lasting performance' not a sector that people try to fill? Why is there no market for it? My phone is 3 years old. My friend's iPhone is 3 years old. We have the same complaint. Our phones fundamentally do the same stuff from 3 years ago, but are we just being pushed via software updates to replace them?
Your allegedly average work week (spend 40 hours at a location working + 7.5 hours of transportation + 2.5 ancillary time lost per week = 50 hours per week) almost seems designed to consume all the time in an employee's week possible without destroying them. Week days, after 8 hours of sleep, 10 hours of work, and 6 hours of being tired (consumed by chores and need-to-dos), there is almost nothing but to wait for a small, two day break where time is quickly lost to things you should have been doing all week anyway and not wanting to do anything because you're tired.
I feel like having the most productive and efficient system is counter-productive in terms of individual happiness.
How efficiency involves keeping people uncomfortable. If people are becoming comfortable, there's probably 'waste' in the system that can be stripped away until you find the threshold beyond which enough people start failing that the system collapses. "Equilibrium." Sellers generally probably wish they could have greater profit margins and buyers wish they could pay less.
How imbalances, where one person profits at the expense of another, probably can't be sustained; something is getting depleted. In theory, if one supplier is charging more than they "should" (based on their own costs and the spending power of their buyers), people seeking opportunities can correct that by supplying the product at a more reasonable price. In practise, suppliers collude, even implicitly, and people abuse the difficulty in entering certain markets to help prevent competition and prolong an exploitation.
Some types of imbalance apparently can be maintained for a prolonged period of time, and even increased, though. Growing income gaps are a good example, where wealth gets consolidated and used to increase consolidation, squeezing more out of more people. But perhaps that's a push for efficiency. The situation has changed so that more people can technically survive with less. People can exist with a lot of debt that they can never reasonably repay and be relatively unemployed and still eat and enjoy some form of shelter.
That's disturbing. In theory, the more debt you hold, the less free you are. You can't easily quit your job, because you owe tens of thousands of dollars to your creditors.
Every time a change comes along (e.g. a new technology) which should in theory make people more comfortable, free up their capacity to live life, that capacity gets quickly filled in. Computers and printers greatly expedite tasks from the 1980s, but rather than enjoy more free time as a result, that freed time was just filled up by other things. More work got done in the same period of time. Is that bad or good?
In theory, my computer should work incredibly smoothly with little resistance in my usage, since processors and memory have increased by an order of magnitude over my youth, but no, my computer is still quite slow, my phone even slower, despite being almost as powerful as my previous computer. Why? Why can't people let the increased capacity be and let others relax and enjoy existence a little? Why do I have to feel frustrated at my phone when it processes 1,600,000,000 operations a second (twice, since it's dual core) but I can't efficiently send a text message - a task I was able to do fine on a phone that was 20 times slower 8 years ago? Why is 'good, lasting performance' not a sector that people try to fill? Why is there no market for it? My phone is 3 years old. My friend's iPhone is 3 years old. We have the same complaint. Our phones fundamentally do the same stuff from 3 years ago, but are we just being pushed via software updates to replace them?
Your allegedly average work week (spend 40 hours at a location working + 7.5 hours of transportation + 2.5 ancillary time lost per week = 50 hours per week) almost seems designed to consume all the time in an employee's week possible without destroying them. Week days, after 8 hours of sleep, 10 hours of work, and 6 hours of being tired (consumed by chores and need-to-dos), there is almost nothing but to wait for a small, two day break where time is quickly lost to things you should have been doing all week anyway and not wanting to do anything because you're tired.
I feel like having the most productive and efficient system is counter-productive in terms of individual happiness.
2015-01-28
[General] MEN ON MARS, the story of Curiosity's odd shadow
This has appeared on my Facebook news feed a few times and it's disappointing that people believe it. Anyway, people claim the Curiosity rover is either on earth or there are people on Mars, since this photo taken by Curiosity itself, accidentally reveals the shadow of a person maintaining it:
Shadow of a man?
Popular news articles:
Wikipedia article on the Curiosity Rover:
Image of the whole rover (on earth):
Shadow of the rover's mast head and the arm:
Another:
"Shadow of a man" again for comparison:
So, you can still see the "arm" and the "oxygen tank" and the "head" but it doesn't look so much like a person anymore, does it? Why are people blindly reporting and believing this?
Shadow of a man?
NASA Source |
- http://www.dailymail.co.uk/news/article-2925341/Life-Mars-New-NASA-photo-shows-workman-fixing-space-Rover-Red-Planet-conspiracy-theorists-claim.html
- http://www.huffingtonpost.com/2015/01/27/mars-rover-shadow-photo_n_6552762.html
Wikipedia article on the Curiosity Rover:
Image of the whole rover (on earth):
![]() |
Full size |
Another:
NASA source |
"Shadow of a man" again for comparison:
NASA Source |
2015-01-23
[Technology] Bitrotting brain
TL;DR
I know a lot about my computer and computers. There are a lot of people who know a lot more than me. Relative to the rest of the population, there was a time 3.5 years ago when my knowledge was probably ranked at a higher percentile.
I haven't had the same time and motivation these past few years, though. One of the largest complications has been my Masters. Sure, I know a lot more about machine learning, linguistics, natural language processing, etc., but that hasn't helped me really understand my computer much more. I was fortunate enough to participate in the Google Summer of Code 3 summers in a row, but my time was always tight for that, and full-use was probably not made of those opportunities working on GNOME.
However, today was a harsh wake-up call about the consequences of idleness. My knowledge of init and rc and Linux's old boot sequence is still fairly strong, having grown up in Slackware on the command-line. However, while I've read about evolving configurations and utilities since, I haven't gotten much practise in them.
And so, it was with horror when I realised that my system would not fully boot today and I could not immediately address the issue.
Today's Predicament
My /home directory is an ext4 filesystem on an encrypted LUKS partition. Perhaps you can immediately see what is going to go wrong. Earlier today, my computer froze up. That's not uncommon. As much as I love Linux, I am never surprised when it spontaneously freezes (especially on a laptop (what with having its Internet connection and video mode and power supply changing constantly)). After trying to get it to respond for 15s, I just held down the power button as usual and then turned it back on.
Plymouth came up, I saw the fedora logo start to fill, it was interrupted by the password prompt for my /home partition, I entered the password, and then the fedora logo filled up and - nothing. It just waited there. It should switch to gdm's login screen, but it wouldn't. I could go see the terminal in the background, but I couldn't access any shells. Just the start up log. There was nothing obviously wrong.
Sometimes I would see this message, "EXT4-fs error (device dm-0): ext4_mb_generate_buddy:757: group 83, block bitmap and bg descriptor inconsistent: 21682 vs 21673 free clusers", but dm-0 is my root directory. dm-3 is my home directory.
I tried to boot into rescue mode to see if I could still access all my files. No. After supplying my password for decryption, I would see this error message "device-mapper: table: 253:3: crypt: unknown target type
Failed to activate: Invalid argument".
That sounds bad. I entered the emergency mode shell, and checked the journal. This is something I only do occasionally using journalctl, as I used to directly check logs or dmesg. Uh oh. Here it was failing to mount /home, and it was failing at the step of "/usr/lib/systemd/systemd-cryptsetup attach luks-1496...e527 none" [LUKS name contracted]. Uh oh.
At this point I started to suspect that my encrypted partition was corrupted from my hard shut-down. There's not much else I can do with my computer when it freezes up, but I haven't suffered from it being left in a volatile, at least until now.
I tried to manually mount it, but then realised I have almost never manually mounted a file system encrypted using LUKS. I've used encfs, but - uh, now what? Also, lvm2 and systemd I'm only passingly familiar with. How am I supposed to be confident in my computer's reliability if I don't even understand the fundamental tools that house my data any more?
I double-checked that my back-up was still working (I've had back-up hard drives die on me before!) using another old computer and thankfully it was OK. However, I didn't want to have to back-up from it if I didn't have to, as I had done work in the past 24 hours that I didn't want to lose, damn it. (I'm so glad that I've gotten the knack of backing up every 24 hours at least!). I also wasn't completely convinced that my data was inaccessible. On plain text file systems, it's easy to grep or scan to reclaim many/most files, even if the file system itself is corrupted or the partition boundaries have been lost. You can't readily do that when the file system is encrypted, but perhaps there was a way to repair it?
Also, this made me wonder, why was the default multi-user graphical mode stalling out? If it couldn't mount /home, it should still be able to display the login screen. I don't need a /home for that. I tried to launch gdm from emergency mode and couldn't because of failed dependencies, one of which was for binary formats. That seemed weird. I didn't remember so many things failing to start back when I was booting in the normal way. So I tried the normal way again and ... it claimed that /home mounted cleanly and even gave a plausible count of files. (!)
I then decided to boot in single-user mode (edit the grub command for the kernel I'm booting into and add 'single' on the kernel line). This took me through the same process as usual, which seemed to mount /home correctly, but instead of going all the way to the point where it was stalling, it stops successfully before at a command-line for root. Hooray!
Once there, I poked around. I couldn't immediately tell why from emergency mode I couldn't successfully mount my file systems, but there's an egregious lack of familiarity in me regarding how systemd, lvm2, and luks interact, so that's no big surprise. I did a passive run of fsck.ext4 on my / directory (remember how dm-0 had errors reported earlier?) and yes, there seemed to be quite a lot. I grabbed my Fedora live USB key from my drawer, re-booted into it, ran fsck on my computer's root partition, and let it fix all the errors. This always alarms me, as I never know what data has been lost on my file system to lead to the errors in question. There's never a guarantee that cleaning up after the errors will resolve the problem in question.
Anyway, I rebooted, I went through a normal boot and - tada, the login screen.
Conclusion
So why did I write all that? In part to motivate me to learn more about the current state of my system to regain the glory of self-sufficiency. And in part so the few error messages I encountered that another in my case might encounter will be documented, and searchable. :D
- have an encrypted /home
- hard shut down of computer
- wouldn't boot back up to the login screen
- couldn't mount /home from emergency mode
- had to boot a Live USB key and do fsck.ext4 on / (yes, /)
- problems with mounting /home were probably more to do with emergency mode and what gets enabled for different targets via systemd
- I need to update myself on my system's work-abouts :D
I know a lot about my computer and computers. There are a lot of people who know a lot more than me. Relative to the rest of the population, there was a time 3.5 years ago when my knowledge was probably ranked at a higher percentile.
I haven't had the same time and motivation these past few years, though. One of the largest complications has been my Masters. Sure, I know a lot more about machine learning, linguistics, natural language processing, etc., but that hasn't helped me really understand my computer much more. I was fortunate enough to participate in the Google Summer of Code 3 summers in a row, but my time was always tight for that, and full-use was probably not made of those opportunities working on GNOME.
However, today was a harsh wake-up call about the consequences of idleness. My knowledge of init and rc and Linux's old boot sequence is still fairly strong, having grown up in Slackware on the command-line. However, while I've read about evolving configurations and utilities since, I haven't gotten much practise in them.
And so, it was with horror when I realised that my system would not fully boot today and I could not immediately address the issue.
Today's Predicament
My /home directory is an ext4 filesystem on an encrypted LUKS partition. Perhaps you can immediately see what is going to go wrong. Earlier today, my computer froze up. That's not uncommon. As much as I love Linux, I am never surprised when it spontaneously freezes (especially on a laptop (what with having its Internet connection and video mode and power supply changing constantly)). After trying to get it to respond for 15s, I just held down the power button as usual and then turned it back on.
Plymouth came up, I saw the fedora logo start to fill, it was interrupted by the password prompt for my /home partition, I entered the password, and then the fedora logo filled up and - nothing. It just waited there. It should switch to gdm's login screen, but it wouldn't. I could go see the terminal in the background, but I couldn't access any shells. Just the start up log. There was nothing obviously wrong.
Sometimes I would see this message, "EXT4-fs error (device dm-0): ext4_mb_generate_buddy:757: group 83, block bitmap and bg descriptor inconsistent: 21682 vs 21673 free clusers", but dm-0 is my root directory. dm-3 is my home directory.
I tried to boot into rescue mode to see if I could still access all my files. No. After supplying my password for decryption, I would see this error message "device-mapper: table: 253:3: crypt: unknown target type
Failed to activate: Invalid argument".
That sounds bad. I entered the emergency mode shell, and checked the journal. This is something I only do occasionally using journalctl, as I used to directly check logs or dmesg. Uh oh. Here it was failing to mount /home, and it was failing at the step of "/usr/lib/systemd/systemd-cryptsetup attach luks-1496...e527 none" [LUKS name contracted]. Uh oh.
At this point I started to suspect that my encrypted partition was corrupted from my hard shut-down. There's not much else I can do with my computer when it freezes up, but I haven't suffered from it being left in a volatile, at least until now.
I tried to manually mount it, but then realised I have almost never manually mounted a file system encrypted using LUKS. I've used encfs, but - uh, now what? Also, lvm2 and systemd I'm only passingly familiar with. How am I supposed to be confident in my computer's reliability if I don't even understand the fundamental tools that house my data any more?
I double-checked that my back-up was still working (I've had back-up hard drives die on me before!) using another old computer and thankfully it was OK. However, I didn't want to have to back-up from it if I didn't have to, as I had done work in the past 24 hours that I didn't want to lose, damn it. (I'm so glad that I've gotten the knack of backing up every 24 hours at least!). I also wasn't completely convinced that my data was inaccessible. On plain text file systems, it's easy to grep or scan to reclaim many/most files, even if the file system itself is corrupted or the partition boundaries have been lost. You can't readily do that when the file system is encrypted, but perhaps there was a way to repair it?
Also, this made me wonder, why was the default multi-user graphical mode stalling out? If it couldn't mount /home, it should still be able to display the login screen. I don't need a /home for that. I tried to launch gdm from emergency mode and couldn't because of failed dependencies, one of which was for binary formats. That seemed weird. I didn't remember so many things failing to start back when I was booting in the normal way. So I tried the normal way again and ... it claimed that /home mounted cleanly and even gave a plausible count of files. (!)
I then decided to boot in single-user mode (edit the grub command for the kernel I'm booting into and add 'single' on the kernel line). This took me through the same process as usual, which seemed to mount /home correctly, but instead of going all the way to the point where it was stalling, it stops successfully before at a command-line for root. Hooray!
Once there, I poked around. I couldn't immediately tell why from emergency mode I couldn't successfully mount my file systems, but there's an egregious lack of familiarity in me regarding how systemd, lvm2, and luks interact, so that's no big surprise. I did a passive run of fsck.ext4 on my / directory (remember how dm-0 had errors reported earlier?) and yes, there seemed to be quite a lot. I grabbed my Fedora live USB key from my drawer, re-booted into it, ran fsck on my computer's root partition, and let it fix all the errors. This always alarms me, as I never know what data has been lost on my file system to lead to the errors in question. There's never a guarantee that cleaning up after the errors will resolve the problem in question.
Anyway, I rebooted, I went through a normal boot and - tada, the login screen.
Conclusion
So why did I write all that? In part to motivate me to learn more about the current state of my system to regain the glory of self-sufficiency. And in part so the few error messages I encountered that another in my case might encounter will be documented, and searchable. :D
2015-01-11
2015-01-09
[General] Writing
I thought of something beautiful to write today.
And now I've forgotten it.
I've had a lot of opportunities in the past few years that I might not have had. That's an obvious sentence. You can never fully appreciate what else could have been, since it wasn't. It's like if something horrible happens, and you wish you could undo it, it's a bit unsatisfying to know that if you could undo it, nobody would appreciate the difference, because the worse outcome wouldn't have been experienced.
I like the odd anime.
My Little Monster has a title that reminds me of a cartoon I watched as a kid, My Pet Monster. It was quite different and quite the same. It has some lessons that I've avoided, because I'm told they're bad. Perseverance is one of them.
Are the best things in life simple and obvious?
I'm sitting in a splendid room. Decorated with bed sheets, predominantly white in colour, all the better to glow under a black light. There are glow-in-the-dark stars on the wall. A bright orange salt lamp. Fake clouds atop the bookshelf. A comfy futon under me.
I suffocate the life around me.
And now I've forgotten it.
I've had a lot of opportunities in the past few years that I might not have had. That's an obvious sentence. You can never fully appreciate what else could have been, since it wasn't. It's like if something horrible happens, and you wish you could undo it, it's a bit unsatisfying to know that if you could undo it, nobody would appreciate the difference, because the worse outcome wouldn't have been experienced.
I like the odd anime.
My Little Monster has a title that reminds me of a cartoon I watched as a kid, My Pet Monster. It was quite different and quite the same. It has some lessons that I've avoided, because I'm told they're bad. Perseverance is one of them.
Are the best things in life simple and obvious?
I'm sitting in a splendid room. Decorated with bed sheets, predominantly white in colour, all the better to glow under a black light. There are glow-in-the-dark stars on the wall. A bright orange salt lamp. Fake clouds atop the bookshelf. A comfy futon under me.
I suffocate the life around me.
2015-01-03
[General] Neu
Years and calendars are relatively arbitrary (at least they align with physical seasons more or less), but I suppose they are useful structure.
What I've accomplished in 2014
What I've accomplished in 2014
- escaped crippling depression
- escaped crippling poverty
- took a break from a crippling Masters
- worked well, diligently, productively and regained self-respect and self-confidence
- improved my German greatly (hooray Duolingo)
- worked on photography
- managed to finally upgrade to a Micro Four Thirds (from a camera phone), wrote some handy scripts for my workflow, managed to mostly share an average of 40 photos/week. (Still haven't managed to integrate that stream into this site well :D)
- worked on budo
- learned a long-sword school, Kage Ryu
- improved two-sword Niten Ichi Ryu
- attained the rank of Nidan in ZNKR Iaido
- managed to make it to 1/3 of kendo practises (goal was 1/2, oh well)
- learned the jo side of Ran Ai
- grew my social video gaming :D (Wii U + Mario Kart 8 + Super Smash Bros + Hyrule Warriors), managed to play a fair amount with my best friend who is in another province
- caught up with anime (mostly through a circle of friends and regular night)
- found someone to teach me violin in exchange for cookies :D
- got my father out to Victoria to see his daughters
- went hiking, camping, and canoeing a lot
- improved my independence - no longer feel dependent on others!
- even have a basic understanding of what it is to "love" oneself
- started drawing way more often (work on the teddy bear web comic is underway!)
- made my own kitchen knife (!) in a FORGE and my own pants and top (for iaido) from 'scratch'
- expanded my baking repertoire (birthday cake, zucchini bread)
- started my own company
- negotiated a compressed work week contract :D
- managed to help my dad out a lot (zoom zoom)
- exercised! Goal was daily, managed every-other-daily, still good results, especially in cycling up Gordon St. workdaily
- bike maintenance!
- journaled privately more often (that is, not even online :D, so totally frank and no filters), worked on improving own information organisation
- made some cool, new friends
- made a neat web app (My Daily) but didn't publish it yet :D
- went tobogganing
- organised a booth for Guelph VegFest 2014 and a large vegan potluck on campus :D
- explored a sewer and dumpster dove
- traveled (Victoria/Vancouver, Timmins, Calgary)
- almost no relaxing downtime :|
- too busy a lot of the time, had to drop a contract even!
- managed to read just one book a "semester"
- didn't really do any of the Coursera courses I signed up for
- had two periods of notable stress (which I ended up catching)
- accomplished very little Open Source development
- failed to grow much as far as veganism goes (I need to get more familiar with more facts so I can make better arguments and retire bad ones)
- eating well - ended up spending more eating out just to make sure I had some complete meals, due to busyness
- got 80% of My Daily done, but haven't finished the remaining 20% :D
- work on integrating information
- I want photos to flow through this site
- I want my "microblog" posts to appear where they'll be read (Twitter) and where I live (here, kosmokaryote)
- want a private 'wiki' offline that I can store more facts about my own life
- practise violin weekly
- practise piano weekly
- start learning French
- further improve German
- reserve more time for me
- finish my Masters
- read more
- including about budo and veganism
- cook for myself, cook more healthily
- get out of Guelph
- improve on all the other stuff I've been doing :D
Subscribe to:
Posts (Atom)
Labels
#General
#Microblog
friends
#Technology
life
gnome
music
google
iaido
guelph
fedora
vegan
bugs
food
school
#GNOME
linux
technology
#School
jodo
blogger
gxml
#Budo
#Photos
work
web
nature
happy
vala
firefox
android
art
Flesherton
anime
internet
travel
home
open source
stress
kendo
kosmokaryote
writing
animals
birthday
dad
science
security
canada
computers
environment
future
cookies
development
german
language
photos
programming
reading
sick
sleep
snow
video
winter
GUADEC
cell phones
css
fun
learning
love
me
movies
people
phone
picasaweb
ta
time
christmas
evolution
vancouver
vegetarianism
#Vegan
Toronto
ai
git
gsoc
identity
new zealand
society
speech
vlogbrothers
adventure
birds
communication
dreams
facebook
google+
gseta
happiness
libgdata
netflix
night
responsibility
skedge
stars
tea
tv
video games
wind mobile
Nintendo
baking
cake
consumerism
design
fedora 17
javascript
memories
nlp
organisation
photography
quote
tablet
uoguelph
Josh Ritter
animalia
blogging
books
bug
encryption
family
humanity
magic
meaning
memory
money
pidgin
rain
recipes
speechdispatcher
sushi
weather
#Reading
Spain
TAing
The Frames
cat
chocolate
cold
cycling
death
emusic
film
flight
genderguesser
gitorious
halloween
health
knowledge
languages
liv
mail
new years
nightmares
politics
productivity
psychology
software
swords
the legend of zelda
ubuntu
web development
xml
xorg
youtube
Thanksgiving
acer
bc
busy
change
conversation
cooking
duolingo
emacs
fedora 18
galaxy nexus
gay rights
gmail
japan
libxml2
martial arts
materialism
mozilla
nerdfighteria
nostalgia
privacy
rhythmbox
sound
space
university
upgrade
valentines
wahoo
walking
water
web design
Con-G
Europe
John Green
Scott Pilgrim
age
animal welfare
apple
autumn
bash
blog
brain
brave
breath of fire II
calm
camera
canada day
clothing
comments
confidence
conservation
creativity
culture
dance
dataloss
djaqua
duplicity
e-mail
emotion
english
errors
feminism
gdom
germany
goals
google reader
gtk
humour
intelligence
japanese
laundry
law
light
math
morning
moving
ottawa
peterborough
pets
philosophy
pie
quality
research
sei do kai
shopping
spring
style
summer
value village
vday
vonage
website
x11
#Life
New York
alone
anime north
anxiety
argument
backup
budo
buffy
business
cats
computer science
concert
copyright
data loss
diy
eating
economy
education
energy
exercise
failure
fedora 19
feelings
file systems
flowers
freedom
french
friend
games
gdata
greyhound
growth
habits
heat
history
house
html
ice cream
im
information
java
joy
koryu
laptop
living
lost
microsoft
mood
moon
muffins
mystery
news
nz
pain
photo
php
physics
pirates
pizza
play
poverty
preupgrade
progress
purple
python
rae spoon
reality
reflection
religion
rss
self
serialisation
sharing
skating
social
sun
synergy
tachi uchi
testing
themes
thesis
thinking
thought
thoughts
transit
turtles
veggie challenge
velociraptors
violin
weekend
weird
yum
zellers
API
Air Canada
Empathy
Grimes
Hank Green
Hugo
Jane Austen
Lord of the Rings
Nexus One
OCUS
Sudbury
Trick or Eat
arboretum
audible
autonomous automobiles
beauty
bike
blogs
browsers
camping
cancer
canoeing
celebration
charity
chrome
cleaning
colour
community
content
corporations
crafts
decay
decor
depression
depth
disaster
drawing
epic
equality
experience
faery fest
farmer's market
fedora 12
fedora 16
fedora 20
fedora 22
fedup
fireworks
gender
ghetto
ghosts
glib
gnome blog
gnome shell
google talk
green
hair
hobocore
hungry
icarus
instant messaging
interest
introspection
jobs
last exile
luks
macbook
mail-notification
mario
meat in vitro
mind
mom
moon festival
motivation
mtp
ninjas
oh the humanity
pagans
pants
papers
past
performance
perl
phones
picnics
pitivi
plastic
pride
pumpkin
pumpkin pie
quiet thrill
receipts
rogers
rpm
seminar
sewing
simple
simplicity
sleep deprivation
smells
soy milk
speech dispatcher
sports
stories
story telling
strange
streamlines
swimming
telephone
temperature
texting
thrift stores
time management
time travel
tragedy
truth
understanding
united states
urban ecosystems
usability
usb
veganism
voice
volunteering
webschwerver
wild
wireless
working
world
yojimbo
zoology
Avatar: The Last Airbender
Blassreiter
CIS*2750
CIS*6890
Czech Republic
Diablo
Dresden Codak
Dunedin
Dutch Blitz
Electric Networked Vehicle
Elliott Brood
Ender's Game
France
Fringe
GNOME 3
HTC
Hayao Miyazaki
Mario Kart
Montréal
Network Manager
Newfoundland
Nintendo Switch
Ontario
Ouran Host Club
Richard
SVC
Samsung
Samurai Champloo
Santa Claus
Studio Ghibli
TCAF
US
academics
adb
advertising
aeroport
algonquin
amusing
animal agriculture
apartment
ask
automation
awkward
bad movies
banana
bats
battery
beard
belladonna
beta
bicycle
book
branding
breakfast
brno
bus
buses
buy nothing day
cabin
calgary
candy
cards
cars
catastrophe
celebrate
celtic
chat
cheap
cheese
childhood
china
chinese calendar
cities
clarity
clean
clock
comics
compassion
compiler
computer
conspiracy theorists
consumption
context
convention
cookie
cool
cornerstone
cosplay
cottage
country
court
creation
cthulhu
cupcakes
curiosity
cute
dancing
dark themes
dbus
definition
deja-dup
democracy
despair
detachment
dinosaurs
discomfort
dns
dodgeball
dragon
dress
dust
dystopia
earth
earth day
efficiency
eggs
elections
email
enhanced history
ethics
evil
exhausted
expectations
exploring
ext3
ext4
fail
fair trade
fall
fashion
favourite
feedly
ferry
focus
fonts
formal
free
friendship
fruit
fudge
full moon
furniture
gaelic
game boards
garden
gardening
gee
generosity
genetics
gimp
gir
gobject
good
google hangouts
google wave
government
grading
gratitude
green roofs
groups
gsec
guerilla gardening
haircut
hakama
help
homosexuality
honesty
howl
hp
human rights
humanitarianism
humility
hypocrisy
ice
images
imaqua
instagram
integration
intellectual property
internet explorer
jabber
jazz
jelly bean
jokes
kernel
keyboard
knife
labs
last exile: fam the silver wing
laurena
lazy
letters
library
libxml
livejournal
lizzie bennet
loneliness
loss
lovely
lyrics
maps
maturity
meditation
melancholy
metadata
microbes
microfinancing
microwaves
moon cake
morality
mother
music concert
muso jikiden eishin ryu
myth
namespaces
nasa
nautilus
nerdfighter
neural networks
nintendo 3ds
normal
normality
notes
obsolescence
oceans
open
open souce
open standards
panasonic
paper
parties
patches
peanut butter
perception
personal
perspectives
philanthropy
plants
pleasant
poem
politeness
potluck
preparation
problems
ptp
pulseaudio
quidditch
racism
recreate
redundancy
relationships
relax
repairs
resizing
richard's room
roomba
roses
rsync
running
sad
sadness
salsa
samurai
sanity
scary
schwarting
seasons
self-esteem
self-navigating car
selinux
semiformal
senility
sensitivity
sentimental
sheep
ships
silicon motion
sleeping in
sms
social justice
software engineering
solitude
solutions
songs
soup
speed
spelling
ssh
star wars
strangers
stupid
success
sunset
surreality
survival skills
suspense
sustainability
sweet
sympathy
symphony
tardigrades
tasks
teaching
technical communication and research methods
test
tests
thrift
tim tams
time and space
tired
tools
tracker
tradition
tranquillity
transience
trees
trust
tumblr
twitter
update
user experience
utopia
via
vihart
vlog
waffles
warmth
waste
waterloo
wave
web comic
webfonts
webkit
wii
wiki
winter is coming
wizard
wonder
woods
words
xmpp
yoga
youth
zoo
#Gaming
#Wishlist
#anime #general
1. is anyone reading this?
1602
1984
2. you win a prize!
2008
2014
24fps
3. gimme a call to collect
404
A Short Hike
All My Children
Andy Griffith
Argentina
Armstrong House
Avatar: The Legend of Korra
BarTab
Beach House
Boston
Boston Summit
British Columbia
Businesses
C
CIS*6050
Cambridge
Christopher Plummer
Claymore
Creatures
Darker than Black
David Attenborough
Dear Wendy
Docking Station
Dollhouse
Earthbound
England
Excalibur
FOMO
February
Fergus
Final Fantasy IX
Fire Emblem
GError
GNOME Files
GSA
Go
Google Play Music
Hunger Games
I am not okay with this
I believe in a thing called love
I'm a wizard
IRC
Ikea
Ireland
JRR Tolkien
King Arthur
Lost Lagoon
MIT
Mac OS X
Madrid
March
Massachusetts
Matlock
McGuinty
Melodies of Life
Merlin
Michael Cera
Mother Mother
Mr. Tumnus
Narnia
Neil Gaiman
New York Philharmonic
Nick and Norah's Infinite Playlist
Nintendorks
Norns
North Korea
NotesFromNewYork
Olympic
OpenShot
Orphen
Orson Scott Card
Oscars
PEAP
Pauline Johnson
Pete Peterson
Planet Fedora
Porco Rosso
Questionable Content
R
ROM
Rent
S
SIM Wireless
Sauble Beach
Sega
Sega Genesis
Selenium
Shakespeare
She-Ra
Snakes and Lattes
Splatoon
Star Trek
Steve Grand
Stranger Things
ThanksLiving
The Darkness
The Devil is a Part-Timer
The Fifth Estate
The Guild
The Hobbit
The Stand
Tianjin
Tim Hortons
Tolkien
UI
UK
UX
VPN
Will Grayson Will Grayson
Wolves in the Wall
WordPerfect
Xiki
[General]
abrt
absolutism
abuse
academia
accessibility
active
activism
activity
addiction
adreama
adrift
adulthood
advertisement
air
airport express
airship
ajax
al gore
alarm clock
albums
aldiko
alice in wonderland
alien
alistair summerlee
amateur
amazon
ambience
ambition
amy winfrey
anaconda
and imperfection
angle
angry birds
anhosting
animal cognition
animation
anon
anonymity
ant
apache
apology
appearances
appreciation
aqualab
arcade
architecture
arduino
arrogance
assassins
assignments
association analysis
astrid
asus eee top
asynchronous
ati
attachment
attitude
attribution
audio
aural abuse
authentication
authenticity
automake
automarker
avatars
awesome
b43
backpain
backtrack3
backyard bounty
bad
bagel
bandwidth
banjo
banks
barbarians
barefoot
baseball
bathroom
beaches
beautiful
bed
bees
beetles
being
belief
bellaqua
benedict cumberbatch
berlin
bertrand russell
bill gates
biofabrication
biology
biometrics
bit rot
bitcoin
black and white
blame
blockbuster
bloomberg
blue
board games
bohemian
bold
bon thé place
bonds
border
boredom
botany
boxing day
boy
brain scoop
brickworks
broadcom
broccoli
browsing
bubbles
bubbly
buildings
bunnies
burn
bus stops
butterflies
buttons
c#
c++
cafe
calendaring
calligraphy
camel
camera obscura
cameras
canadian english
canopy
capitalism
captivity
careless
caring
cast
causality
cbc
cedar row
cello
censorship
certainty
cgi
chalk
challenger
changing locks
chaos theory
charm
cherry blossoms
chickadee
chickens
chivalry
choir
chopsticks
chores
christchurch
christianity
chudan
church
cijf
cinnamon
classes
clif
clorox
clorox green works
cloud
cloud atlas
clubs
cname
coca cola
codeine
codeviz
cognition
coincidence
coins
color
comfort
commons
communism
competence
competition
competitive coughing
complaints
completeness
compliments
conference
configuration
conflicted
confusion
consciousness
consent
conservatives
conservativism
console
construction
constructive criticism
contagion
contest
contributing
convenience
corpses
cough suppressants
coughing
coupons
courageous
crashes
crates
crayons
crazy
creative commons
criminals
crisps
criticism
crosscanada
crowd
crtc
cry
crying
cryptic
cryptozoology
csh
cuddles
cult
currency
current tv
curse
customer service
customisation
cuttlefish
cvs
daily grind
data
data mining
databases
dating
david bowie
dconf
debate
debug symbols
debugging
delicious
design patterns
desktop
desktop summit
destiny
dftba
diet
difficult
digimon
digital receipts
disabilities
disappointment
discordianism
discourse
discoverability
dispute
dissection kit
distraction
diyode
dnf
doctor who
doctors
documentation
dokuwiki
doubt
doughnut
dpkg
drab
drano
drano prevention
dream
dreaming
drinking
drm
drowning
dryers
drying
dtwydt
ducks
dvds
dying
dynamic typing
ease
easter
easy
ebony jewelwing
ebooks
ecards
economics
editors
eeetop
el paso
elder neglect
electronic receipts
elements
elitism
ellen page
embarrassment
emily graslie
emptiness
empty
enchant
end of
enterprising
environmental science symposium
eog
epiphany
eplugin
equipment
essentialism
ether
euphoria
evoaqua
experiment
experimenting
expertise
extensions
extortion
facades
faith
falafel
familiarity
fan
fancy
fantasy
fascism
faun
favicon
fears
fedora 11
feed me
feedback
festival
fibonacci
fiction
fiddler crab
field guide
field identification
figment
figures of speech
file formats
finances
fire
fish
fitness
fixing
flac
flash light
flesherton fling
flexibility
flour
flow
flying
footprints
forceps
forgottotagit
fork
fortunate
fortune
found
fragaria
frameworks
fraud
fred penner
free time
freezing
french fries
fresh
friday
friend's wedding
frog
fspot
funding
funerals
funny
fury
fuse
gargoyles
gdb
geek
geeks
gf3
gi
gifts
gio
gitlab
gjs
glass
globalnewtgames
glory
gloves
glue
gluten
gm
gmo
gnome keyring
gnome software
gnome-control-center
go ninja go
go transit
goat
gods
goodbye
goodfella's
google assistant
google books
google calendar
google chrome
google wallet
gp2x
gqe
grad
graffiti
grammar
graphing
graphviz
grass
green beaver
grey county
groceries
growing up
gtest
gtg
guts
gvfs
gvfs metadata
gypsies
habit
hal
halls
hard
hard drive
hard drives
hardship
hardware
harry potter
hdtv
heart
heart break
heaven 17
hemlock grove
hewlett packard
hijinx
hiking
hoaxes
hobbies
holidays
homelessness
homework
honey badgers
honour
horatio hornblower
horror
hostels
hosting
hot
house of cards
hp lovecraft
hugs
humblebundle
humbleness
hunting
hyperlinking
hyrule
i am a carpet
ibm thinkpad x41
icalendar
ice cream sandwich
ice rain
icthyology
ignorant
ill
image
image editing
imagination
impermanence
inadequacy
inaturalist
inconvenience
independence
india
individuals
industry
infinity
ingrid michaelson
inhumanity
injuries
ink
innovation
insects
installation
intel
interactivity
interlocutor
internet tv
invertabrates
io
irish
irony
isolation
it
it is indigo
james bond
java 13
jedi
jikiden
joke
journalism
journey
judgement
julian assange
julie thiel
justice
kata
kayak
keys
ki-ai
killme
kim taylor
kinder
kindness
kirby
kitchen
kitzl
kiva
knights
knots
kodak
koodo
kung fu
labels
landau sacamoto
late
laundromat
led
legend
lending
lenovo
lessons
letsencrypt
letstrace
letter writing
liberalism
liberals
libnotify
libreoffice
librpm
lifehacker
lilo
limericks
limits
linksys
liquid
lists
live wallpapers
livecd
liveusb
loans
local
local food
local install
login
london
losher
lots of hugs
mac mini
machine learning
machine vision
madness
mae
magic school bus
magical
maintainership
majesty
malaria
malls
mantis shrimp
marine life
marketing
marking
massages
matrices
maturation
may seminar
meat
media
medicine
mel's diner
memory leaks
mental health
meow
mercy
messaging
metacity
metaphor
methodology
mezzo forte
micropayments
mild
mild weather
military
milk
mindhacks
minimalism
misanthropy
miscellany
misery
misfortune
missed the boat
missing
mlp
modelling
moisture
mold
molly parker
monitors
monologue
more cats
mosquitoes
moss
mother's day
mounting
mouse
moxies
muffin
muffinfilms
mundane
murder
museum
mushishi
mushroom soup
mushrooms
musicals
mutual funds
my slumbering heart
mysql
nameservers
nanowrimo
national treasure
natural language processing
naturalism
nausicaa
navigating
necessity
neighbours
nervous
netgear
network
new
new users
newspaper hat
next year
ninja turtles
nodelist
nointernet
noise
noisy
nominate
non-root
norse
noses
not really dying
notebooks
notification-daemon
novels
november fair
nuclear war
numbers
numix
obama
obligation
obliviousness
obscure
ocz
ogg
oggenc
olap
olive
omote
open formats
open music
openness
openoffice
optimisation
optimism
orcas
orchestra
oreo
oreos
org-mode
origami
oscar
otr
overheat
owen sound
package management
packagekit
packing
paint shedding
pan
pancakes
panda
parallelism
paranoia
passport
patents
patience
pattern recognition
pdo
peace
peaceful
pen
pence
pender
penguins
penmanship
perfection
pet rocks
physical
piano
pickman's model
picnik
pidgin plugins
pikmin
pintsize
pipelight
pirate festival
pizza hut
plagiarism
planning
plans
playground
playlists
plumbing
plushies
podcast
poetry
points
pokemon
polls
pomplamoose
positions
posse
post
posters
postmodernism
potatoes
potlucks
power
ppc
practise
prejudice
premier
pressure
pretty
pride and prejudice
priorities
private
processes
professionalism
progressive web apps
projects
promise
protest
proud
purchases
pwa
qt
quarantine
rad
radeon
railroad
randall munroe
raop
rats
reagan
recursion
recycling
redhat
reductionism
refactoring
refrigerators
regret
relativism
release
renew
renfrew
repetition
report
resolutions
resolve
resumes
reuse
reuters
reviews
revolution
rhino
rhps
ricola
risk
road trips
roar
robots
rockwood
rot
rover
rtm
ruby day
ryu
safety
sanctuary
sand
satisfaction
savages
scary movies
scheduling
schneier
scholarships
scooters
scp
screenshots
script
seals
search
secret world of arrietty
secrets
seitei
self-interest
self-respect
self-sufficiency
self-worth
semesters
senescence
sessions
setbuilder
settlers of catan
sftp
shame
sheepo pistachio
sheila patek
shell
shells
sherlock holmes
shipping
shogun
shotwell
shoulder bag
sigh
signal
sim city
simafort
simpsons
sincerity
singing
sjr
skill
skunks
sky
slackware
slashdot
sliver
small
smartphones
smiling
snails
sneezing
snowboarding
soccer
social dance
social media
socis
soft
solemn
someonesmotherwantstoadoptme
song
sony
sophistication
sorbet
sorrow
sparklers
speed river
spell
spellchecking
spies
spilt milk
splendid
splendor
splinter
spoilers
sponges
sql
squaresville
sr
ssd
sshd
stanley park
starry night
starving
steampunk
storage
strawberries
strength
structured information
struggle
stuff
stylus
suburi
sucks
sugar
super mario
super mario land 3d
superiority
superstition
surprise
surprises
surreal sushi
surrender
swings
systemd
systems
tabs
tachi uchi no kurai
tail coats
tameshigiri
tarot
taxes
tears
technocracy
teddy bears
tedtalk
term
termcap
terror
the duke
the fault in our stars
the hulk
the human league
the irregular at magic high school
the onion
theatre
theory
thingsidon'twanttodo
tim berners-lee
tim mcgraw
timber timbre
timeliness
tin tin
toaster
todo
toilets
tolerance
tonight
toomuch
touch screen
touchpack
tour
tourniquet
towels
toys
trac
trailer
translation
travel buddy
treestyle view
trex
triumf
triumph
trivia
trouble
tweak
twist
tx2500
tx2617
typing
ugly logos
umbrellas
un dinaru
underwold
unemployment
universe
unlimited blade works
updates
upgrades
uploading
urban agriculture
urban ecology
urchins
vagrancy
vagrant
vague but exciting
valadoc
validation
values
vampires
vanilla ice
variety
vegetables
velvet burger
verb
version control
vi
vinegar
violence
voip
vpnc
vulnerable
waf
wandering
wanting
war
warm
wayland
weapons
web hosting
webcomic
webcomics
werewolves
whales
what a wonderful town
whatsbetter
whic are also lazer powered
white spot
wifi
wii u
wikisource
will
williams
wings
wisdom
wishes
wizardry
wolf
wonderland
wordplay
world cup
world water day
writing voice
xenophobia
xephyr
xinput
xkcd
xpath
yahoo
yay
yyz
z-index
Blog Archive
-
▼
2015
(32)
-
►
August
(10)
- [Technology] Accessing files.web.uoguelph.ca from ...
- [General] Heading Homeward
- [Technology] Automating my life away
- [Technology] Starting Firefox Faster
- [Technology] Resizing my encrypted /home partition
- [Technology] How to Mount the Overlay Filesystem o...
- [Technology] Installing Fedora 22, again: wireless...
- [Microblog] Transient Thought
- [Microblog] Transient Thought
- [General] Simplicity and Innovation
-
►
January
(11)
- [Budo] Resolve
- [Photos] My wall is a whiteboard
- [General] Purified memories
- [Microblog] The stupidity of Google Music (Play Li...
- [School] 100 Days of Thesis: Day 91
- [General] Lots of thoughts, no time to articulate ...
- [General] MEN ON MARS, the story of Curiosity's od...
- [Technology] Bitrotting brain
- [Microblog] Tradition
- [General] Writing
- [General] Neu
-
►
August
(10)