Category: Tools

Because when all you have is a hammer, every problem looks like a nail

Gentoo

Doing it the hard way, rather than the really hard way

When I shut down the server, prior to moving, I installed an extra hard drive I had laying around before packing it up to be shipped. With the move, and all the work and busy running about since then, I managed to forget that there was a 40GB drive, just waiting to be used.

The other day, I noticed in my daily email from the emerge –sync that cron runs, that it was unable to complete because there was not enough space on the disk. I logged on and df -h showed me that, yes, the drive was full. I did some cleanup and maintenance on the drive and managed to clear out about 1GB of space. This is important, because I needed to increase the size of my boot partition. When I first built this server (using Gentoo 2006.0) I had been having terrific results with a tiny little 32MB boot partition. Now I was having problems, because the boot partition didn’t have enough room to build the initrd for 2.6.27-gentoo-r1. I’m not sure why, but for some reason every kernel I have tried to compile after 2.6.25-gentoo-r1 (including r2, r3, r4, and r5 of the same kernel branch) would create an initrd that was in the 25MB range. Well, that plus a kernel and the configs and you have a no-go on a 32MB boot partition.

Anyway, after cleaning up the drive I was going to use parted to shrink the root partition and grow the boot partition. But parted requires that ext2 and ext3 partitions always start from the same block. Not a problem, the plan was to shrink the root partition, move the swap partition there and then grow the boot partition. Then the really hard part would have come – finding another drive (since this one was too small) and taking the entire server down for a rebuild. Ugh.

So I fired up parted and did a print all to see the block numbers for my partitions, and there it was, 40GB of unused space on another drive. (You probably heard the facepalm from wherever you are and wondered what that noise was.)

So, using good old cfdisk I created 3 partitions on the new drive, a 19GB ext3 partition, a 20GB ext3 partition and a 1GB swap partition. I copied the contents of /usr to the first, and the contents of /var to the second and used a little command chaining to put those where they belonged. (If you are curious, it went something like mv /usr /usr.old && mkdir /usr && mount /dev/hdd1 /usr followed by the same sort of chain for /var and then restarting a few services that point to files in var or usr).

I then did a swapon /dev/hdd3 swapoff /dev/hda2 and then edited fstab to match the new layout. Now for the fun part. Since I didn’t see a way in parted to delete a partition I shrunk the old swap partition down to 1MB, and then resized the boot partition to fill the new space. I did run into an issue where parted gave the error “Error: Filesystem has an incompatible feature enabled.” I found the fix for that to be using tune2fs to turn off resize_inode. That means no online resizing, but since this is not on an LVM that is not an issue. So, run tune2fs -O^resize_inode /dev/hda1 and then run parted and whoosh! A larger boot partition that will fit the massively fat initrd I am trying to stuff in there, and things are better. And with /usr and /var split off onto the new disk the root file system disk now has 11GB of space available.

And, in the spirit of doing things the hard way, I am posting this from my iPhone while laying about waiting for the stomach cramps to subside enough to sleep. (I hate this flu.)

iPhone

iPhone updated

I am a bit late in posting this, but things have been a bit hectic around here. However, I have finally update my iPhone, now that TouchTerm is available from the iTunes store. I tried using the tool from modmyiphone but had terrible results with it. Thankfully I had a backup of my firmware (1.1.4) before trying it and immediately went back to using that. Now that I am on the 2.0 bandwagon, however, I have wasted no time in amassing a bunch of tools that I use daily.

Some of my favorites:

  • TouchTerm, for ssh access to my servers. This was the big show-stopper prior to now. Worth it to me to pay for. (And cheap, too!)
  • Bookmarks for quick acess to my del.icio.us bookmarks. Massive time saver, and the layout is useful if a bit stark and utlitarian.
  • Palringo for chat. There have been some concerns voiced on the comments in the app store about security, and such. I’m not so worried about it. I have a password I use for chat and different ones for more important things like email and such. I don’t use chat (outside of the jabber at work, which is not in my Palringo account) for anything important.
  • TouchCalc for its hex and binary modes. There is an octal mode as well, but I haven’t had need of it (yet).
  • Stanza for reading books on my iPhone. I read a lot, and it is nice to have half-a-dozen books at hand. And with the desktop app I can convert just about anything I can get online into a readable book for the iPhone. Very nice.
  • Twinkle for keeping up with twitter.
  • Tankbuch for keeping track of mileage and gas usage. My Forrester gets an average of 23.2 MPG in the city, and 30.4 on the highway!
  • Zenbe Lists for my shopping lists. It means that my wife can update the list from her PC while I am on my way to the store and I can sync when I get there and see everything I need to pick up. It also means that I can sync after checking everything off and I don’t have to relay the entire list of what I was able or unable to find when I get home.
  • Lots of games. I like the free ones, partly because I am cheap, and partly because I don’t generally play a single game long enough to warrant paying for it. The exception is Sextuple Word Challenge – a word game very much like TextTwist. (I have a bit of an addiction to word games, and hey, it’s only a buck.)
Community

Repurposing Social Software

Social software has had an enormous impact on the workplace, but how much bigger can we go? Already chat is a major communication tool (usually within a business, but sometimes with customers as well.) Businesses are finding justification for setting up blogs and wikis both internally and externally. I work at a company where a large portion of the developers work remotely (there is a joke internally that the hiring manager is trying to get a developer in every state) and keeping in touch is done through a combination of chat, wiki, GoogleDocs and phone conferences. The issue we are discovering with phone conferences is one of bandwidth. While the old style of everyone in the office sitting around a conference phone while everyone remote dials in isn’t a major strain on the VoIP server, many of our conferences lately have involved everyone who is taking part in the conference dialing in via soft-phone from their workstation. The load on the poor server! So the idea was brought up – why not set up an account on a hosted Ventrilo server. That way our VoIP server stays available for our customers (as it should).

This got me thinking – what other social software might be re-purposed for business use? The one that immediately sprang to mind was Twitter. A business could set up a twitter server with a few little modifications which could make it extremely handy. First, set up the server to log all the tweets. Next, set it up so that when logging the tweet it checks the message. If the message starts with @log it could do some magic with it and then either silently discard it (not passing it on to the network), pass it on without changing it, or pass on a customized message based on that tweet.

As a for instance, here are some @log actions I thought up this afternoon. (Most of these require that the twitter server also has access to things like the primary db server, etc):

  • @login <message> – the server puts a clock in message in the time clock table of the database for the user sending the tweet, and puts the optional message in the ‘notes’ column of the table (if there is one). The server then sends the message username has clocked in
  • @logout <message> – same as for login, but clocks the user out.
  • @log [task_message] – the server puts the userid, message and time in the tasks table and sends the tweet username is working on [task message]
  • @logend <message> – same as above, but puts an end time in the row and sends the tweet username is no longer working on [task_message] <message>

Ok, so it’s not a lot, but it is simple, and simple things are more easily adopted. And this ties into electronic time cards, and electronic task time tracking. Hmmm. So what others are there that could be adapted? how about adding a “social tagging” site (something like Spock) to enhance your intranet and internal wiki? You could easily see who is tagged with which project or team and quickly find the right person to answer your question.

I’m sure there are plenty more things that could be incorporated. I just haven’t thought of them yet.

Technorati Tags: , ,

OS X

Aqua port of OpenOffice.org in alpha release

It has been a long time coming, but OpenOffice.org have moved a step closer to a native OS X port. The first development snapshot was released this morning. This is an alpha release, and they warn:

THESE BUILDS SHOULD BE USED AT YOUR OWN RISK FOR TESTING PURPOSES ONLY. THEY MAY CRASH OR CAUSE DATA LOSS.

As with any early development release there are lots of things that don’t work yet, such as printing, exporting to PDF, copy/paste, drang and drop, multiple monitors, etc. That’s to be expected. While I am a little tempted to run the alpha release and provide feedback to the development team, I don’t know that I actually have the time to devote to that sort of endeavor right now. Instead, I think I will jump on the first beta, and install it alongside the X11 version, so that I can chime in on testing at that stage.

For those who are interested, the Mac Porting team have blogs and a news section where you can keep up with development if you wish.

Technorati Tags: ,

Parallels

Working in Coherence

I just have to add a quick note here – I love the way Coherence in Parallels works! The fastest way I’ve found to test pages in multiple browsers. You’ll notice I’m testing a page in OS X in Firefox, Safari and Opera, while also testing in Win XP in Firefox, Opera and IE 7. It helps having the Windows apps show up in the dock, too.

snap-1-halfsize.jpg dock-1.jpg

OS X

Looking for replacements

While I am loving the new Mac, I am slightly annoyed. I am trying to find tools to replace as many of the Windows tools I use so as to streamline my processes as much as possible. I had hoped to work almost exclusively in Mac and use the WinXP for games and audio work. (Yes, I am aware of the plethora of Mac audio tools, however there are some audio tools that I cannot replace, that are only available for Windows and we have enormous amounts of files, song snippets, loops, etc in those formats – thus the Parallels and WinXP.)

Python development is easy – grab Python and use Idle like I always have (although I would like a ‘beefier’ IDE for py). Java development is also easy – and both have Mac OS X versions.

It seems that for most things there are Mac versions, except one: Homesite. Without a doubt the best HTML/PHP development tool ever is Allaire Macromedia Adobe . While that is the case, runs an ok second, but even so, why haven’t Adobe ported HomeSite to Mac? It’s especially rough for someone like myself that has been using Homesite since it was a $9.99 shareware (version 1 1996). So that one is one that will keep me returning to my WinXP on Parallels.

I would also like to figure out how to do multi-pane file browsing in Mac (like the V-com PowerDesk for Windows.)

——

EDIT:

I found a replacement for PowerDesk – XFolders – very nice!

Linux

Cure for the External Drive Blues

I have been looking all over for a way to format an external drive so that I can use it under Linux, Windows and OS X. The reason for this is simple, I currently use Windows and Linux all the time, and I am planning on upgrading my rig to a MacBook Pro just as soon as I can. Since I expect to be running OS X, Windows and Linux I needed to find a format for my 300GB external drive that would work with all of them.

While FAT32 is an option, it has some serious limitations. Like a maximum file size of 1 byte less than 4 GB. That and the way that FAT32 partitions over 32 GB (while supported under Windows) tend to get a little, shall we say, flaky.

Before today what I had found was as follows:

OS File System Read Write
Windows XP Ext2 / Ext3 application no
HFS+ application no
NTFS native native
Linux Ext2 / Ext3 native native
HFS+ in kernel in kernel
NTFS in kernel no
OS X Ext2 / Ext3 no no
HFS+ native native
NTFS in kernel no

Note: native = default or standard in a “vanilla” install | in kernel = modules available for kernel insertion, although not default.

Well, that was before I found these today: kernel modules for both OS X and Windows for full read and write support of Ext2 / Ext3 file systems. I have installed Ext2 IFS for Windows and pounded on it already. It works (so far) like a charm. I don’t yet have a Mac to test the Mac OS X Ext2 Filesystem but I will do so as soon as I can. Assuming they are building this as a loadable module for the Darwin kernel (does the OS X Darwin kernel allow insmodding?) then it should be a snap. What surprised me is that the Ext2 IFS for Windows is an actual NT Kernel module, not an app or service. It’s actually kind of cool to see my Linux partitions show up under XP as lettered drives!

Internet

Why the Change

While it may seem abrupt, the switch to WordPress was by no means a quick and easy decision. Here’s a little background.

Here’s a little history:

  • I originally started on MoveableType, but couldn’t get it to run reliably in my test environment. So I figured I would go to a flat-file system.
  • Enter Blosxom: it ran very well in both my test and live environments, but I was left with a bit of a problem. I wanted to extend Blosxom and add functionality but am not well-versed enough in Perl to wrap my head around many of the available plugins. My biggest headache: getting trackback/writeback and RSS to work.
  • So I switched to PyBlosxom. Also flat-file, and very easy to move my old content from Blosxom, and with an immensely more understandable API.
  • After running PyBlosxom for a year I was still having problems with XML-RPC – I wanted to switch from my clunky PHP/TinyMCE editor for posting to using something like Performancing for Firefox (which I am using now) or Ecto. No luck. The response on the developers list was, well, listless at best.
  • When I finally got fed up with trying to make things work, and the (seeming) lack of active development, I realized that a blog that is (ostensibly) about “stuff that w0rks” should be running on “stuff that w0rks.”
  • I tried MoveableType again – still don’t like it, tried Serendipity, it didn’t feel right, and then finally broke down and tried WordPress. While the first couple days were no better than the first days on the others, it soon started to fall into place.
  • And that brings us here.

powered by performancing firefox

Read More

Browsers

Bookmarklet and Google Gadget for etymonline.com

I ran across the Online Etymology Dictionary the other day and was blown away by the well-designed and incredibly useful service they offer. Of course, it’s much nicer to have access to that functionality at a click, so of course I created a Firefox/Mozilla bookmarklet. But I wanted to have the same thing available on my Google homepage, right next to the Dictionary search box and the Wikipedia search box, so I created a “Google Gadget” for it as well.

To use the bookmarklet, drag the link below into your Firefox/Mozilla bookmarks bar.

Find Etymology

To use the “Google Gadget” go to your Google homepage, click on the “Add Stuff” link, click on “Add by URL” and enter http://www.evardsson.com/files/gg_etymonline.xml

Enjoy!

Read More

Postfix

Doing things the hard way

After much fighting with XMail, and repeated failure I fell back on the MTA I know best (), and the local delivery and authentication I know least (mostly because prior to installing XMail on the old server I never had to bother with it.)

So, after checking around I found a fairly well-documented Postfix + Courier-IMAP + SASL + MySQL How-To for Gentoo. While it is specefic in some regards to Gentoo, the majority of the instructions should be fairly straightfoward to transfer to other *nixes.

Anyway, mail is working again, at least mostly. I still need to replace some aliases and a distribution list, but that’s all pretty simple normally, and with the MySQL db added in the mix it gets even easier, since Postfix is looking to the db for virtual domains, users, aliases, relocated mappings, everything. How much simpler can it get?

Now, if there were just one package that combined all the mail functions (kind of like XMail) and integrated with MySQL and came with decent documentation and installed from one package … Maybe Courier will move beyond version 0.53 someday and become more of a player.

Read More