Basic ZFS Snapshots

I’ve recently upgraded my nas, and I’ve decided to add snapshots to reduce the probability that my stupid mistakes cause data loss. I think that daily snapshots should be good enough for me. I’m aware of various options that exist to create snapshots, but I decided to roll my own.

Here’s the basic code for creating a snapshot on the pool:
Read more »

Hello world!

Just migrated to a self-hosted  site – waiting for dns propagation…

I also am splitting my blog – music posts will be at thedavidofmusic.com

Export/Import

Export was very straightforward – I just went to Tools->export on my old site, but the import was more complicated.

First, I had to install the import plugin, then when I went to do the import, wordpress complained about permissions. I set the wp-content/uploads folder to 777 temporarily, at which point the import worked.

I then exported the import, and found a few links that had not been migrated (all of which were links within the regular text in posts), which I manually fixed, then re-imported.

I also went through and modified posts containing code to use WP-Syntax instead of the old code blocks.

Closing our Generation's Frontier

In 1994 President Clinton passed and signed the Communications Assistance to Law Enforcement Act, requiring telecommunications companies (carriers and providers only) to have the ability to intercept commumications and allow access to this data at the request of the government – in other words, provide mechanisms for government wiretapping.

Since then, technologies have advanced and the structure of the internet has progressed. Many services provide encrypted peer to peer chat, which is inherently resistive to wiretapping.

The Obama administration is drafting a bill requiring that all communications services be capable of complying with wiretap orders. Setting aside privacy implications (especially in the context of the Bush administration’s warrantless wiretapping), the added burden on communications services will slow innovation and herald an era of unnecessary beaurocratic regulation on what is our generation’s frontier.

Using python’s imp to dynamically load modules

Python’s imp module is a bit of a bear, but thanks to the groundwork in this thread, I got it straitened out. Here’s some lightly tested sample code.

import imp
# the path variable is optional, but possibly necessary
    tmp = imp.find_module("module", ["relative/path", "/absolute/path"])
try:
# the names of the two constants do not seem to matter
    module = imp.load_module("name", tmp[0], "path", tmp[2])
finally:
    tmp[0].close()
    module.thing

Python 2.6+MySQL for CentOS/RedHat/Fedora

This is how I created a tarball that, when extracted, gives a fully functioning install of python 2.6 w/ mysql – while leaving all of the original binaries in place.  The destination of the tarball must be decided at compile time. You may need to recreate the tarball if any of the software packages this is based on (the *-devel packages found below) are upgraded.

The creation process will modify the build server, though the resulting tarball will be completely clean (can be untarred into any similar server with identical software versions and file locations without modification).   You may want to wipe your environment after successfully testing deployment.
Read more »

Clojure: Getting Started in 5 Steps (Intellij+La Clojure)

If emacs isn’t your thing, or you prefer a modern IDE (read: GUI) for development, I recommend IntelliJ IDEA.  An open-source, community edition was just released, and it is definitely worth giving a spin – I’ve been a fan since I first tried it a couple of years ago.

Being at a university where the first language taught is Java, but transferring from an institution where C++ was dominant was a bit of a pain.  IntelliJ got me through my Java-based courses.  I tried and managed with Eclipse and NetBeans for the first semester – but we were given a significant initial framework.

Enough of my praise for IntelliJ.  Let’s get started!
Read more »

Protected: A (fairly vivid and surreal) Dream

This post is password protected. To view it please enter your password below:


Clojure: Getting Started in 5 Simple Steps (Emacs+Slime)

More than anything, this post succinctly describes how to get up and running with Clojure + Emacs. Virtually no thinking is required if you are working from a default install of Ubuntu, and not much more is required for any linux distro – you just need to know how to use your package manager.

Furthermore, if any of these steps would cause you trouble (deleting .emacs* comes to mind), you probably already know how to handle it.
Read more »

A few new things (to me)

Emacs starter kit:
improves advanced configuration of emacs

OpenDNS:
basic web filtering

Gizmo:
make and receive online calls

Google Voice:
very nifty phone enhancements

(the above two can be combined to give free skype-in/out type service)

Wiping Data (or Secure Deletion) from Linux

WARNING: This blog post was posted at approximately 3 AM. As a result, it is not very well defined. Had I been thinking, I would have been more to the point. As it is, I may repost more info about the Seagate HD when it is successfully RMAd.

One of my hard drives is making sounds that indicate that it could fail at any time; In order to prevent any losses, I ordered a new drive. I spent a while copying all of my data from one drive to the next (I generally have 2 drives in my computer at a given time; the drive closer to failure contains data that is broadly available online, so losses should be minimal if anything happens, while my personal data is semiannually burned to disc and regularly synced to my brother’s computer). At any rate, I finished the migration, and started updating my install on the new drive.

The next morning I got up and found that my computer was making a horribly disturbing sound. The update process had blocked on a prompt for my acceptance of a license agreement. Read more »