Category Archives: work

Cloning a VMWare Server VM

I recently had a need to make a bunch of clones of a vmware virtual image on my vmware server. After doing a few by hand, I got tired of it and wrote a little script to do it for … Continue reading

Posted in Linux, Tech, dev, sysadmin, work | Leave a comment

Happy B.C. Day

It turns out that I’m in Victoria, British Columbia for work this week. When I planned the trip (at the last minute), I didn’t know that Monday was a Canadian holiday. As one of my American coworkers is here as … Continue reading

Posted in work | Leave a comment

Stage

For a long time at my day job, one of our big web site issues has been the staging of database-driven content. Particularly if you’re editing Drupal pages that have a lot of markup in them, publishing a node can … Continue reading

Posted in Tech, dev, drupal, work | Tagged , , | 2 Comments

Flock Eco Edition

Word seems to be getting out that we’re releasing an eco edition of the Flock browser for Earth Day. I haven’t tried it myself yet (we’re doing final QA on the build to make sure it’s in good enough shape … Continue reading

Posted in flock, work | Tagged , | Leave a comment

Travel Sounds

This is the sound me trying to swipe the wrong part of my virgin passport through the bar code reader (to be fair, there were two barcodes). This is the sound of me negotiating the single-row seat with a couple … Continue reading

Posted in work | 1 Comment

Google Docs

I’m usually pretty leery of using online services that I don’t administer for things that matter to me. For example, I’ve resisted a number of times using Google’s calendar for work purposes because there’s potentially sensitive information being posted to the calendar. So not only do I not have control over leaks of the data, but I don’t have control over backups, uptime of the service, etc., and this seems a lot of liability for something I need to make sure I’ve got access to. (Honestly, though, I think the smart folk over at Google are probably generally more competent than I am to guarantee uptime, backups, etc. — comparative benefits packages would suggest as much, at least.)

I’m very satisfied with one aspect of Google’s online service, however, and I’m consistently able to put aside my paranoia to use Google Docs for collaboration. Now I’d never store an important sensitive prose/text document there, but for planning server maintenance, the spreadsheet application is hard to beat. You share a document with everybody who’s involved, and everybody can view and edit the document at the same time. This past weekend, I was tasked with taking another shot at setting up replication between some mysql servers. We’ve set this up in the past but have lost confidence in the validity of the replication. So a coworker and I made another go of it this weekend. In preparation, I made a punch list of our steps, from putting up downtime pages and blocking access to the database at the firewall to pasting in commands for dumping data and resetting meta-data. I was able to color-code the steps by server so that it was easy to tell at a glance on what hardware to perform a step. And then as we went through the steps, we could update columns describing who performed a step and when. Of course, we’re coordinating this in a chat window as we’re doing the work, but it’s neat to watch the spreadsheet being updated interactively as we go, and this method provides a really simple, nice way to collaborate and keep a record of the process. Since the data’s not terribly sensitive (provided you don’t put passwords in), hosting it elsewhere doesn’t give me the heebie jeebies, and it’s nice to have a centralized repository of past maintenance events to build on for future maintenance. If there were a version you could download and install on your own hardware, I’d do it in a heartbeat and even use the apps for sensitive data, but then how would Google watch your every move and deliver search results based on the documents you create?

Blogged with the Flock Browser Continue reading

Posted in Tech, sysadmin, work | Leave a comment

Flock

For nearly three years now, I’ve worked for a company called Flock. For nearly three years, we’ve been working toward releasing a 1.0 version of our product. And yesterday, we finally did it, amid much less fanfare than I might have expected (not even a company blog post). Starting as far back as version 0.5 just under two years ago, I’ve been using Flock as my primary web browser (that’s what we make, a web browser built on the same platform that drives Firefox), so I’ve been around to see all the changes the product has gone through.

Our first public beta was released to much hype with subsequent fizzle. It had a neat skin, a photo viewer/uploader, a rudimentary blog authoring tool, and something we called the shelf, and that was it, besides the basic browser functions. Although we had many early enthusiasts (some of whom are still with us), reactions tended to be along the lines of “this is what the hubbub is all about?”

In June 2006, we released version 0.7 of the browser and saw lots of downloads and a lot of press (I worked 20-hour days for a week to keep the new web site from dying under the strain of our traffic). We were thinking at the time that we’d have a 1.0 version by the end of the year, but change was in the air, and after some executive turnover, the end of the year had come and we didn’t have a 1.0. In the first couple of months of this year, I feel like we really hit our stride and started executing. We pushed a 0.9 version with subsequent updates that got tolerable reviews, and our 1.0 beta releases over the past few weeks have been met with the customary skepticism, but for the first time, a lot of that skepticism is beginning to turn over. People are posting that though they found our product either not compelling or too buggy in the past, they’re loving it now. And plenty of newcomers are saying that they’re addicted.

I’m going to do a little sidebar here on the social web. I’ve always been pretty cold to it. What need do I have to send to Twitter every half hour an update about what I’m doing, or to read in real-time that my social-web-addicted buddies are going out for coffee or sitting through a dull meeting? Do I really want to read another “20 Questions” type post on MySpace? Basically, I don’t often have time or the compulsion to fool around on social networking sites. I spend my day working on the computer and so don’t typically like to spend much time playing on it. A year or so ago, I signed up with MySpace and Facebook basically because my work compelled me to. It was another way for Flock employees to consume our own dogfood, so to speak, and to network with users of these sites who were interested in Flock. But there wasn’t much personal value to me in signing up on these sites. I had a profile but I didn’t use the sites with any regularity.

The latest version of Flock has changed this because it brings the social web to me. The nifty services sidebar notifies me when I have new messages or pokes in Facebook, and it lets me drag content from the web to friends’ avatars to share it with them. I can find individual friends within my network more easily than by using Facebook itself because I can type part of a name in a textbox embedded in my browser to filter my friend list. I can see updated statuses easily, and an icon lights up for friends who have uploaded new media. When I click a person’s media icon, a media bar appears and is populated with thumbnails of their media that I can scan at a glance, clicking through to actually view only the things that interest me. Probably the best thing is that Flock tells me when there are updates so that I engage only when I have a good reason to rather than having to remember and bother to visit Facebook to look for updates. Since I’ve been using Flock 1.0, I’ve been engaging with people in my network, sending messages I wouldn’t have sent and viewing photos I wouldn’t have bothered to view. Flock 1.0 for me is like the Reader’s Digest of the social web. I’d never go out of my way to read a full-length bio of Meredith Baxter-Birney, but if I’m sitting on the can and have read all the jokes in my Reader’s Digest, I might thumb through the RD condensed interview with her, and I might even enjoy it a little.

That’s the main thing that differentiates Flock 1.0 from previous versions for me. I’ve long been a fan of the built-in feed aggregation, and it was Flock’s Flickr uploader (which also works with Piczo, Photobucket, and I believe Facebook) that prompted me a year ago to buy a Flickr Pro account. It previously hadn’t been worthwhile because, as a Linux user, I had no painless way of uploading photos in bulk. Flock also has built-in del.icio.us integration, the aforementioned shelf (now called the web clipboard, basically a little drag/drop area that lets you store dragged items for later use in blog posts), the blog editor, and all the goodness that comes with Firefox 2.0′s underlying engine.

I’m an employee of the company, of course, and so I have a vested interest in our success. But I really really do like the product and would use it for the built-in feed reader even if I weren’t an employee. (I’m not only the president of the hair club for men…) I suspect that there are plenty of people for whom Flock provides no benefit that Firefox doesn’t. If you don’t upload photos or read news feeds or belong to social networks, Flock’s probably not for you unless you just think it looks pretty. I wouldn’t necessarily recommend it for my dad, but I probably would for my sister and most of my friends. If you do do any of those things, why not give Flock a shot and let me (or our talented support staff) know what you think? Continue reading

Posted in flock, work | 1 Comment

Counting leaves

I forget how it came up, but Mleeka was telling me the other day that she was trying to explain to an inquisitive neighbor what it is I do for a living. She knows I do computer stuff and that it’s most often web-related or system-admin-related, but these are still pretty amorphous things to somebody who doesn’t actually perform the tasks they entail. While raking leaves today, I was thinking about how I might have answered the question, which is a hard one for me to answer in a way that would be very meaningful to non-developers.

In a nut-shell, I call myself a web and analytics programmer, though I devote a lot of time to systems administration as well. The web part is fairly easy to explain. If you look at my company’s web site, you’re looking at my work. I don’t make the pretty pictures that compose the web site, but I take care of the parts that make it behave as it does, from sending emails to letting you post to the forums to displaying various types of content. I’m like the mechanic for the web site.

The analytics part I think can be a little harder to capture. At a very high level, I help facilitate the collection of statistics about our product and our web sites. At a lower level, I try to help coalesce these bits of data into meaningful, actionable numbers. For example, if we know that we have X users and Y monetizable actions performed in the product daily, then we can track Y divided by X on a daily basis and watch the curve to see what kind of money we’re making per user per day on average. If a given monetizable action begins to trend flat or downward, we might consider trying to make it easier to use the feature so that we make more money off of it.

The thing I’ve learned over the last year or so is that as you get more and more data, it gets really hard to do anything useful with it on demand. Imagine that each day, 100,000 users’ products phone home to check for a product update (I’m just making that number up). You know then that you have 100,000 users per day. If you want to track this over time, it only takes 10 days before you’ve got a million pieces of data to try to extract something meaningful out of. If you’re tracking more than one piece of data per user, your data volume increases at an alarming rate as your user base grows. The more data you have, typically the longer it takes to cull through it. And yet you have executives trying to make decisions based on this data who don’t want to sit and wait a long time for reports to run. The trick is to aggregate the data as it comes in, and as I was raking leaves this morning, I came up with what I think is a useful way of explaining how scale affects the ability to report and how aggregation helps. It’s easy to accept propositions about scale and aggregation abstractly, but concrete examples are often useful.

So imagine that you’re tasked with counting leaves. Further, imagine that on any given day, you might be tasked with reporting how many leaves there had been on some past day. Or more specifically, how many red leaves vs. yellow vs. orange. If you recount every time somebody asks you, it’ll take more time than is reasonable. The first step naturally would be to group your leaves by day (grant that this is physically possible). So on Monday, you count all the leaves and put them in a pile with a sign stuck in the ground that says “Monday: 45,031 leaves.” On Tuesday, you do the same for any other leaves that have fallen, and so on. On Friday, if somebody wants to know how many leaves you raked on Monday, you just look at the sign and tell them rather than re-counting. But what about leaf color? Well, you do the same thing, but you make a Monday pile for red leaves, a Monday pile for yellow, and a Monday pile for orange, each with a sign noting how many leaves of each color for that day. Then you add the sums and post a sign with the total for all colors for the day. If you do this as you go, then you can very quickly get back to the counts for any given day and report without having to recount. The general idea is that it’s much easier to add sums than it is to recount. The tricky part is defining in advance what sorts of information you want to know about your leaves before you ever do the counting; else you have to recount everything for all time, sorting into different piles to get counts per organizational criterion. Continue reading

Posted in work | Leave a comment

Being a sysadmin

My sleep is seldom affected by being one of a few people at my company who spends part of his time doing system administration, but this week has been a sure exception. We moved our whole public server infrastructure to a new section of our data center (complete with new IP addresses and routing), implemented load balancing of two separate clusters of web front-end machines, migrated two database servers to new hardware, and set up database replication for our web-facing databases. And we did it in sort of a last-minute, pre-product-launch scramble with what shoestring planning we could cobble together, while working on other high-priority projects and with very limited down time and, as far as I can tell, very little in the way of experience among our staff with implementing any of these things in a production environment. I’m not sure it could have gone more smoothly had we planned it for three months. It’s inexplicable, really. Of course, helping to make all this happen necessitated my putting in long hours over the weekend and waking up at times like 1:00 a.m. or 4:30 a.m. before or after an otherwise full workday to minimize the impact of down time. We coordinated this with sysadmins in Germany, California, and Tennessee and a data center in Texas. With my dad coming into town this weekend and a pumpkin-carving planned for tonight, I aim to take off around lunchtime (having started work at 4:30 this morning after staying up late to watch the Red Sox take the second game of the World Series) unless somebody threatens to fire me for doing so. Continue reading

Posted in flock, sysadmin, work | Leave a comment

Linux in the 21st Century

For years now, I’ve been an avid Linux user. I (half) joke about how crummy Windows is, and I hate when I have to support Windows, though I’m really not as much of a Linux zealot as you might think. I have to confess that there’s a part of me that likes knowing how to do arcane things that lots of other people don’t know how to do. See all that text scrolling by in my simple terminal window? That’s me installing software, bucko. No graphical installers with smiling paperclips for me. I really do like understanding how my system works (more or less), being able to look under the hood to troubleshoot things. I like not having to understand how a registry works in order to tweak software (though I do have to know how to edit a text configuration file, which might be as scary to others as a registry is to me). But some of my old school willingness to dispense usability in favor of a dumb sense of pride and configuration simplicity is wearing off. More and more, I’m finding that there are tools it’d be nice to have that aren’t best implemented in a terminal application. Sure, I could write a program to read a text file I store meeting requests in and send me an email when I’m about to have a meeting, but that takes work and seems not terribly reliable. More and more, I’m looking for tools to handle these sorts of tasks for me, and I’m finding that I like them. I’m emerging from my self-imposed prison of command line solutions and testing out tools that just might help me work like a normal human being, and with some surprisingly good results.

One such tool is Korganizer, the KDE desktop manager’s calendar and organizer tool. In recent months, I’ve been required to attend many more meetings than in the past, and trying to keep them all straight has been a pain. I had tried using Mozilla’s Sunbird calendar program at various times in the past, and it’s a fine piece of software, but it clutters up my workspace. In addition to my mail window, my browser, my irc client, and my tabbed terminal window, I also had to have Sunbird running, and it just irritated me. So I recently tried Korganizer, which it turns out will hide in your system tray and pop up alerts reliably. I’ve been using it for a couple of months now and really have no complaints. It’s a little sluggish on my system, but not so bad that it keeps me from using it. I can tolerate a little UI lag when adding events if the trade-off is reliable notification of upcoming events, the ability to suspend or dismiss events, reasonable handling of recurrence, and a view of my day or week (or month) that lets me see at a glance what’s on my schedule. And Korganizer has all of these things. It also handles todo lists and journals, which I guess are like meeting minutes. I started using todo lists but found that having to open the app to see them made them less useful. I haven’t played with journaling. There are a bunch of buttons at the top that I haven’t done much with, though I’m sure they’re useful. The system tray utility seems to use up no appreciable resources, and that’s a big win on a system that runs dev mysql and apache servers in addition to all my desktop software. I’m sure there are things that Korganizer could do a lot better (I wish I could see our executive calendars, kept on a remote groupware server; as it is, I’m an island), but it beats holy hell out of hacking together something using text files and output from the “cal” command, and it has become a must-have tool for me.

Next up is Komodo Edit. I’ve taken comfort in the simplicity of the command line and the non-GUI text editor since I became used to editing files in pico and reading mail using pine back in college. When I began doing a lot of programming and learned a lot of the cool things you can do using the vi editor, I couldn’t imagine I’d ever go back to an IDE that would require mouse moves and menu navigation. My fingers are hard-wired to do vi commands now. I can do text replacement in my sleep (want to add a tab to the beginning of lines 23 – 47? type: “<ESC> :23,47s/^/\t/”; oops, wanna undo it? just type “u”; then “:wq” to save and close), and I have trouble editing in any other way. One of my few beefs with vi has always been that it’s hard to do operations that span more than one vertical span of screen real estate. To delete a line range, you have to count lines or look for line numbers and then delete or cut. If you’re trying to move a hundred lines around, this can be a minor pain. A few years ago, I tried out ActiveState’s Komodo IDE. It’s built on top of Mozilla’s code and so is a cross-platform solution. At the time, it was very sluggish and didn’t offer much that interested me. Sure, there was code completion and syntax highlighting, but I can get the latter in vi, and the former almost always winds up irritating me more than it helps me. Plus it cost money to use the non-evaluation version. Recently, ActiveState and Komodo have been in Mozilla news. They’re starting a project to open up parts of their source, it turns out. In reading about this, I learned about Komodo Edit, which is the light-weight version of their pay-to-play editor. It’s free and pretty responsive (probably because it’s doing a lot less junk behind the scenes). Most importantly for my use, it has vi key-bindings. So I can fire up Komodo Edit, avail myself of what scrolly and selection capabilities are useful to me, and still do the weird “:23,47s/^/\t/” sort of commands that my fingers are so used to. What’s more, I can define projects and view select files in a sidebar, so I do a lot less typing to navigate my file system when working on projects that require me to edit a number of files. I’ve also discovered that the find and replace helps out sometimes when there’s some regex that I can’t quite work out by hand (e.g. when I want to replace with newlines). I probably use a tiny subset of Komodo Edit’s feature set, but they’re pretty useful. I find that if I’m doing one-off edits or will be staying in one file and toggling to the command line to test (e.g. when working on a perl script to parse a log and display summary info), I do better to stay at the command line, but Komodo Edit is fast becoming not a “must have” but a solid “nice to have when I want it” tool.

My latest interest is in launchers. I never really caught on to Mac OSX’s Quicksilver launcher. Or it’s not that I didn’t get it at some level as that I didn’t see that it was a killer feature for most Mac users, who I think of as people who like to draw pretty pictures more than as people who tend to want to remember abstruse key combinations needed to make a launcher behave in useful ways. But as I find myself more and more trying to get back to documents or applications that are buried in the file system or in menus, I find myself wishing I could just type a couple of keys to pull up the apps or docs. KDE’s Katapult looks very slick and promising, but it’s geared toward KDE applications and interactions, and I can’t seem to pull myself away from the Gnome desktop manager. Although I’ve read that Katapult is easy to extend, documentation seems poor at best, and I suspect you have to drink the KDE Koolaid and know a bit about working with KDE frameworks in order to make much headway. Gnome has an app named gnome-launch-box that is sort of like Katapult, but it’s very ugly. Although you can run it without the window initially on top of other apps, I can’t figure out how to then provoke it (in Katapult, you press CTRL-space and the slick interface appears instantly). It’s pretty responsive in terms of finding and launching folders and applications, and it handles multiple matches (e.g. a list pops up displaying both Korganizer and Komodo Edit if you type “ko”) and seems to be wired for extensibility, but by the developers’ own admission, it’s just not ready for prime time yet. Ubuntu ships with a tool called Deskbar that is a sort of launcher, but it hasn’t worked very well for me so far. It’s hard to predict what results it’ll return and in what order, and though it appears to be fairly extensible, a plugin I wrote for it (actually, I just modified the bugzilla plugin to point to my bugzilla install) is quirky at best. So while I’m on the hunt for a good launcher, none of the options I’ve found to date quite cut the mustard yet.

Of course I use Flock and Thunderbird. In the next few weeks, Flock will be making a big step toward its original vision for the browser as a social tool. Thunderbird is pretty low-frills but has served my email needs very well for roughly five years now. But these apps are old news for me, so they don’t really fit into this post, which outlines a recent foray into a broader set of GUI apps. In the same category are xchat and OpenOffice.org.

So, there you have it. Back into my dork cave I go. All this time out in the land of the first-class user has instilled in me a craving for a darkened room and the glow of a terminal window flickering up at me in a chunky Courier font.

:wq Continue reading

Posted in Linux, dev, work | 1 Comment