Skip to content

Introducing AFdN.me

Spurred on by the coolness1 that Viper007Bond (aka Alex Mills) enabled with his v007.me site-specific URL shortener, I have also implemented a similar functionality, also using YOURLS.

a-n-d-r-e-w-f-e-r-g-u-s-o-n-.-n-e-t is 18 characters. I’ve managed to reduce that down to a mere seven (a 61% reduction in effort). http://afdn.me is primarily designed to serve at the short URL location and branding for AFdN. This will primarily be seen in social media, such as Twitter, but could also show up in print locations where space may be limited.

tweet

Instead of showing a link similar to wp.me/p4tPz-2cP (as shown above), links to AFdN will now appear similar to afdn.me/mg3sm. All previous short URLs will, of course, to continue to function. Only new posts (and old posts that have been edited) will see the new shortened URLs.

The self-referential nature of using AFdN.net did occur to me, but the domain was already taken.

This has also been rolled out for AndrewAndRachel.com, which uses http://aandr.us as its shortened URL.


  1. Honestly, the real reason I implemented this is that http://andrewandrachel.com/wedding/photo-booth is too long to put on a photo strip branding logo ↩

Bloomberg: The Largest U.S. Banks Aren’t Really Profitable At All

This makes me frustrated. No one should ever be “too big to fail”. That’s a poppycock soundbite to maintain the status quo. How do we, as everyday citizens, bring about actual change for things like this?

From www.bloomberg.com:

“In other words, the banks occupying the commanding heights of the U.S. financial industry — with almost $9 trillion in assets, more than half the size of the U.S. economy — would just about break even in the absence of corporate welfare. In large part, the profits they report are essentially transfers from taxpayers to their shareholders.1”


  1. Emphasis added ↩

Deciding and Executing

In my opinion, there are two critical events that must occur when making something happen.

The first is you have to choose to decide to do it. This may seem intuitively obvious and perhaps even easy, but I think it’s actually the hardest. Decide comes from the Latin dēcīdō…from dē (“down from”) + caedō (“cut”). Decide literally means to “cut off” other options. And when you truly decide something, there is no going back…alea iacta est, “the die has been cast.”1

That’s not an easy thing, and sometimes we don’t even have complete control over all the factors. Never the less, we choose to jump both feet first into that unknown.

The second critical event is executing on what you decided to do. Often times I’m honestly not sure how something is going to happen. There are all sorts of paradigms along the lines of “time, money, quality: pick two.” But speaking as an engineer, I think figuring out the “how” — the appropriate balance of whatever paradigm you choose that brings about a solution — is often half the fun, and is likely easier than truly committing and deciding to do whatever it is that you’re doing.

NB: This an excerpt of an email I wrote to a good friend. I’ve talked about the etymology of “decide” with several people before, but surprisingly never here. Glad we rectified that.


  1. Caesar used the phrase as a metaphor to express the fact that he had crossed the river, and there was no going back. See also: The End is Nigh…at least the End of the Beginning is Nigh ↩

How to Improve American Presidential Elections in Four Steps

It’s obviously never as easy as it sounds, but I think there are some good ideas here. In particular, I would be in high favor of amending the Constitution to move our election system to Instant Runoff Voting (or similar) system.

While such a system could be done at the Electoral College level, my opinion is that it would be better to abolish the Electoral College entirely if we moved to an IRV (or similar) system.

via Alex King

The art in assertiveness is to ask strongly for wh…

The art in assertiveness is to ask strongly for what you want then to let go of it if the answer is No. You tread the fine line between consistent perseverance and the stubborn persistence that can feel to others like abuse. Passive people do not ask for what they want. Aggressive people demand (openly) or manipulate (secretly) to get what they want. Assertive people simply ask, without inhibition of themselves or pressure on others.

Where’s Andrew: An Update

Currently, I’ve been laying low with Mononucleosis. I got sick right after the first of the year with what I suspect was the flu. It came and went and then I got really tired. I did the tired thing for a couple of weeks, including a trip to San Diego. Eventually though it got to the point where I couldn’t sleep more than about two hours because my throat was so sore.

The ARNP thought it was strep, which I could totally see and would have actually been grateful for because I could have taken some antibiotics and been better within 48 hours. As it turned out, I got this letter instead1:
mono_letter

I was also busy with Christmas and now wedding planning and honestly, just life in general.

I’ve been struggling to figure out what to do with this space. Blogging is not as high a priority as it used to be, which I think is a good thing — it means there are other things that are really exciting. I still really want to share things though, I just don’t know how to best do that yet.

I’m going to try an experiment for the next month or so where I’m going to be posting more links to things I find interesting. I’m also hoping to post some more pictures…sort of like Instagram, but without all the Terms of Service drama.


  1. They actually called me and then sent the letter ↩

Setting up OpenMediaVault

I hope everyone had a merry Thanksgiving! I spent some of my time setting up OpenMediaVault on an Acer Aspire 3610 that my Kolby gave me. It’s a pretty small machine, running an Intel Atom 330 1.6 GHz with 2 GB of RAM1, but I think it will be perfect for running my new NAS!

I’ve been dreaming of a NAS for some time, I’ve contemplated building one for at least two years, but could never justify the cost. What makes this different is that it doesn’t require any new outlay for equipment–I’m literally using what I have already!

I settled on OpenMediaVault because it was based on Debian, which I have more experience with2.

Here are some configuration tricks I need to use in order to get it to work How I Like It™:

CrashPlan

I use CrashPlan on my laptop and it’s great3! If you don’t have a backup plan, you need to stop reading and get one now. Seriously. What would you do if your computer was stolen, or the hard drive went kaput, or you accidentally deleted something? I want to make sure that data my NAS is storing is just as safe as the data on my laptop.

There’s a guide over on the OpenMediaVault forums which basically echos the official CrashPlan Linux installation guide. Everything went okay until I tried to launch the desktop client and I couldn’t get X11 forwarding to work. I was eventually able to get a headless client to run from my laptop connected over a tunneled SSH, but I didn’t want to have to muck with the ui.properties files every time I wanted to check on things. I also wanted to be able to run both my client and the OMV client simultaneously. So I went back and did some more work on the X11 issue and here’s what I found needed to happen:

For the purposes of this, the IP address of the OpenMediaVault server is 172.16.131.130

Log in to your terminal via SSH:

ssh root@172.16.131.130

Note, if you get a ssh: connect to host 172.16.131.130 port 22: Connection refused, you need to enable SSH via the OMV online console first!

Prerequisites:

apt-get update
apt-get install xorg
echo "X11UseLocalHost no" >> /etc/ssh/sshd_config
/etc/init.d/ssh restart
apt-get install openjdk-6-jre

Install CrashPlan

cd /tmp
wget http://download.crashplan.com/installs/linux/install/CrashPlan/CrashPlan_3.4.1_Linux.tgz
tar -zxvf CrashPlan_3.4.1_Linux.tgz
cd CrashPlan-install
./install.sh

Answer yes to install installing Java, and answer all the other questions as required. If you just press return, the defaults will work just fine (and that’s what I used).

Log out and back in with X11 forwarding enabled, then run CrashPlan:

exit
ssh -X root@172.16.131.130
/usr/local/bin/CrashPlanDesktop

Give it a few seconds and you’ll see that familiar CrashPlan green.

Other notes:

  • It was helpful to debug with ssh -v
  • Looking through /usr/local/crashplan/log/ui_error.log was the key to understanding that the version of Java downloaded by CrashPlan was throwing errors (such as java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3448 or swt-pi-gtk in swt.library.path) and needed to be updated.

HFS+

I have a couple of drives that are formated in HFS+ that I wanted to use without having to reformat them. As a side note, I think NTFS is probably the best bet for multisystem compatibility when the potential for dealing with files larger than 4GB. A comment on the OMV blog by norse laid the basic ground work, but I also had to pull some information from Raam Dev’s blog about configuring HFS for Debian.

Note: hfsprogs 332.25-9 and below has a bug where “[f]ormatting a partition as HFSPLUS does not provide the partition with a UUID.“. The work around is to boot to OS X and use the disk utility to format the partition, but this doesn’t work as well when you’re using a VM. The solution is to use the unstable 332.25-10 release of hfsprogs.

echo "deb http://ftp.debian.org/debian testing main contrib" >> /etc/apt/sources.list
apt-get update
apt-get install hfsplus hfsprogs hfsutils
sed -i '$ d' /etc/apt/sources.list
apt-get update

Then modify /var/www/openmediavault/rpcfilesystemmgmt.inc to be able to handle and mount HFS+ disks:

48c48
< 					  '"jfs","xfs","hfsplus"]},
---
> 					  '"jfs","xfs"]},
118c118
< 			  "umsdos", "vfat", "ufs", "reiserfs", "btrfs","hfsplus"))) {
---
> 			  "umsdos", "vfat", "ufs", "reiserfs", "btrfs"))) {
664,667d663
< 			break;
< 		case "hfsplus":
< 			$fsName = $fs->getUuid();
< 			$opts = "defaults,force"; //force,rw,exec,auto,users,uid=501,gid=20";

Finally, you may need to fsck your HFS+ disk if it’s being stubborn and mounting in read-only mode. With the partition unmount:

fsck.hfsplus -f /dev/sdaX

WiFi

Getting WiFi to work took me down a rabbit hole that ended up being unnecessary. First, verify which Wireless you card you have. The easiest way to do this is using lspci:

apt-get install pciutils
lspci | grep -i network

You should see a line like:
05:00.0 Network controller: RaLink RT3090 Wireless 802.11n 1T/1R PCIe

Installing the RT3090 is pretty straight forward:

echo "deb http://ftp.us.debian.org/debian squeeze main contrib non-free" >> /etc/apt/sources.list
apt-get update
aptitude install firmware-ralink wireless-tools wpasupplicant
sed -i '$ d' /etc/apt/sources.list
apt-get update

Edit /etc/network/interfaces to add the following:

auto wlan0
iface wlan0 inet dhcp
    wpa-ssid mynetworkname
    wpa-psk mysecretpassphrase

Note: the Debian guide recommends restricting the permissions of /etc/network/interfaces to prevent disclosure of the passphrase.

Then run:

ifup wlan0

That’s all I have for now, I’m working on some methods for backing up other data to the NAS (such as my web site and GMail) which I’ll write up later.


  1. we tried using it to stream the Olympics, but it wouldn’t even do that very well, but I think that was due to the nVidia chipset not playing well with Ubuntu ↩

  2. FreeNAS and NAS4Free both being based on FreeBSD ↩

  3. I previously use Mozy, but they started charging by the GB, which wasn’t going to work for me ↩