For a while now, this site has been hosted on Heroku as static files generated by Jekyll, which is much faster than either my old WordPress blog or my previous Rails-based site (even with caching). Most sets of instructions for deploying Jekyll sites to Heroku either say to use Rack::Jekyll and commit the site’s compiled static files into Git, or to use a custom Heroku buildpack to compile the site at deploy time; GitHub Pages wasn’t an option, either, since they don’t allow plugins and I would have to commit the compiled static files to Git, and although I’ve borrowed a few plugins from Octopress, I wanted to start from a clean repository. Ultimately, I wanted to stick as close to the default Heroku setup as possible without cluttering the repository with compiled pages, and Rack::Jekyll is unnecessarily complicated when Rack::TryStatic works just fine.
Whether or not the Mayans (a) were full of crap or (b) are being misinterpreted, the way the Republican Party is behaving right now, they will not survive this election cycle. Let me preface this by saying that I am a die-hard Democrat—I voted for President Obama in 2008, and will be again this year—but I am also a firm believer that a successful two-party system requires two competent parties. The Democrats somehow overcame their perennial ability to lose any election otherwise handed to them on a silver platter, and miraculously spent two years actually getting things done; but dropped-out candidates notwithstanding, the entire Republican field of presidential hopefuls has only shown that they don’t care about getting anything done as President, about winning a general election, or even about getting anyone but their base to take them seriously. (Huntsman is the only one I would have given any credit to as a sane, reasonable human being, but that’s exactly why he was forced to drop out.)
I think the title says it all.
This is a simple PHP script I wrote for detecting whether a visitor to a page is connected via IPv4 or IPv6, matching the remote address server variable or an address passed as a query parameter to a regular expression and returning the address and protocol as JSON.
The first computer of my own that I’ve had was a Compaq desktop that, at the time, was relatively high-end: 3.0 GHz Pentium 4 processor with hyper-threading, 512 MiB1 of RAM, 160 GB hard drive, DVD and CD-RW drives, and 128 MiB graphics card. I got it in 2003; since then, it’s had its hard drive poorly partitioned from my first forays into Linux (Fedora Core 1), was the local web server on which I began teaching myself PHP, been used by my brother for almost two years as his computer after I got my Mac and moved up to Tempe to start at ASU, until he got his own computer, and had countless games and programs installed on it. Once my brother got his current desktop, the old Compaq fell mostly into disuse until I decided to bring it up here; and after sitting in my living room running basically nothing but BOINC, I’ve finally begun putting it to good active use.
Now, it’s running Ubuntu Server 11.04, connected only to my
home network (without a monitor, or “headless”), and acting as a
Transmission client, local Apache HTTP and
MySQL server, AFP file server (via
Netatalk), and IPv6 gateway with a
Hurricane Electric IPv6 tunnel and radvd. Most of that
is pretty straightforward; instructions on setting up AFP are in the
middle of that wall of links, and an IPv6/radvd how-to is forthcoming,
but I also have it connected to my Dropbox account with the idea of
having it be a host for backups of itself and my web server and
automatically managing and uploading the backups. I don’t quite have
the backup system figured out yet (when I do I’ll put together a
writeup on that, too), but I have got Dropbox up and running smoothly.
Most of this is based on instructions from the Dropbox wiki, both for a
generic Linux text-based installation and
for Ubuntu Server, but with a few refinements. I’ve put
together a script (which should be run as
root or with
sudo) that goes through the whole process, which is pretty
straightforward but I’ll go over the steps here. (They’re written for
and have only been tested on Ubuntu Server, but will probably work on
most other distributions; the only thing that might need to be changed
is the startup script.)
Something I’m kinda surprised I haven’t written more about is the only new toy that I’ve really at all managed to afford all semester. I got it to develop for, and am using it for that (hopefully I’ll have the app I’m working on now up by the start of next semester), but what I’m surprised at is how easily it’s integrated itself into my everyday workflow. I already have my phone, my desktop, and my laptop; but the iPad fits somewhere between all three.
It’s not really quantifiable, but a significant amount of what I do day-to-day now involves my iPad. It’s easier to take into the living room and use while watching TV than carrying in my whole laptop. I do most of my scripture reading, both my (almost) daily personal study and in church, on it, and have all of the study manuals I need and even the hymnal on it, and I actually do most of my regular reading (at least as much as I have time for) in iBooks. Typing on it is surprisingly easy, and it’s easier to pull out and send off a quick email than my phone; I’m even writing this blog post on it in the WordPress app. Web browsing on it feels very natural with the touch screen, and I use it a lot as an extra screen in addition to my laptop and desktop while doing web development.
I now have an Apple Magic Mouse and Apple Wireless Keyboard and they are the most awesome things ever. However, when I first set them up, the performance of the mouse in particular was rather spotty; every so often, the cursor would lag and stutter, as though the computer were trying to catch up to the movement of the mouse (which I knew couldn’t be the case with my 2x 3GHz dual-core, 4GB RAM beast of a machine). Google led me to a thread on the Mac Rumors forums discussing that exact issue, specifically a post which describes a very specific wiring fix. This fix worked perfectly for me, so I’m linking to and restating it here (again, this is for 2006 Mac Pros with model designation “1,1”):
Just a little earlier than I had anticipated. tl;dr version: I’m not dead yet. I came home because I’m dealing with depression and generalized anxiety disorder, which made it impossible for me to continue serving as a full-time missionary.
I’m not going to go into the full details here; suffice it for me to say that I am not deathly ill, nor am I committed to a mental institution. Generalized anxiety disorder is a legitimate condition, and can be just as debilitating to being able to function out in the mission field as a broken femur. It’s something that takes considerable time, effort, and self-motivation to fix, and the conclusion that I and the mission president came to was that it would be impractical for me to try to put the necessary time and effort into this while staying out in the mission field. It is an honorable medical release, and I know what it is that I have to do and do not feel bad about having to come home, or like I failed in any way. I gave my fullest effort and intent to trying to stay out as long as I could, and hopefully managed to have a positive effect on the people I interacted with while I was there.
- Be sealed for eternity in the Temple to a worthy young woman.
- Graduate from ASU with a bachelor’s degree in physics and make it into a PhD program.
- Decide on a field to study for my PhD.
- Work from home.
- Create a webmanga of stories from my mission.
- Create a(nother) Pokémon site with Aaron.
- Learn to DJ and produce electronic music.
- Learn to play guitar, drums, and piano, and get better at the violin and viola.
- Sing in a choir.
- Join and sing in a rock band.
- Write Pokémon fanfiction.
- Beat all of the Pokémon games.
- Get my rogue to level 85 in World of Warcraft.
- Get a character to the level cap in Aion.
- Study for and pass the CCNA and CCNP certification exams.
- Learn Objective-C and Mac and iPhone programming.
- Learn to cook.
- Visit Japan.
- Become fluent in Japanese.
- Learn Chinese, French, Korean, Italian, Spanish, German, and other languages.
- Blog more often.
Just over one week ago, on 15 November 2008, my best friend Rebecca was baptized and confirmed as a member of The Church of Jesus Christ of Latter-day Saints. I’ve mentioned before how impressed and happy I am with how strong her testimony has grown to be, from when we first met more than four years ago, when she knew almost nothing about the Church. I know I’ve said it a lot already, but I’ll never get tired of doing so: I’m very proud of you, Rebecca. Congratulations. (She’s on the right in the below photo, wearing the baptismal clothing a.k.a. jumpsuit; I’m on the left. No, I didn’t do the baptizing; Brother Wood, the teacher for her class at the LDS Institute in Tempe, where this was taken and where the baptism was held, was the one to do it. In the same Flickr set behind the photo link are photos of Rebecca and Brother Wood, and of Rebecca, Brother Wood, and Elders Jeffrey and Wood.)