Back online!
filed under: geek, rainskit.com
Posted 165 days ago
After about 40 days of offline-ness, rainskit.com is back up, mostly. gwen.rainskit.com is still down, but the rest of the websites are up. tru_tags (and instructions) are back up. The gallery is working. From a visitor’s point of view, everything (except gwen.rainskit.com) is working as it was before.
Of course, all is not quite as it seems…
The long-overdue "I know what I did last summer" post
filed under: dogs, driving, family, geek, kristina, life, motorcycle, politics, rainskit.com, truist.com, tru_tags, vegetarian
Posted 207 days ago
Wow, according to my last post, it’s been 144 days since I blogged. Too long, but it’s a sign of how busy life has been. I’m going to use this post just to catch up quickly, then future posts will hopefully be more insightful:
- I’m still a vegetarian
- The new job is good (and I was promoted!), but time-intensive
- The dogs are awesome
- Buying the Honda Element was very much the right decision – it is perfect for the dogs and for Kristina’s plant (and dirt!) hauling
- The new house is great
- I did buy that motorcycle I had my eye on (and I love it!)
- I sold my domain (truist.com) and replaced it with the one you see before you (rainskit.com). (And truist.com now has some very interesting content. But it’s a dumb name for a company.)
- We all finally hired the right president
But of course, all of that put a ton of stress on my life and my wife, and we are still trying to recover from it. Speaking of which, she (my wife) also:
- Turned 30, and got through a party that I think she would have preferred to delay
- Took care of the dogs while I was traveling
- Worked an internship
- Took over as president of Pi Alpha Xi at OSU, and has had a stellar experience
- Took a full load of classes this fall
Regular life things also happened. I’m sure I’ve forgotten many of them, but notable items include:
- Discovered Pistacia Vera, an absolutely life-changing “dessert botique” (in Columbus!), that we now go to every weekend
- Found DropBox and Carbonite, which are similar services that finally make file sharing and backup (respectively) just work the way they should have all along
- Found Woot and its associated sites and got addicted; we’ve probably ordered 10 things from them so far
- Amitai visited and during that visit, I bought a first-gen iPhone and hacked it to work with T-Mobile. (I love it!)
- Had a very good Thanksgiving at my dad’s house, at which we learned some great news (that isn’t quite yet public)
- Released two new versions of tru_tags, and used one of those releases to make this site’s archive page
So anyhow, it’s been really busy, and many parts of our life have fallen behind where we’d like them to be. The busyness hasn’t really been a problem… it’s just prevented us from doing other things we might want to be doing. I think our priorities are in the right place, though – I’m doing what I love, and Kristina is working toward a new life where she gets to do what she loves. I think that’s how things are supposed to be.
The Nerd Handbook
filed under: books, business, christmas, geek, links, reviews
Posted 544 days ago
From The Nerd Handbook:
For any given piece of incoming information, your nerd is making a lightning fast assessment: relevant or not relevant? Relevance means that the incoming information fits into the system of things your nerd currently cares about. Expect active involvement from your nerd when you trip the relevance flag. If you trip the irrelevance flag, look for verbal punctuation announcing his judgment of irrelevance. It’s the word your nerd says when he’s not listening and it’s always the same. My word is “Cool”, and when you hear “Cool”, I’m not listening.
I received Managing Humans as a Christmas present, and it’s a fantastic book. It lead me to (back) to Rands in Repose which is now at the top of my list of great places to spend time on the internet. Enjoy :)
tru_tags: Releases
filed under: geek, tagging, textpattern, tru_tags
Posted 600 days ago
To learn more about tru_tags, check out the other tru_tags articles on this site.
Current Release
tru_tags 3.5 (for TXP 4.0.7 and above) (download)
This release adds support for auto-completing tag names on the admin-side write tab (many thanks to Jim Biancolo, who provided the javascript!), and also fixes a few bugs.
In order to enable auto-complete, you must upload jquery.autocomplete.css and jquery.autocomplete.min.js from the jQuery Autocomplete plugin into a “js” folder at the root of your site. Once that is done, you can turn on the feature using one of the configuration options on the plugin Extension tab (in the admin).
The bugs that were fixed include:
- Fixed problems with multi-byte (utf-8, unicode, international) characters. If you run into any un-fixed problems, there is an option on the Extensions page that will allow you to turn off case-insensitivity, which should work around the problems (but you’ll have to type all your tag names with the same case)
- Fixed a minor javascript problem that was causing issues on Opera (thanks to a user submission)
- Fixed a few leftover sorting problems relating to tags with international characters
- Fixed a bug where the
activeClassCSS class wasn’t being set correctly for tags-with-hyphens.
tru_tags: Usage instructions
filed under: geek, tagging, textpattern, tru_tags
Posted 600 days ago
To learn more about tru_tags, check out the other tru_tags articles on this site.
Installation
- Go to the releases page to get the latest release. Don’t save it – just open it in your browser.
- Scroll down a slight bit and follow the on-page instructions: copy/paste the big square block of characters into your Textpattern install, under admin -> plugins.
- Hit “Upload”.
- Remember to switch the plugin to “Active” in the plugin list.
- You can find help text for the plugin by clicking the “help” link in the plugin list.
Configuration
Step 1: Click the “read more” link :)
tru_tags: Feature list
filed under: geek, tagging, textpattern, tru_tags
Posted 600 days ago
To learn more about tru_tags, check out the other tru_tags articles on this site.
Core features
- Tag any article with an unlimited number of tags
- List all the tags associated with an article
- Generate a tag cloud or simple tag list
- Search for all articles tagged with a given tag
- Clean URLs and
rel="tag"support without mod_rewrite or .htaccess modifications - RSS and Atom support
- Support for creating a tag-based archive page
- Clickable list of tags in the ‘Write’ page of the Textpattern admin
- Admin-side configurability
- Admin-side tag maintenance and redirection tools
- Tag links can go to external sites or alternate locations
- Show a cloud of “related tags” in the search results page
- Tag-based archive pages (like this one)
- Designed with site security in mind
- Clean, readable code
Advanced features
Adding tags to an article:
- Tags can be multi-word, with spaces. (use commas to separate tags)
Listing tags for an article:
- Supports standard textpattern attributes like
wraptag/break/class/ etc. (the defaultbreakis a comma) - Don’t have to generate links when showing tags
- Can render article tags as a mini-cloud, including sorting and advanced cloud features
Tag cloud:
- Supports standard textpattern attributes like
wraptag/break/class/ etc. (the defaultbreakis a comma) - Can filter a cloud to only show tags from specific sections
- Can exclude specific sections from the cloud
- Cloud automatically filters out future-dated articles and non-published articles
- Uses percentages for font sizes, so the cloud can be in any container, with fonts of any specified size
- Can specify min and max percentage sizes
- Can show the number of times a tag has been used, after the link or in the
titleattribute - Don’t have to generate links when showing tags
- Tags have the
classattribute set in various ways, so you can take complete control over tag styling - Infrequently (or frequently) used tags can be hidden
- Can sort the cloud by tag frequency (ascending or descending)
- Can limit the cloud to a max of ‘N’ tags, with the ability to keep only the most-used tags or a random set (weighted by frequency)
Tag search:
- Site admins can put the name of the tag currently being searched into titlebars or links to external sites (this is careful about scripting attacks)
- A handy txp tag (
tru_tags_search_parameter) to return whatever the user typed into Textpattern’s search field (this is careful about scripting attacks) - Renders search results just like the standard article list does. This means you have complete control over the tag search output formatting, and that it supports standard features like article excerpts, override forms, etc.
- Customizable support for standard 404 pages
RSS / Atom feeds:
- Includes article tags in the RSS and Atom feeds (which means that Technorati will correctly identify articles)
- Can include article tags in the feed body
- Can customise the feed body to change the look of the tags, and/or to add extra items to the feed
Admin-side:
- A few fancy javascript tricks to make it easy to use
- List can be turned off or styled using CSS (and another plugin) if there are too many tags
Known issues (in the latest release)
- tru_tags must use the Keywords field, and cannot use a custom field
- No support for multiple tags at once (e.g. “life AND books”) tag search (but see this post for possibilities)
- The tag cloud can be limited to just show tags from one section, but when you click a tag link from the cloud it shows articles from all sections
- The tag search doesn’t support pagination. (It will show all the articles associated with a particular tag, no matter how many there are.)
Add a comment [9]
tru_tags: Roadmap
filed under: geek, tagging, textpattern, tru_tags
Posted 600 days ago
To learn more about tru_tags, check out the other tru_tags articles on this site.
This post contains an up-to-date list of all the (as-yet-unimplemented) feature requests that I’m aware of, with a rough indication of the order that I plan to implement them. If you have additional feature requests or want to suggest reprioritization of one of the features below, please add a post to the forum thread for this plugin. I’ll see it and update this page, and others will see the request also.
Group 1
- Fix txp:older and txp:newer, and the broken
limitattribute - Make txp:page_url work with tru_tags clean urls (see the forum post)
- Add
texttransform="capfirst"totru_tags_tag_parameter(see forum post) - Make it possible to show a tag list in a popup (option/value) (see forum post)
Group 2
- Limit cloud to tags from X recent articles, or within X time period
- Order list by (oldest? newest?) article date
- Color tags by age (of most recent article)
Group 3
- Related article list (for a single article), based on number-of-matching-tags
- Filter by section / category
- Second-level sorting by date?
- Limit cloud to a specific category
Group 4
- Multi-tag search (tag1 + tag2)
- General boolean logic ((tag1 or tag2) and tag3)
Group 5
- Grouped index of tags – by section, category, alphabetical, etc
- show articles for each tag?
- single page per group
- show tags (on the admin side) based on the category/section chosen
- see Markus’s forum post about it
- Grouping related keywords (admin-side)
- Grouped-tag search (public side)
- Color tags by category / section
Group 6
- Move admin-side tag cloud to a better location (for big clouds)
- Auto-complete typing in the Keywords field (admin-side)
Group “eventually”
- mintagcount / maxtagcount, but based on percentages
- Show a “related” cloud for general search-result pages (or other custom-generated article lists)
- “There are [x] posts tagged: [tag_name]”
- Alphabetical listing of articles in tag search result
- Figure out Markus’s ideas about tagging, from the “Pivot” site (see forum post)
- Sub-tags
Group “depends on the next release of Textpattern”
- RSS feeds for individual tags
Recent events
filed under: books, flying, geek, guns, life, links, reviews
Posted 795 days ago
It’s been a while since I wrote and I have a small pile of small things that I wanted to write about, so I’m posting them all at once. In chronological order:
Cool blog / cool book
In my first case ever of one blog leading to another, Amitai’s blog led me to Bil Stachour’s blog, Journal Wunelle, on which I found this awesome post about evolutionary psychology and the book The Moral Animal. Bil writes intelligently, often, and interestingly, and his writeup of the book has led me to put it on my wishlist.
A combination street car and airplane
Check this out. Terrafugia has announced that they plan on creating the first commercially available flying car, called the Transition. I like living in this age :)
Buckeye Blast
On April 1st, I attended the Buckeye Blast, a fun-day shooting event put on by Buckeye Firearms Association, an orginzation heavily involved in passing the concealed carry laws in Ohio, and of which I am a member. The event is a fundraiser for the organization, and my wife bought my ticket as a birthday present.
The day was a blast! (ha ha) I learned more about real-life shooting in that day than I had in all my previous training and shooting, and greatly improved my shooting skills. I met a bunch of new people, and even got my picture taken. The event was held at the very impressive Tactical Defense Institute – I highly recommend them.
The Principles of Beautiful Web Design
One of my birthday presents was an awesome book called The Principles of Beautiful Web Design. For years the “designers” have been saying that the “coders” can’t learn what it takes to design great websites; this book tries to prove that wrong. You can judge for yourself when I update this site’s layout :) (someday soon…)
The shooting on my birthday
The Virginia Tech shooting happened on my birthday. It’s a very sad, tragic event, and I’m sorry that such things happen in this world. It was initially reminiscent of the Case Western shooting which was a little closer-to-home for me.
My mom asked me what I thought about the shooting, and my response sums up my whole belief about the issue: “if someone there had had a gun, they could have stopped the attacker.” It’s a shame that Virginia Tech (like Case Western) has a ban on all firearms on campus.
I know this is a big issue, but I don’t want to dwell on it. My middle sister (privately) wrote a great piece about her feelings and reflections after the event, and there’s a lot more like that on the web. I’ll leave it to others to hash out all the nuances, but I did want to get my broad-stroke opinion out in public.
Other
There is other news, about life, work, and family, but most of it isn’t really good fodder for a public forum. Suffice it to say that all three have been interesting, hard, and good. This is a good time, for me.
Add a comment [3]
tru_podcast: A podcasting plugin for Textpattern
filed under: geek, podcasting, textpattern, tru_podcast
Posted 899 days ago
A friend of mine, Amitai, has been wanting podcasting support for his blog for a long while. He uses Textpattern, as I do, and it doesn’t support podcasting. Until recently, it was impossible to create a plugin to support it, but changes made in Textpattern 4.0.4 have made it possible. I therefore offered to help him create a podcasting plugin, and the net result was that I wrote it myself :)
I’m publishing it here as tru_podcast. It was designed to be simple, although I’m sure the feature requests are going to come piling in immediately, and it will grow. It supports Atom and RSS, with a single “enclosure” per article. The media file is specified via one of Textpattern’s custom fields.
I don’t actually use the plugin, but you can see it in use in Amitai’s music feed. Check out the feature list, releases, and usage instructions, and let me know what you think.
Enjoy!
Add a comment [1]
tru_podcast: Usage instructions
filed under: geek, podcasting, textpattern, tru_podcast
Posted 899 days ago
To learn more about tru_podcast, check out the introductory article, the releases page, or the feature list.
Table of Contents
Installation
- Go to the releases page to get the latest release. Don’t save it – just open it in your browser.
- Scroll down a slight bit and follow the on-page instructions: copy/paste the big square block of characters into your Textpattern install, under Admin -> Plugins.
- Hit “Upload”.
- Remember to switch the plugin to “Active” in the plugin list.
Configuration
Step 1: Rename one of your custom fields
tru_podcast uses a custom field named “tru_podcast”. Name one of your unused custom fields “tru_podcast” on the Admin -> Preferences -> Advanced tab.

Step 2: Upload a media file (a podcast)
Whenever you want to create a new episode, upload a media file to a web server. You can use Textpattern’s “Files” features, if you want. (Note that it is possible to FTP large media files to Textpattern’s files directory, and then use the “Files” tab in the admin to alert Textpattern that the file is there.)
Step 3: Start podcasting!
Find the tru_podcast field on the “Write” tab. It will be hiding behind the “Advanced Options” link.
Put the URL of the media file into that field. If you uploaded a file through Textpattern’s “Files” interface, just put the ID# of the file into the tru_podcast field. If the file is somewhere else on your web server, you can use a relative URL. Write whatever you want in the article, and save it.
That’s all it takes – the file will appear in your RSS and Atom feeds as an enclosure, and podcast clients (iTunes, for example) will identify it correctly.
You’ll probably want to install Rob Sable’s rss_admin_show_adv_opts, which will automatically expand the “Advanced Options” section of the “Write” page, when you are writing articles. That gives you easy access to the custom fields.
Step 4: Include links in your articles (Optional)
For people reading your site via their web browser, you can link to the media file from your articles with something like:
<txp:tru_podcast_if_podcast> This article has a podcast! <txp:tru_podcast_link linktext="Right here!" /> <txp:else /> No podcast here! </txp:tru_podcast_if_podcast>
Step 5: Use a category to create a podcast-only feed (Optional)
You don’t have to create a special RSS feed for podcasts – the “enclosures” will simply show up in your normal feed(s) any time you specify a media file – but you can do so if you want. Simply create a new category for all your podcasting, and use the feed for that category as your podcast-only feed.
Step 6: Other types of “podcasts” (Optional)
You don’t have to limit yourself to audio; tru_podcast supports any type of media (video, images, etc.). As long as your server knows the correct MIME type for your media, everything should work.
Step 7: Advanced configuration (Optional)
The source code of tru_podcast has a few well-commented settings (right at the top) that you might want to change, especially if you use Textpattern’s “Files” features for your podcasts and if you’re using a non-default /files/ directory. If you run into problems with your podcast clients, you might want to try editing the plugin and changing those settings to see if it helps. (I don’t know of any problems with any clients, at the moment.)
Tag reference
tru_podcast_link
This tag will generate an <a href... link if the current article has a podcast URL set. The generated link will automatically have rel="enclosure" set in case an old podcast client is looking for it. You can pass any attribute to this tag and it will be passed on to the <a> tag, except linktext as indicated below.
Attributes:
linktextwill set the content of the<a>...</a>link. If you don’t specifylinktext, it defaults to the URL of the media.- Any other attribute desired can be passed to the
<a>. For example,<txp:tru_podcast_link linktext="test" junk="worthy" />will generate this HTML:<a href="/some/media.url" junk="worthy">test</a>
tru_podcast_if_podcast
This conditional tag will render its contents if the current article has an associated media file (in the tru_podcast custom field).
tru_podcast_get_url
This tag will return the URL of an associated media file, if any.
Attributes:
full="1"tellstru_podcast_get_urlto convert relative URLs to full URLsprotocolcan be used in conjunction withfull="1"to specify a protocol other than “http://” for the generated full URLs.convertnumber="0"will turn off the automatic conversion of file index numbers (from Textpattern’s “Files” interface). This is only really useful if you want to get directly at the text entered into the tru_podcast custom field.
Add a comment [11]
tru_podcast: Feature list
filed under: geek, podcasting, textpattern, tru_podcast
Posted 900 days ago
To learn more about tru_podcast, check out the introductory article, the releases page, or the usage instructions.
Core features
- “Enclosures” (1 per article) in RSS and Atom feeds
- Tags to generate links (in the article) to that enclosure
- Support for any media type, including audio, video, and images, with correct MIME-type handling
- Support for relative URLs
- Support for files uploaded via Textpattern’s “Files” feature
Known issues
None
tru_podcast: Releases
filed under: geek, podcasting, textpattern, tru_podcast
Posted 900 days ago
To learn more about tru_podcast, check out the introductory article, the feature list, or the usage instructions.
Current Release
tru_podcast 1.1 (download)
This release makes a few behind-the-scenes changes to improve tru_podcast’s compatibility with iTunes and other podcast clients. It also adds a few configuration options for tailoring the links that are generated, but it’s very unlikely that you’ll need them. There are no new user-visible features, but I recommend that you upgrade so iTunes (and others) work correctly.
Emergency hard drive recovery: success!
filed under: family, geek, netbsd, programming
Posted 908 days ago
Waaaay back in April of 2006, my cousin Karen (and her husband David) had a hard drive failure, resulting in the loss of all their digital pictures of their baby daughter Ella. They didn’t have backups, and they didn’t have prints. Computer shops weren’t able to help, and clean-room data recovery was too expensive. Eventually, they gave up on it and sent an email to the family asking if we could send them copies of any pictures we had.
I, being a geek, offered to take a look at the drive and see if I could get anything off of it. They, lacking any better options, sent the drive to me so I could give it a shot.
I dropped the drive into my NetBSD machine and sure enough, the BIOS recognized it. That meant that the drive was still physically working, and that I might have a chance at getting whatever data was left off the drive. I was able to mount the drive (read-only) and read data from it, which meant that there was a good chance of finding at least some of the pictures.
I did a bunch of googling and learned a lot about home-brew data recovery. To sum it up, I learned that you need:
- A copy of the
ddutility that supports theconv=noerrorargument. (netbsd’sdddoes) - A handy program that knows how to find images on a raw drive image. (See below)
I was able to make a copy of the bad drive (onto a good drive of mine) using dd and the instructions on this page. There were a lot of bad drive sectors encountered during the copy, which was to be expected given the fact that the drive had failed in the first place, but I was hopeful about finding at least some of the images. And having the drive copy was a big win – it meant that I could work with a copy that wouldn’t get worse if the hard drive took a dive.
The hard part was finding a program that could recover the images. For a long time I thought I was going to have to write my own, and that seemed a daunting task, but I finally found this guy who had this exact same problem and already wrote this program. It was exactly what I needed – a program that would find and extract images from a raw drive!
The only problem was that jpg-recover was running at about 15kb/s. At that rate, getting through the 80gb hard drive would have taken about 60 days to finish. I didn’t have 60 days (without interruption!) to wait.
So I dug into the code and discovered that it was horribly innefficient. It was reading data one byte at a time, checking for an image after each byte read, and just generally not being smart about performance. I set about improving it.
I was able to do so. My version takes more memory (a configurable amount) but it runs much faster: at about 12000kb/s. That’s 800x faster :) At that rate, it only took about two hours to finish, finding (after some tuning) 4,422 potential images, of which 187 were uncorrupted pictures of Ella – including this one.
That felt good :)
I’ve published my version of the program as jpg-recover-faster. It’s a perl script, so you’ll need perl. I make no guarantees about the lack of bugs – use this script at your own risk. It may eat your children. ;)
You’ll want to read the comment at the top of the script before using it, and the other pages listed above will help you figure out how to use it. Feel free to post comments here with questions or suggestions.
Add a comment [9]
Recipe / HOWTO for printing from linux/unix/BSD to Windows
filed under: geek, netbsd
Posted 916 days ago
Description
This recipe tells how to configure a linux/unix/BSD machine and a Windows machine such that the unix machine can print to a printer attached to the Windows machine, even if it isn’t a postscript printer. This could also be adapted to work for OSX client machines.
How it works
Starting from the unix machine, a print job travels thusly:
- User prints something to a CUPS-configured print queue
- CUPS generate a postscript version of the printout, using Ghostscript and/or foomatic and/or gimp-print
- CUPS passes the postscript file to Samba which passes it over the network to a network-shared (virtual) postscript printer on the Windows box
- The virtual printer takes the poscript file and gives it RedMon which gives it to Ghostscript (on the Windows box), which prints it out to the actual printer
There’s a bit of work on the Windows side to set up Ghostscript and the virtual printer, and another bit of work on the unix side to set up Samba so you can print over the network, and then another bit of work to set up CUPS so it can accept printjobs and route them to Samba.
I'm in Textpattern!
filed under: geek, programming, textpattern
Posted 935 days ago
I recently submitted a patch to Textpattern to refactor some of the code to eliminate a lot of duplication and allow me to generate tag-based RSS feeds from my plugin. My patch has been applied to the “crockery” branch and will be a part of Textpattern 4.1. Cool!
Update: I’m in it again (in 4.0.5 and 4.1) with my comment patch. Cooler!
Add a comment [2]
Patch to allow (escaped) HTML in Textpattern comments
filed under: geek, programming, textpattern
Posted 947 days ago
(In case the title didn’t warn you, non-geeks probably won’t be interested in this article.)
Textpattern has a “feature” whereby HTML tags are completely stripped out of visitor comments, presumably to close a common security hole. I’ve created a patch for Textpattern 4.0.4 that changes it such that HTML tags in comments are allowed, but the relevant characters (<, >, &, ‘, “) are converted to entity codes and therefore aren’t treated as HTML delimiters and therefore aren’t a security concern.
Net effect: it’s possible to post HTML code examples in article comments. I’ll post such a comment right after I post this article, just to prove the point.
I’ll be announcing the patch in the txp-dev mailing list and on the forums, and inviting Textpattern developers to use this article as a place to test such comments. Hopefully it will be merged into the next official Textpattern release, so I don’t have to maintain this patch for more than a few months.
Add a comment [12]
Tidbits
filed under: geek, life, pictures
Posted 954 days ago
Just a few quick updates, between work and sleep:
Fun Stuff
At work the other day I spotted a background image that I really liked on a neighbor’s computer. I tracked down the source and discovered a treasure trove of fantastic backgrounds. The best ones are found by clicking the “Flame Favorites” links on this page (try this set, for example). You can learn more about Flame Fractals at lines and colors or flam3.com.
Work / Life
Work has been relatively insane the last few weeks. That’s the biggest reason I’ve been offline so much recently. On top of that, we’re hosting Thanksgiving Thursday, so we’ve been doing a lot of work to prep for that. The craziness will continue until about the end of the year. It’s good work, though, and I’m enjoying it.
Software
Joel has posted a rather amusing article about usability in Windows Vista, Microsoft’s next version of Windows. He demonstrates the type of thinking that’s necessary for making great products. It’s also the type of thinking that makes great Business Analysts :)
Easy email redundancy for hardcore geeks
filed under: geek
Posted 1041 days ago
If you already host your own mail (preferably with qmail) and are comfortable with sending your email to Google’s Gmail service, try this:
- Configure your existing mail server as usual (spam filtering and saving non-spam mail) and also forward the non-spam mail to your Gmail account.
- Also configure a special email address (you-fromsecondary@specifichostname.yourdomain.ext) to do spam filtering and deliver mail to your Maildir/Mailbox, but don’t forward it to Gmail.
- Find a friend you trust who will let you use their server as a secondary mail server. Configure that server to accept mail for your domain.
- On that server, forward all mail to the special address at your primary server (you-fromsecondary@specifichostname.yourdomain.ext), and forward it to Gmail. Don’t save it to your Maildir/Mailbox.
- Configure your DNS records to point to your secondary server as a second MX.
- Configure Gmail so you can send email from Gmail and have it look like it came from you@yourdomain.ext.
Congratulations! You now have a working secondary mail server and a permanent archive (in Gmail) of every email that is sent to you, even after you delete them off your server. All email will still end up on your primary server (eventually), even if it goes down for a while (as long as the secondary doesn’t go down also). While your primary server is down, all your email will still be delivered to Gmail immediately. You have a quick-n-dirty form of webmail, via Gmail, and an easy way to search all your old email. You don’t have to change email addresses.
Enjoy :)
Add a comment [2]
Massive (paid-for!) update to tru_tags
filed under: business, geek, tagging, tru_tags
Posted 1084 days ago
I’m pleased to announce the public release of tru_tags v1.8, sponsored by Simon Finch, a consultant / web developer in the U.K.
This release of tru_tags contains two new features: a new type of tag cloud and the ability for article tags to render as a mini-cloud. I also massively refactored and condensed the code, making it much easier to read/understand and hopefully much easier to maintain.
The first new feature can be seen by clicking one of the links in my tag cloud (over in the sidebar). On the resulting page, you’ll see that a second cloud appears (in the sidebar) under the heading “Related Tags”. It is showing you all the tags that are related to the tag you clicked on.
I mentioned that this version was sponsored by Simon Finch, and it’s true – he paid for these specific features, because he needed them for a consulting project he was working on. That has me excited in all sorts of ways:
- My plugin is being used in the real world (in an online store!)
- Work that I originally did for my own benefit is now helping others
- I’m earning income that is derived from that original work
- I’m earning income from open-source software!
As usual, you can download this version from the announcement page and you can find out how to use it on the instructions page.
(For those of you waiting for other features, they’ll be coming soon in a v1.9. I wanted to get v1.8 out the door with just the features for Simon, so I’ve had to delay the rest of these.)
Thanks, Simon!
Add a comment [1]
Agile for Managers
filed under: agile, business, geek
Posted 1165 days ago
At minimum, my career at ThoughtWorks was a full-tilt education in “how to make Agile methodologies work.” I’ve experienced the best and worst of agile processes, and I have a very strong sense of what works, what doesn’t, and what’s irrelevant.
(For you non-geeks out there, “agile” is the name for a family of processes used to develop software. If you’re curious, you should follow the link below.)
When I came to NetJets I wanted to get all that knowledge out of my head and codify it somewhere, because my head is a notoriously bad place to store details. So I set about writing up “Agile for Managers” – an introduction to the spectrum of agile methodologies, with detailed notes about every major issue I could think of. Obviously, the target audience is the manager of a software shop; someone familiar with software development realities, but not necessarily familiar with agile methodologies.
I didn’t record all the deep insights and little details that really make it work – that would be found in “Agile for Analysts” and “Agile for Project Managers” and “Agile for Developers.” Instead, this is a roadmap to the core ideas, and a memory trigger (to me) for those details.
I wrote it all down as a TiddlyWiki, with the intent that I’d give a talk about it at NetJets. I never gave that talk, but the presentation still stands on its own. I’ve published it on this site, now, and hopefully the world will find it, and find it useful.
Before I give you the link, a warning: TiddlyWikis have issues with Internet Explorer, and with Greasemonkey. If you’re using either, please switch to Firefox and/or turn Greasemonkey off. (If you must use Internet Explorer, go ahead – it will probably work.)
With that, here it is: Agile for Managers. I hope you enjoy it – I put a lot of work into it.
If you have questions or issues or comments, please post them as comments in this article.
tru_tags: A tagging plugin for Textpattern
filed under: geek, rainskit.com, tagging, textpattern, tru_tags
Posted 1216 days ago
When I first created this blog I wanted it to have tagging support, which doesn’t come built into Textpattern (my blog software). At the time (Christmas 2005), tagging plugins for Textpattern were virtually nonexistent. Hunting around the web, I found ran_tags, chh_keywords, rss_unlimited_categories, and ajw_technorati_tags. They were all unworkable for me, because of bugs or complexity or feature-set, so I was left without tagging support.
So I wrote my own, based on ran_tags. I published it on the textpattern forums and subsequently released about a dozen new versions, each with new features to make it more powerful and/or easier to use. The plugin has seen a lot of adoption, and seems to be popular among the textpattern community. You can see it in use on this site.
It’s written with ease-of-use, simplicity, and security in mind, and it has a very rich feature set. To learn more, please check out the features list. There is one (potential) downside for some users, though. To help keep the code simple, I call out to the Textpattern code to actually do the tag search. That means that articles can only be tagged via the Keywords field, rather than using a custom field. Some people use the keywords field for other purposes, so they can’t use tru_tags. There are also a few other minor annoyances documented on the features page.
tru_tags can be downloaded from the releases page, and you can learn to use it by reading the detailed usage instructions. If you have questions, please post comments to any of these articles, or in the forum, and I’ll get back to you quickly.
Enjoy!
Add a comment [42]
First post!
filed under: geek, netbsd
Posted 1218 days ago
...from my new NetBSD machine, running Firefox on X, that is :)
Just a quick note to the geeks out there that I’ve gotten X working on my NetBSD machine, along with:
- Xfce as the window manager, although I tried KDE and Gnome also
- XDM as the machine logon screen
- Firefox as the browser
- Java 1.5 working as a Firefox plugin (which required Linux emulation, via Suse)
- Thunderbird as the email client
- OpenOffice as the office suite
- The BitStream fonts so web pages don’t look ugly
So that’s pretty cool – I was just able to log in graphically, check my email using Thunderbird, open a Word doc attachment and make changes. Then, just for kicks, I played some online java games, to prove that I could :)
But here’s the best part: I did (nearly) all of it using pkgsrc, just by typing “make install” in the right places. (And yes, the linux emulation just happened automagically.) Damn, but I love NetBSD.
Add a comment [5]