If you’ve been following me on twitter, you’ve already been tipped off that I recently got an older MacBook Pro. Since it came with Mac OS installed, I decided I would give it a fair, 30-day trial before I move it to Linux. I’m about 3 weeks in, and I’m logging my thoughts publicly so you can hopefully see benefit.
What I’m NOT comparing
In a word: speed. This was a significant hardware upgrade from my last computer, so I’m not going to say anything how everything is so much faster, smoother blah blah because it would’ve been anyway and that’s not useful to you or anyone. Also, virtualization: I know that I can get X or Y if I just use VirtualBox. I’m going to ignore that here for simplicity.
Tools
Before I make stupid lists, I should note that I was working on an Ubuntu Karmic Koala, so I had all of the pre-packaged nice-ities that come with that.
Now, in no order whatsoever:
- Dock – Mac has a built-in dock, Linux has AWN and Gnome-Do Docky. IMO, Linux wins barely because you have more options for customization.
- Terminal – Both systems have a built-in terminal. I’m a bash user and that came with both. One part where Linux shines is that a lot more tools build themselves to be launched by the Terminal by default. For example, try typing “which firefox” in the Mac terminal. Nope.
Continue reading →
A year ago, my good friend Casey Watson suggested that I try using a personal wiki to keep track of my programming knowledge. This turned out to be great advice, so I’ll be sharing how I use one and how to start your own.
Why would a personal wiki make you productive?
In a phrase: to keep a your web of knowledge accessible from one place. You need a place to put your meeting agenda, important project/server links, and even a to-do or waiting-for list. Not only can you store a lot, you can tag it, search it and otherwise customize the crap out of Tiddlywiki.
You are not going to be able to remember everything you need, keeping links and information in email folders just doesn’t cut it. You can easily keep track of your meeting notes, DB schema diagrams, bug lists, blah blah blah… Continue reading →
I seem to preach a lot about automation for productivity, and with good reason. You should not have to perform mundane tasks repeatedly. Crontab is a fantastic tool for simply running exactly what you want at times you specify.
Fire up your terminal or Cygwin now.
crontab tutorial
Suppose I want to copy my personal wiki to my website every other hour between 8:30 and 18:30 on weekdays only. This only takes a couple minutes to setup with a bit of cron-fu.
I’m going to go ahead and use FTP to put my wiki where I want, so I wrote a quick bash script (backup_wiki.sh) for this purpose:
[code language="bash"]
#!/bin/bash
# File: backup_wiki.sh
HOST='mysite.com'
USER='myuser'
PASS='mypassword'
ftp -n ${HOST} <
quote USER ${USER}
quote PASS ${PASS}
put path/to/my/wikifile.html wikifile.html
bye
END_SCRIPT
exit 0
[/code]
Sweet, so now we can just use backup_wiki.sh
Let's edit (or create) our new crontab file:
[code language="bash"]
crontab -e
[/code]
This brings up vi (by default) with a file that may have a comment or may be empty. I don't feel like using vi right now, so I'll change it to jEdit by adding the following to my .bashrc file:
[code language="bash"]
export EDITOR="[/path/to/jedit.bat (windows) or 'jedit' (*nix)]"
[/code]
Ah, that's better. Now that we can open it up in our fav. text editor, let's learn how to create an entry in our crontab file. Continue reading →