Clint’s Thoughts how I spend my five minutes of freedom


My journey to perfect backups

There and backup again.

Over the years, the more digital photos I've gotten, the more I've begun to worry about about backups. Now with my music and home videos all located on my computer, it's grown from a worry into a paranoia. Last year when I bought a 1 terabyte drive I combined all by previous hard drives onto it but within the month I was jittery after hearing about other people whose new terabyte drives had died. I realized that I had balanced all my memories and documents on the tip of a single hard drive spindle. That is when I knew that I needed to resolve this once and for all.

Attempt 1- Subversion

Several years ago, fresh out of college I was familiar with the code version control system I'd been using. At that time Dreamhost, my web host, began providing complimentary Subversion (aka SVN) repositories. I setup a SVN repository and decided to check in all my personal documents and photos.

The theory was sound. My documents were being copied to an offsite location and supposedly recoverable. Wrong.

Its was painful and slow. It wasn't automated so I had to routinely check in changes. (I realize I could have scripted the check in). It also littered .svn directories with junk all over the place. Finally, if I moved files to different directories the file had to be uploaded again.

I'll admit that I'm pretty green when it comes the the powers of SVN but there is no doubt that I was subverting its purpose.

Attempt 2- Rsync and DeltaCopy

Soon afterwards I became acquainted with rsync. Dreamhost doesn't let me backup files I can't redistribute to to my web directory that I'm not allowed to redistribute (my MP3s). Even if I password protected it and blocked access from the world I wasn't allowed.  So as a solution I setup my home server with rsync and used DeltaCopy on my windows machines to publish to the rsync server.

Sure, later Dreamhost came out with a personal backup option, but 50 gig was too confining and insufficient for my needs.

Vista for some reason wasn't allowing DeltaCopy access to all my own files (even when run as admin) so my backup never felt complete. Also the backup wasn't offsite and file recovery was completely manual. Also no versioning of previous files anymore.

Attempt 3- Rsync + SSH + TrueCrypt to a remote friend

One day at work I came up with the idea that I could just backup to my friend's computer. We both had home servers, unfortunately his was a Windows server, so I had to make my solution work on his windows server while mine was a Linux server.

So I chose several open source pieces. The plan was to have an SSH server running on each end.  I'd run a script on my end the connected to the other server, mount a TrueCrypt volume to make sure the data was encrypted on the other end, run rsync to push the data across. Then unmounting it. Eventually I might have configured a virtual machine to simplying configuration in the future. However, 2 weeks into my tinkering the motherboard died on one of my test servers and I just couldn't get motivated to try to reconfigure it all over again.

If I could have gotten it to work it would have been quick with rsync's incremental updates, secure with the SSH and TrueCrypt combo, and off site. Unfortunately it was so incredibly difficult to setup that I knew my next step would have been impossible. There was no way I could get my family backups.

Attempt 4- SyncBack

So, finally I just bought an external hard drive and used SyncBack to duplicate my files to the drive. It was simple and it worked. It actually was simple enough that I actually maintained this system for a while.

The only 2 drawbacks were that the backup wasn't offsite and no way to get previous versions. I wasn't too concerned though, because every 6 months I planned on just swapping the external drive to my in-laws when I'd visit.

Final Solution- CrashPlan

I was satisfied with SyncBack and probably would have upgraded to the paid for version, but then I saw on LifeHacker a post for CrashPlan. It presented CrashPlan as a solution that would let you back up to a friend's computer over the internet and the end result was encrypted on the remote computer.  Its even cross platform. To top the whole deal off: its free!

Its seems too good to be true.  So next I'll present my testing experience and related observations.

Summary Chart

Fast Encrypted Off Site Easy Versioning Free
SVN check check
rsync check check check
rsync + SSH + TrueCrypt check check check check
SyncBack check check check
CrashPlan check check check check check check
Filed under: General 3 Comments

Embedding TiddlyWiki in Thunderbird

I couldn't help but be impressed by post today about embedding TiddlyWiki in Outlook. Using my common technique of 'improving' other's ideas I had to check to see if I could pull off a similar trick with Mozilla Thunderbird (though I prefer the portable version).

Its a piece of cake to get working.

Set a TW file as your default start page

Here are the steps:

  • Open Thunderbird (I'm using 1.5 though it works in 1.0 version)
  • Select 'Options' under the 'Tools' menu
  • Under the general tab, in the 'Thunderbird Start Page' put the path to you TW file. (The easiest way to get the path is to open the TW in Firefox and copy the address URL from Firefox into the location box in Thunderbird)
  • Under the 'Privacy' tab and the 'General' sub-tab allow JavaScript in mail messages. (I unchecked the 'Block JavaScript in mail messages' option)
  • Click 'Ok' to save the settings

View the TW in Thunderbird

This was the toughest part for me to find (though its rather obvious)

  • Click in the 'Go' menu and select the 'Mail Start Page'
  • Thats it

Here is the all important sceenshot:
Screenshot of TiddlyWiki in Thunderbird


  • Whenever you open an email it navigates away from the TW page, so you'll want to make sure that you have autosave on.

Nifty benefits

  • This keeps your TW nearby and it will mirror any changes you make to it outside of TW in Firefox
  • You can even point it to a TW online like pytw
  • TW acts just like you would expect with all your plugins ans TW goodness.
Filed under: General 1 Comment

Tools to jump start programming the DOM and/or TW

First of all this post is intended for people that are new to playing with the DOM (document object model) The DOM is the structure in a web page.

Specifically I've posted this for my IS450 (Web Development Class) and TiddlyWiki friends though feel free to comment on any additions.


Before using any tools, I'd recommend getting a bit of knowledge under you belt.

I got started by reading DHTML Utopia: Modern Web Design by Stuart Langridge. The first four chapters are available online for free (94 of the 300 pages in the book!)

Quirksmode also has a very good page on JavaScript document events.


The major tip is that if you are coding a page do the following: make it work using Firefox and its corresponding tools, then make it work in Internet Explorer.

Firefox Extensions:
Web Developer
View the pages rendered source
Measure It

I'll put up more stuff after class.

Filed under: General 1 Comment

Viewing a page’s source thats been altered by JavaScript

As Ajax becomes more widely used I've noticed more and more instances when I would want to view the page's source after it has been rearranged by some script or other.

This is a piece of cake in Firefox. All you need to do is install the View Rendered Source extension by Jennifer Madden.

This simplifies the source immensly. No guessing on what is where, and its displayed in the familiar HTMLized view. Very handy. Now, there comes a time in every developer's life where Internet Explorer behaves... differently. How can you view the rendered source in this instance?

That's the real reason behind this post. I just found View Rendered Source for IE tool by Bill Friedrich. Finally I can check to see what IE is messing up. (Install it by going to the site and opening the zip file, right-clicking on the .inf file and selecting 'install')

Once either of these plugins is installed, right-click on the web page and select 'View Rendered Source'

Filed under: General 2 Comments

Where are other TW users from?

Frapper uses the Google Maps to create an interface where anyone can go and put a 'pin' in the map showing where they are from.

I created one for TiddlyWiki Users. It's pretty slick to see where different TW folk are from, you can even post a picture of yourself (if you choose) that goes along with your map 'pin'.

Go put yourself on the map!

Also, as a side note, today I am now 24 years old.

Filed under: General No Comments

TiddlyWiki Developer Quiz

Call me old fashioned, but I find it to be nice to know who I'm talking to or working with. I contribute to the TiddlyWiki GoogleGroups and enjoy it, but every now and then, I just wonder what l33tW1k1, Simon Baird, or Jeremy Ruston look like.

I grabbed a few photos from off the web an threw together a simple quiz. If you would like your photo in the next quiz, email me it. Lets see if you can guess who's who from a random couple of TW developers:

Update: The developers here are: Clint Checketts (me!), Paul Petterson, Eric Shulman, Alan Hecht, Simon Baird, and (of course) Jeremy Ruston! Guess who is who.

A- Alan Hecht- crafter of useful TW extensions

Subject A

B- Clint Checketts (with little Daniel)- Me!

Subject B

C- Jeremy Ruston, boy genius, creator of TiddlyWiki

Subject C

D- Paul Petterson- RegEx KBE

Subject D

E- Eric Shulman- Extension, Macro genius

Subject E

F- Simon Baird- of Monkey Pirate TiddlyWiki

Subject F

Feel free to post guesses in the comments.

Update: Daniel Baird wins a free glass of milk. That is, unless the Strawberry Cows get it first.

Filed under: General 10 Comments

Quick and easy install for pytw on DreamHost

First of all, let me introduce pytw. Its motto is 'pytw - very simple'. Is so simple it avoids uppercase letters. You don't get much simpler than that.

The motto actually confused me at first. I though pytw was going to be incomplete or just aimed a copying a TiddlyWiki file to a server. I'm glad to be wrong. The simple ideal is to keep it agile and modular regarding development.

My personal knowledge of Python can be summarized by three words: non-existant. So installing pytw wasn't going to be easy (or so I thought). Since I'm still a novice with the command line, I'll show you how to install it without using the command line. (Okay I lie, I'll give you a tip or two on the command line)

Step 1: Acquire and Unzip

First of all go download the pytw package from its website. Then, you need to expand it, my prefered method is to use 7-zip, it takes two passes then you have a folder named pytw with all the necessary files.

Step 2: Alter the index.cgi file

Now in the pytw folder, edit the file called 'index.cgi' Change the first line from #!/usr/bin/env python2.4 to #!/usr/bin/python Notice how there are no spaces in there. None. Don't think about putting them (unless you know exactly what you are doing, unlike myself).

Here's the command line part: you can use the which python command on the server and if it has python, it should tell you where python in installed

Step 3: Upload everything

Save you 'index.cgi' then open a useful ftp program. I'm using Smart FTP though Filezilla works well too. Once it finishes uploading go to the 'index.cgi' file and change its permissions to 755.

(Command line equivalent: go to the directory its in and enter: chmod 755 index.cgi)

You can now access your site from the internet. It now totally works. Of course, there are pytw modules and other such things, but thats beyond my experience. Maybe I'll write about those kinds of things once I master them.

Step 4: You probably need to make the directory writable (I didn't have to though!)

On my dreamhost server the directory is automatically given permissions of 755, so the web server can write and store the tiddler stuff there without any help. If you have problems you probably need to do a chmod 755 store -R. This goes and make the store directory like it needs to be (the -R tell is to goe recursively and set it up with each subfolder and file as well.)

Feel free to offer comments, corrections, and compliments in the comments.

Filed under: General 3 Comments

Editing a TiddlyWiki on a server, sans serverside backend

Lets say you have a WebDav server. Actually, you probably don't have a WebDav server, but you have an FTP server. (Lets also say that you have MS Windows) Okay so you can login, upload the TiddlyWiki files, and have somewhere where others can view yoursweet site, right?

Now lets say that you want to open you TiddlyWiki file from your server and edit it like its a local file within your browser. Impossible? Sure. Now, here's how you can do the impossible:

The solution is Novell NetDrive (5 MB). I found it here: You can Google it to download also, its free and works great (at least it has for the full ten minutes that I've used it :) ).

Install it and run it. It will allow you to map a webdav folder or an ftp site as a local drive. Let me repeat this (as it is pretty cool)

Map an FTP server as local drive.

Map a WebDav server as local drive.

Then, you can just drag your TiddlyWiki over, open it in your browser and edit it. Nice? Right. Very. Now follow this link and show your gratitude:

(Or just share the info and help others along the way)

Filed under: General Comments Off

How to move the sidebar under the mainMenu

Update: This technique only worked with Version 1.2 of TiddlyWiki. TW 2.0 uses templates for rearranging the structure. I'll try to clean this up noting 2.0 differences some time. The main thing is to edit the PageTemplate shadow tiddler and leave out the javascript.

Before we attempt to rearrange the page's layout, it is important to understand the page's structure. What is the page's structure? Think of a tree. The base element for a web page is the HTML element, like the trunk of a tree. Many elements branch out of the HTML element and even more elements branch out of those elements. So the page's structure branches out like a tree. Got it?

Now the elements that we are concerned with are the MainMenu and Sidebar. Here's how they sit in TiddlyWiki:

* ContentWrapper
* * Sidebar
* * * SidebarOptions
* * * SidebarTabs
* * mainMenu
* * DisplayArea (where the tiddler's are)

To move the sidebar under the MainMenu we have to move it in two ways: 1) we need to place the MainMenu before or at the top of the sidebar (using JavaScript) and 2) we have to change how it displays on the page (using CSS).

Create a tiddler and name it whatever you want. ('HTML Structure' is usually a good name.) Give it the tag of 'systemConfig'. This will make it execute the JavaScript in the tiddler the next time the page is refreshed. Now insert the following code:

var sidebar = document.getElementById('sidebar');

This 'grabs' the sidebar then grabs the mainMenu element and moves it to be before the sidebarOptions element. Save your TiddlyWiki file and refresh it. This will execute the new HTML Structure tiddler and rearrange the page structure. Now the page's structure looks like this (notice where the mainMenu has moved to):

* ContentWrapper
** Sidebar
*** ''mainMenu''
*** SidebarOptions
*** SidebarTabs
** DisplayArea (where the tiddler's are)

You may be scratching your head wondering why we need to do anything else. In the TiddlyWiki the mainMenu is overlapping the sidebar and its still on the wrong side of the page. We'll fix it with CSS.

CSS rules allow you to change how the page displays. They're pretty easy to understand once you see them written out. We'll just add a few rules that undo the default TiddlyWiki styles.

Create a tiddler named 'StyleSheet' and add the following rules:

position: static;
left: 0;
margin-right: 0;

The first rule turns off a 'position: absolute;' rule. Absolute positioning is what make the mainMenu overlap the sidebar. 'Static' tells the sidebar to move on down and display after the mainMenu.

The second rule tells the sidebar to be zero pixels from the left side of the screen. It was set at 'right:0;' by TiddlyWiki before.

The final rule is actually not necessary but once we move the sidebar to the left side of the screen we want to let the tiddler's fill in the empty area again. So we remove the displayArea's right margin.

To keep the TiddlyWiki useable you'll probably want to keep the mainMenu realatively short. Next time I'll show you how to make your mainMenu horizontal and part of the header.

Filed under: General Comments Off

TiddlyWiki’s First Birthday

This day last year TiddlyWiki 1.0 was released. The next version, 1.2.33, will probably be due for a release this Thursday. Its been a good year.

Filed under: General Comments Off



September 2018
« Jul