Friday, June 08, 2012

Umask confusion

I've been studying for the LPI LPIC-1 test, which is a basic introduction to Linux certification. So far it's been a very interesting experience, really finding out so much more about the nuts and bolts of Linux. But there are some confusion I'm having, and find it best to write it out to solve the problem.

One confusion is with the Umask function and command. Here's a short summary on the subject.

In the Linux and UNIX system, new files and directories are created with a default permission. Keep in mind the following.

  • Read - 4
  • Write - 2
  • Execute - 1


  • Files - 666
    • Owner - Read, Write
    • Group - Read, Write
    • Other - Read, Write
  • Directories - 777
    • Owner - Read, Write, Execute
    • Group - Read, Write, Execute
    • Other - Read, Write, Execute
The owner is the user account who created the account, the group is the group associated with the file (most times it's the same as the user name), and the other is anyone who is authenticated on the system. 

Now the issue is that on a system shared by multiple users, these settings leave little to be secured. How can the Linux system have the files locked down but still allow others access? This is where the command umask comes in. Umask allows the system to follow a default setting of security across the system, sort of a lock down depending upon how secure you want it. 

Let's first find out what is the current umask setting. 
  1. From your command prompt, run the following command
    1. #umask
  2. You should see a value such as "0022"
For most Linux distributions, the default is 0022. Only the last three values are used, the first "0" is not used. For this detail the settings of umask are as follows. 
  • umask setting of "0022"
    • First "0" - Not used
    • Second "0" - Amount to remove from default settings of owner permission
    • Third "2" - Amount to remove from default settings of group permission
    • Fourth "2" - Amount to remove from default settings of other permission
Sounds confusing but here's how this is calculated. 
  • umask setting of "0022"
    • Files - default is 666
      • Owner - 666 - 0 = 666 
      • Group - 666 - 2 = 664
      • Other - 666 - 2 = 664
    • Directories - default is 777
      • Owner - 777 - 0 = 777
      • Group - 777 - 2 = 775
      • Other - 777 - 2 = 775
As you can see, the setting of "0022" (more commonly reported as 022 since we drop the first zero since it's not used) will remove permissions for Group and Other. This change is not so impacting but if we wanted we could make the system more secure by using higher amounts of umask. For example, 077 would give only the owner of the files the right to read, write and execute. 

Now that we know the basics of the umask command, how can we change this? There's really two methods, one is from the command umask.
  1. From your command prompt, run the following command
    1. #umask 0026
  2. Now create a directory and file
    1. #mkdir testdir
    2. #touch testfile
  3. Let's see if the permissions are different than before
    1. #ls -l
  4. You should see the following permissions
    1. Testdir - 751 (rwx-rx-x)
    2. Testfile - 640 (rw-r--)
But the change done by umask is not permanent, to do that you need to edit the /etc/profile. You can view the file and find out that there's actually two values given in the file (here we are using CentOS). Why are there two values in the file? 



The file script checks for the user account UID, and depending on the number, the user will either receive a umask of 002 or 022. Remember that service accounts are typically UID's under 200, while regular user accounts have UID's starting at 500 (typically). Also root has the UID of 1, so basically the system is giving a less enforced policy for more important accounts. 

To view the account UID, in two methods. 

  1. From the command prompt, run the following command
    1. #id -u useraccount
      1. Number returned will be your UID
    2. #cat /etc/passwd
      1. A full listing of all accounts on the system, showing UID
For more information about umask here are some very good links to read up on. 



Tuesday, June 05, 2012

Script to help with timing issues on virtual guests

There's an issue when running a virtual machine that the time gets incorrectly updated. The problem is that when you suspend the computer, the virtual machine will suspend and return with the incorrect time, instead of updating from the Internet. I have seen this issue more so on Linux than on Windows, but for Linux it's easily fixed by a simple script. Here's the basic steps to get it working.


  1. Open up Vi or your favorite editor on your virtual machine
  2. Type in the following details
    1. #!/bin/bash
      service ntpd stop
      sleep 5
      ntpdate pool.ntp.org
      sleep 5
      service ntpd start
  3. Save you file
  4. Change the permissions to all the file to be executable
    1. Run the following command
    2. #chmod 755 filename
  5. Test the command
    1. Run the following command
    2. #date
    3. You should see an incorrect time
    4. Run the script, note the "./" before the script name
    5. #./yourtimescriptname
    6. Run the following command
    7. #date
    8. You should see the correct time
  6. Now your virtual machine is updated
  7. You can add this script to a cron job or login script to automate the process
So far I just run this manually since I rarely reboot the virtual machine or login or out. You can make a symbolic link or an alias to make things easier to manage. 


Sunday, June 03, 2012

Adding a drive to VMware Workstation Linux guest without restarting

Recently I was working on a CentOS 6.2 guest on VMware Workstation 8 and I wanted to add an additional hard drive. From VMware Workstation I knew how to do this but not from the Linux side. Being unfamiliar with this, searched and found a few handy steps to add the drive without rebooting the Linux guest.

First, let's see what drives are showing up for the Linux guest. From the host we're going to check the /dev directory and see what drives are showing up.

#cd /dev
#ls





Here we can see that there is three drives, sda, sdb and sdc listed on the guest. Under these two drives is three partitions titled sda1 and sda2, plus sdb1. Notied that drive sdc does not have any partitions. This breaks down like this.

  • SDA
    • SDA1
    • SDA2
  • SDB
    • SDB1
  • SDC
    • No partitions
So now, we want to add an additional hard drive then add an partition.

From VMware Workstation, we're going to add the drive to the guest.

  1. Right click the guest, and click the "Settings"
  2. The Virtual Machine Settings window will open
  3. Click the "add" button
  4. The "Add Hardware Wizard" window will open
  5. Select "Hard Disk" then click the "Next" button
  6. Under the "Select a Disk" leave the default as "Create a new virtual disk", then click the "Next" button
  7. Under the "Select a Disk Type" leave the default as "SCSI", then click the "Next" button
  8. Under the "Specify Disk Capacity", change the value for "Maximum disk size (GB)" to the amount you want. For this example, I will be using 5GB. Then click the "Next" button
  9. Under the "Specify Disk File" leave the file name as default and then click the "Finish" button
  10. Back at the "Virtual Machine Settings" window, click the "OK" button to complete
  11. The new drive has been added to the guest
 If you check the guest again, you will notice that the new drive does not show up automatically under the /dev directory. There are two solutions to this, one is restarting the guest, the other is a little bit longer method. We're going to follow the second step, which is handy if you wish to keep the system up.

These commands were posted on another blog, Cyberciti's how to add a new VMware hard disk article.

First we're going to scan the system for the new drives. We need the host numbers on the guest machine first.

  1. First find the host number on your system
    1. Run the following command
    2. #ls /sys/class/scsi_host
    3. You should see the return of "host0" or more 
  2.  Force the system to scan the drives
    1. The host number you found in the previous step will be used here.
    2. Run the following command
    3. #echo "- - -" > /sys/class/scsi_host/host2/scan (note on my system it's "host2")
    4. After this you may see a message of the drive scanned on the machine
  3. To confirm, check the logs for messages of new drive
    1. Run the following command
    2. #tail /var/log/messages
    3.  This will be sequential from the last drives. For example, if you see in /dev drives SDA, SDB, then you should see logs for drive SDC
  4. From fdisk we're going to also validate it's showing up
    1. Run the following command
    2. #fdisk -l
    3. You should see the drive showing up that matches the drive from step 3
  5. From /dev you should also see the new drive listed
    1. Run the following command
    2. #ls /dev
    3. You should see the drive showing up that you just added
Now that we have the drive installed and viewed from the guest, let's create the partition and format. We are going to be using the steps as mentioned in the blog Cyberciti's how to add Linux hard disk.

  1. First find the drive has been discovered on the system
    1. Run the following command
    2. #fdisk -l | grep 'Disk'
    3. You should see the drive you added in the previous steps shown near the end of the list
    4. Save this information for the next steps. 
  2. Run fdisk to create the partition on the new disk (if anytime you get lost on commands, type "m" for the command menu
    1. Run the following command
    2. #fdisk /dev/sdd (your drive may be different)
      1. In fdisk, type "n" to create a new partition
      2. Type "p" for a primary partition
      3. Type "1" for a partition number
      4. Type "1" for a first cylinder number
      5. Type "1G" for size (this can be adjusted for your needs)
      6. Type "w" to write and save the information
      7. This will automatically close fdisk
  3. Validate the partition is now showing up in /dev directory
    1. Run the following command
    2. #ls /dev
    3. You should see the new partition showing up under the drive you just created
  4. We're now going to format the partition with ext3 so that it's usable 
    1. Run the following command 
    2.  #mkfs.ext3 /dev/sdd1
    3. You should see confirmation the command was successful
  5. Finally we are going to mount the drive
    1. Run the following commands
    2. #mkdir /disk1
    3. #mount /dev/sdd1 /disk1 (your drive may be different)
  6. Confirm the drive is showing up
    1. Run the following command
    2. #df -H
    3. You should see your new drive mounted
  7. Test the new mount
    1. Run the following commands
    2. #touch  /disk1/testfile
    3. #ls /disk1
    4. You should see your file written to the new mount
  8. Now set the mount at boot
    1. Run the following command
    2. #vi /etc/fstab
    3. Add the following line to the fstab file (note, I'm not going to show basic Vi commands here, you can find them across the Internet)
    4. /dev/sdd1         /disk1      ext3     defaults    1    2
    5. Save the file
  9. Done!
Now you should have a new drive on your virtual machine without restarting the guest. If you don't mind restarting then you can skip steps scanning steps. Also be careful of editing the /etc/fstab file, this can lead to problems with the boot of the machine.












Sunday, December 04, 2011

Install HTOP on FreeBSD

Working with command line I really miss some of the nice graphics you find with Windows based tools. The current Windows Resource Monitor included in Windows 7 and Windows Server 2008 is really my favorite. It's great to use for monitoring as it's a real time graph of the system performance. I know that Linux/UNIX tools like TOP can do the same but it's just visually easier to view a graph than numbers.

I recently started to use HTOP which is a more graphical version of TOP but is not as popular. The downside is that while it's more handy, you may need to have it installed manually, it's typically not included by default. Below is a screenshot of HTOP running.


Installing HTOP in CentOS is extremely simple.

#yum install htop

Done! For Debian based systems, use the following command.

$sudo apt-get install htop

Simple and easy, now run htop. But what if you want to install htop for FreeBSD? That's going to take a little bit more work.

Good news is that HTOP is available from the FreeBSD ports collection. This will make the process much easier that installing from source.

http://www.freebsd.org/cgi/cvsweb.cgi/ports/sysutils/htop/

For the actual installing, I following a few blogs and forum postings. One from The Technical Crib pointed me how to install the Linux emulators for FreeBSD. But after following the steps I received another error during the install process, which was covered in this FreeBSD forum posting. Finally, as suggested in the previous link, the fix was to install the source, found how to do that in this Cyberciti blog posting.

Below I will write out the full steps that worked for me, didn't discover this but it's complied between all the articles I found.

Installing the requirements 

1) Su or login as root

2) Run the command to enable Linux binarary compatibility for FreeBSD.

#kldload linux

3) Add to the startup

Edit /etc/rc.conf

Add following line

linux_enable="YES"

4) Install Linux base port f10.

#cd /usr/ports/emulators/linux_base-f10


#make install clean

5) Add linproc to fstab

Edit /etc/fstab

Add following line

linproc /compat/linux/proc   linprocfs   rw   0  0

6) Install Htop from the port

#cd /usr/ports/sysutils/htop

#make install clean

7) Htop should run!

$htop

Possible extra step

*note - htop should complete the install with no problems. If you see an error as the following, you may need to install the source files to your computer.

Error result ***


===>  Configuring for lsof-4.84A,5
Creating ./lockf_owner.h from /usr/src/sys/kern/kern_lockf.c
FATAL ERROR: can't read /usr/src/sys/kern/kern_lockf.c
FATAL ERROR: ./lockf_owner.h creation failed (see 00FAQ)
===>  Script "Configure" failed unexpectedly.
Please report the problem to ler@lerctr.org [maintainer] and attach the
"/usr/ports/sysutils/lsof/work/lsof_4.84A.freebsd/config.log" including the
output of the failure of your make command. Also, it might be a good idea to
provide an overview of all packages installed on your system (e.g. an `ls
/var/db/pkg`).
*** Error code 1


Stop in /usr/ports/sysutils/lsof.
*** Error code 1


Stop in /usr/ports/sysutils/htop.
*** Error code 1


Stop in /usr/ports/sysutils/htop.


Error result ***

I am using FreeBSD version 8.2 stable and saw this error, so I followed one of the links posted and installed the kernel source code. We're going to run through some settings with FreeBSD's sysinstaller, it's kinda of confusing but take your time and carefully tab around.

1) Su as root

2) Run the sysinstaller

#sysinstall

3) Select "Options", then tab to the "Select" button, press enter



4) Under the Options Editor, use the arrow keys to scroll down to "Release Name" value, we are going to change this by removing the "-p3" after "RELEASE". Press the space bar to open an edit window.


5) In the edit window, remove the "-P3" value. This is done because when we download the source files, it does not know where to find this source. Tab to "Ok" when done. Then press "q" to quit to the main screen.


6) Back at the main sysinstaller screen we are going to select "Configure", then tab to "Select" and press enter.


7) Use the arrow keys to select "Distributions" then then use the space bar to select to continue.


8) On the next page, scroll down again using the arrow keys and select "SRC - Sources for everything". Press the space bar to select.


9) Under the sub-components, you will need to select two source trees, Base and Sys. Scroll down again using the arrow keys and select the following with the space bar.

"Base - top-level files in /usr /src"
"Sys - /usr/src/sys (FreeBSD kernel)"

Tab to the "Ok" button again.


10) After this you will be prompted where to install the files from (CD/DVD/FTP, etc.). Since this is a smaller download, I would suggest FTP, and first starting with the main FTP site. Now if the FTP fails with the following error message

Warning: Can't find the '8.2-RELEASE-P3' distribution on this FTP server

Go back to step 5 and make sure you edited the name. 

Htop should finally run as normal! Yes, this was a pain but considering it's running a Linux based tool, wasn't that bad!

Rob

Wednesday, November 30, 2011

Alias, making quick custom commands

Recently I placed my home computer on the Internet for a remote access but also to run a personal web page. The problem I had is while I enabled ssh access using only private keys, I was still worried that I might leave a loop hole open on the system.

So here I was constantly checking the logs for any alerts to SSHD service. The command I would run is something simple, "tail /var/log/messages | grep sshd".

The results would typically something as simple as a few lines but it would be important to keep up on. Here's an example.



$ tail /var/log/messages | grep sshd
Nov 25 03:13:59 server1 sshd[927]: error: PAM: authentication error for user from 192.168.1.100
Nov 25 03:14:06 server1 sshd[927]: error: PAM: authentication error for user from 192.168.1.100
Nov 25 05:50:25 server1 sshd[1299]: error: PAM: authentication error for illegal user root from 192.168.1.100


Now this is kinda of a long command to type out each time, I was wondering if I could just type something shorter?

Here's where the alias command comes into play. From your terminal, you can type "alias" and find out what are your current alias commands. 

$ alias
g='egrep -i'
h='fc -l'
j=jobs
l='ls -l'
ll='ls -laFo'
m=more

We're now going to add our search command as listed above, but make an alias to "searchsshd". 

$ alias searchsshd='tail /var/log/messages | grep sshd'

Now, when we type "searchsshd" we get the following. 

$ tail /var/log/messages | grep sshd
Nov 25 03:13:59 server1 sshd[927]: error: PAM: authentication error for user from 192.168.1.100
Nov 25 03:14:06 server1 sshd[927]: error: PAM: authentication error for user from 192.168.1.100
Nov 25 05:50:25 server1 sshd[1299]: error: PAM: authentication error for illegal user root from 192.168.1.100

Pretty cool! 

Rob






Hard links vs Symbolic links

Working with Linux and UNIX offers some handy extras not typically found on Windows based systems. One great feature is hard and soft links, which is somewhat like a shortcut that you can create but looks just like a normal file.

This works great when you need to share a file but do not want to give permissions to the file directly. So how does this work? Every file on a Linux or UNIX based system is mapped to an inode. Inodes are the identification of every single file and object on the system. This includes users, files, rights, etc.

To see the inode values, you can run the command "ls -i".


rob@robmint ~/sandbox $ ls -li
total 4
2098382 -rw-r--r-- 1 rob rob 5 2011-11-30 17:29 testfile

The file "testfile" has a inode value of "2098382".

Now there are two different links we can create. One is a hard link, the other is a soft link. Here's the difference.

Hard link - These are files associated to the same inode. They are duplicate files and are independent from the original file. Also as you can see below, look the same but there is a slight hint.

Let's first create the hard link using the "ln" command.


rob@robmint ~/sandbox $ ln testfile testfilehardlink

Now let's see what we created. 



rob@robmint ~/sandbox $ ls -li
total 8
2098382 -rw-r--r-- 2 rob rob 5 2011-11-30 17:29 testfile
2098382 -rw-r--r-- 2 rob rob 5 2011-11-30 17:29 testfilehardlink

Again, we see the inode information is the same, but also note the value of "2". Which tells us that the original file "testfile" is linked two times, once to "testfile" and another to "testfilehardlink". 


So we mentioned that hard links are duplicates of the original file, but what happens when we delete the original file? Let's find out. We will delete the file "testfile" and leave behind "testfilehardlink".


rob@robmint ~/sandbox $ rm testfile
rob@robmint ~/sandbox $ ls -li
total 8
2098382 -rw-r--r-- 1 rob rob  5 2011-11-30 17:29 testfilehardlink

Now let's see if we can access "testfilehardlink". 

rob@robmint ~/sandbox $ cat testfilehardlink
1234

It works! Now, even after deleting the original, you can still access the data. But this looses the benefit of using link since now the file is no longer being updated from the original file. 

So now we know hard links, what about soft links? Let's create the soft links using the "ln -s" command. 

rob@robmint / $ ln -s testfile2 testfilesoftlink

Now let's look at the soft link we created. Notice how there is a visual reminder that it's a soft link. 

rob@robmint ~/sandbox $ ls -li
total 8
2097736 -rw-r--r-- 1 rob rob 10 2011-11-30 17:41 testfile2
2098382 -rw-r--r-- 1 rob rob  5 2011-11-30 17:29 testfilehardlink
2098638 lrwxrwxrwx 1 rob rob  9 2011-11-30 17:48 testfilesoftlink -> testfile2

Here we created the the soft link, but let's see how this works if we delete the original file. 

rob@robmint ~/sandbox $ rm testfile2
rob@robmint ~/sandbox $ ls -li
total 8
2098383 -rw-r--r-- 2 rob rob 5 2011-11-30 17:50 testfile
2098383 -rw-r--r-- 2 rob rob 5 2011-11-30 17:50 testfilehardlink
2098638 lrwxrwxrwx 1 rob rob 9 2011-11-30 17:48 testfilesoftlink -> testfile2


Now the original file is deleted, let's try to access the file "testfilesoftlink".


rob@robmint ~/sandbox $ cat testfilesoftlink
cat: testfilesoftlink: No such file or directory

As you can see, once the original file is gone, so it the soft link file. This is because the soft link is a link to the inode, not a duplicate file. 

Now, why would you want to use soft links over hard links? Soft links are a path back to the file, not to the inode, which means that you can access links across partitions. It's pretty cool feature and when working with longer path names this could be extremely handy. 

Rob








Friday, November 25, 2011

SSH access with keys and no password

One of the most handy things about SSH access is setting up the secure keys, allowing to bypass the password but keep a very secure access to the host. This allows a fast connection to the host, but also since you're using a security key, no one else will have access.

For a while I was having issues setting this up, I knew that you needed to create the keys but not sure how to setup ssh access further. So I setup a home server, using FreeBSD 8.2 at home and running a port forwarding from my home router. I wanted to keep this secure as possible, but also allow access from any location, so I could access my home system remotely. 

So here's the steps I used and hoping this will be helpful. 

First, if you're on a Windows system there might be some issues creating the keys. You can make keys from Putty but there is some differences, mostly you will need to rename the files and make some additional editing. In these examples I created the keys on a Ubuntu based system and accessing a FreeBSD host. Please note "user" is your account name and "hostname" is the machine name. 

Before starting, make sure you have your remote host setup if needed. Here I'm working on a home machine so I need to first edit the SSH service file located at /etc/ssh/sshd_config. I recommend using your favorite text editor, and will be listing only the important options below. 

First, make sure root SSH login is disabled, and only allowing your account to be listed. 


AllowUsers user


We are also going to disable password authentication. 

PasswordAuthentication no

Also allow RSA keys.

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

Save the file and restart sshd service. Now consider if you are accessing a company server the details will be different and these setup steps for the host might be already done. 

From your personal computer. 

1) Login to a host and access the terminal or console.
2) From you're home directory, run the following command.

user@hostname ~ $ ssh-keygen -t rsa

3) As seen below, you will be asked for the following details. You can take the defaults and press "enter" all the way through. If you would like added security, enter a passphrase when prompted. 

user@hostname ~ $ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
[random letters and numbers] user@hostname
The key's randomart image is:
+--[ RSA 2048]----+
[random image]

4) Now check your directory and you should see the following files. The specific path is listed above as "/home/user/.ssh" directory. We are using the "a" option to view the .ssh directory since it is hidden. 

user@hostname ~ $ ls -la
drwx------  2 user  user       4096 2011-11-25 15:18 .ssh

5) So we have the directory there, now let's check for the files. We are going to change directory to .ssh and look for the files.

user@hostname ~/.ssh $ cd .ssh

6) We are looking for what files are in the directory. 

user@hostname ~/.ssh $ ls -l
total 20
drwx------  2 user user 4096 2011-11-25 15:18 .
drwxr-xr-x 57 user user 4096 2011-11-25 14:55 ..
-rw-------  1 user user 1675 2011-11-25 15:18 id_rsa
-rw-r--r--  1 user user  393 2011-11-25 15:18 id_rsa.pub
-rw-r--r--  1 user user  884 2011-11-25 15:01 known_hosts

7) We have two hosts that are important. id_rsa and id_rsa.pub, these are the two files which we created and will need to access remote hosts. 

id_rsa - This is your private key, you keep this on the computer that you are using to access other computers. This is a secure file not to be shared on remote systems but only on hosts you are using for clients. 

id_rsa.pub - This is the public key, you place this file on remote systems that you want to access remotely. 

8) Now we have the two files needed, we're going to copy the id_rsa.pub file to our remote system. This command will copy the files from your local id_rsa.pub to the remote host. 

user@hostname ~/.ssh $ cat id_rsa.pub | ssh user@192.168.1.1 'cat >> .ssh/authorized_keys'
Password:

There is a possibility this might fail. Make sure that under your home directory on the remote system you have .ssh directory and the file authorized_keys already created. If they are not there, then create them as needed. Below, run the commands from your home directory. 

user@hostname ~ $ mkdir .ssh

Now we are going to lock down the directory

user@hostname ~ $ chmod 700 .ssh

Now go inside the .ssh directory

user@hostname ~ $ cd .ssh

We are going to create a blank file to store the keys

user@hostname ~ $ touch authorized_keys

Again, we are going to lock this file down as well 

user@hostname ~ $ chmod 600 authorized_keys

Now try the command listed in step 8 again. This should work. 

9) Now try to ssh into the server again, you should not be prompted for the password and go straight to the terminal session. 

Hope this saves you time and keeps your system secure. 

Rob

Sunday, September 04, 2011

Windows Freeware applications list

The word free and Windows don't often go together. It's very common to find free open source applications in the Linux world but in Windows it's a bit harder to find, but they are there. 


Recently I found a few nice listing of free applications that are free or offer free trial versions. Really handy listing and some of the applications are just what you need for something small. 


So my personal list of free or open source applications for Windows is here. 


Filezilla - FTP client and server


Before I found Filezilla I was stuck using either the command line for FTP upload, Dreamweaver, or another paid FTP program. Granted FTP isn't something that requires a great deal of knowledge, but it just made things easier to use a mouse. Filezilla is basically everything you could want in an FTP client, I've been using it for years and never had any issues. 


AVG Free Client - Antivirus 


I have never compared anti-virus vendors but the interface of AVG is very simple and easy to use. AVG offers frequent updates and of course they ask that you upgrade to the paid version, which offers more options and protection. Personally it's a tie between AVG and other vendors that offer a free version but AVG seems cleaner.


Pidgin - IM and IRC client


There's many instant messenger clients and IRC clients out there but the interface of Pidgin is decently easy to use. The only issue is using some of the extra features that are included with the vendor's instant messenger client might not work 100% with Pidgin. For example Yahoo! Messenger conference does not appear to work correctly with Pidgin, but that's a minor issue. 


VLC - Media player


VLC is a handy media player that I often use over Windows Media Player. The best feature is this is a very universal player, can play pretty much any file you throw at it. 


FooBar2000 - Music player


My favorite music players have been Winamp and iTunes, but recently I have been using FooBar as it's lightweight and simple to look for files. There is many plugins available for FooBar and if you're looking for the simple music player interface this is highly recommended. 


CutePDF - Print to PDF


I have a love hate issue with Adobe's PDF format. I like how it's very simple to hold books but creating PDF's was an issue, if you didn't have the software there was little you could do. With CutePDF, you can print to PDF which is very handy and great for "recording" web pages or logging documents. I heavily use this for capturing e-mails or invoices that are in HTML format for archival.


Imgburn - CD DVD burner


Imgburn is very handy for create CD or DVD's plus creating ISO of physical media. The application is lightweight, offers a much simpler method than working with Nero. My only request is disabling the "successful" sound as it's annoying. 


TrueCrypt - Encryption 


TrueCrypt offers drive and directory encryption, plus ability to encrypt the hard drive upon bootup. Where this comes in handy is when you need to secure a directory from others, or when you need to have a laptop secured even if you loose it. It's also great to use for your USB memory sticks, and I highly recommend this be used since it locks down the file very securely. 


Notepad ++ - Text editor


Using Microsoft's Notepad is handy but doesn't offer correct formatting and other tools as does Notepad ++. I really like this application and even after buying a very expensive paid version of another text editor, still use Notepad ++.


Putty - SSH client


I honestly do not know of another SSH client for Windows that is free and highly used as is Putty. I just recently switched to using SecureCRT, a paid SSH client but only after I needed a feature not included with Putty. But I really liked Putty and used it for many years. 


Rich Copy - File copy utility


I've been using Microsoft's Robocopy and the add on TeraCopy but recently I found Rich Copy from Microsoft. I really like the interface of Rich Copy and the adjustments for the job which is handy for faster computers. It's also good for sync a directory or just auditing. 


For now these are my favorites and will add some more shortly. 


Rob

Searching for disk space on Linux UNIX

One of the most confusing issues I had moving to Linux was searching for large files. It's somewhat confusing on Windows but there are many graphical applications available to help with the process. On command line, it's a slightly different process but still similar steps taken. Here's an example of searching for the largest files on a host. 


First, run the command "df -h" 


-bash-4.2$ df -h
Filesystem              Size    Used   Avail Capacity  Mounted on
/dev/sda1              3.9G    927M    2.7G    25%    /
/dev/sda2               10G     10G      0G    99%    /home
-bash-4.2$ 


Now you know the largest files are in the /home directory. Run the command "cd /home" In the example below, there's only one user, "rob" so I will go straight to the path.



-bash-4.2$ cd home/rob
-bash-4.2$ sudo du -sh *
9.9G    logs
 17M    dev
4.0K    documents
 12K    tools
-bash-4.2$

We find that in the path /home/rob/logs there is 9.9G of files. One method is to move the files to another directory or you can move the files, compress them then move them back. Just a note, certain files that are already compressed (mp3, jpg, zip) will not compress that well. Others such as text and log files compress extremely well. 


For the same path /home/rob/logs we find there are many log files taking up the space. 




-bash-4.2$ ls -lh
total 5
-rw-r--r--  1 robertf  users   2.5G Aug 31 23:00 log_083111
-rw-r--r--  1 robertf  users   2.5G Sep  1 23:00 log_090111
-rw-r--r--  1 robertf  users   2.5G Sep  2 23:00 log_090211
-rw-r--r--  1 robertf  users   2.5G Sep  3 23:00 log_090311
-rw-r--r--  1 robertf  users     5M Sep  4 07:46 log_090411
-bash-4.2$ 

We do not have space on /home so let's copy to /tmp to run the archive command


First create the folder on your /tmp directory by running the command "mkdir /tmp/rob"

-bash-4.2$ mkdir /tmp/rob

Then let's move the files over using the command "mv * /tmp/rob"

-bash-4.2$ mv * /tmp/rob

Just make sure the files have been copied

-bash-4.2$ ls /tmp/rob
log_083111      log_090111      log_090211      log_090311      log_090411


Now, we can start the compress of the files using the command "tar -zcvf log.tar /tmp/rob"


-bash-4.2$ tar -zcvf log.tar /tmp/rob
tar: Removing leading '/' from member names
a tmp/robertf
a tmp/robertf/logs
a tmp/robertf/logs/log_090411
a tmp/robertf/logs/log_090311
a tmp/robertf/logs/log_090211
a tmp/robertf/logs/log_090111
a tmp/robertf/logs/log_083111

Let's check again if the tar file has been created. 


-bash-4.2$ ls
log.tar

Now, the log.tar was created in the original location /home/rob/logs so we don't need to move that back from the /tmp directory. 


This is just a small example of how to find and clear space on your system. There are many many other examples. 


Nixcraft - How to find large files

Rob












Thursday, August 04, 2011

New job

It's been a while since I updated this blog. For the past few months I've been busy with work, looking for a new job and finally starting a new job. I'm very excited to move away from the Windows world and work entirely with Linux and FreeBSD but it's also a big learning curve.

For now, I'll spend my time on the transition skills, things I know in Windows but not confident in Linux. Also I will be relearning networking skills as I haven't heavily used this knowledge in a long time since I was so OS focused.

How's that saying goes? Be careful what your wish for?

Rob

Tuesday, December 21, 2010

Camera Straps

Since as long as I can remember, I've used the standard camera straps for all of my cameras. Of course point and shoots would use the smaller wrist strap but the SLR cameras were all your basic neck strap with two points connecting to the camera body. About 5 years ago I swapped out using the factory straps for the Op-Tech Pro Strap which I really like. It's a neoprene material on the area where it would rest on your neck and offers more flex than traditional straps, which is handy with heavy cameras. It's also reasonably priced, and I have three of them across my cameras.

In the past few years the trend of different camera straps have been getting popular on the camera forums. From using a sling style strap, hand straps, and the body carriers have all gained a loyal following. As someone who has struggled carrying a should strap camera bag, then a tripod bag, and a camera with another strap, I've taken a look around what would be a better solution. I have not purchased any of the new styled straps but have some comments as I carry my gear in different methods to match my needs. As of now, I'm still using the same Op-Tech camera strap but considering a sling strap.

Keeping the camera close yet out of the way

One issue that I run into is how to secure my camera while also keeping it out of the way while walking or traveling. Sounds confusing but here's a common issue, I carry a shoulder bag which I wear on my left shoulder or across my body on the right shoulder. Then I have a tripod bag, usually carried in the same manner, then I want to have my camera at easy access, again on my neck. Sounds confusing and it is!

I started to take my tripod out less, and now using a beltpack for my gear instead of the standard shoulder bag. But I'm starting to carry my camera instead over the neck, but more like a messenger bag across my back. This method I like for various reasons but it's really easy to keep the camera out of our way, especially with a large lens, also it allows a secure hold of the camera while moving. I had the camera in this position during running or walking through crowds and never had a problem.

Also speaking of crowds, I like to hold the camera in this position because it's not swinging side to side as I walk. I feel it's a smaller profile, and like to keep one hand on my bag to make sure it's also not swinging side to side either. A large bag weighing near 15lbs isn't something to bump into people.

Why I like the standard strap?

As mentioned earlier, I haven't tried the sling straps yet, the prices are about $50~100 for a complete setup. One issue that I really like using the standard strap is two mounting points vs one. The tripod socket is pretty strong on most cameras, built into the camera frame but I'm not sure it's the best place to dangle a camera all day from. If you have been reading some of the forums about these sling straps there's also complaints that the tripod socket connection will work it's self loose, dropping the camera to the ground.

The problem I see here is with the two point strap like a standard camera strap, the body and lens have lens chance to twist around. Many of the sling strap lugs that connect to the tripod socket are fixed like a eyelet bolt, which does not allow free movement, so if the camera starts to spin clockwise, it's going to unscrew the mount. I have seen one brand that added a bearing system to their tripod mount, Sun-Sniper which I think is safer.

Not to mention that the camera, I think, has more secure points with the standard camera strap connections built on the camera body. Since there are two, it's less stress on the body and also as discussed, less twisting. One big plus I like about the standard camera strap is you can wear it either over the neck like a standard strap or over one shoulder like a messenger bag. Then it's more like the sling strap, giving you quick access to the camera but also out of the way.

The point which I think makes the standard camera strap also better is it's closer to the body. Now this is something personal, but I really don't like to have my camera swinging far from my body, especially with a large lens. Even if you're a working pro, the last thing you want is to loose a lens from bumping the corner of a desk while on assignment. I've seen some of the straps hang very low and loose, really asking to be banged up against anything.

Another point against  the sling style is users of quick release tripod camera mounts. Most tripods now use beveled edge mounts to mount the camera to the tripod head, usually these are metal plates mounted to the camera's tripod socket which are a bevel to hold the camera to the tripod head. There's no place to mount a sling style strap unless you remove the camera mount and replace it with the loop for the sling strap. I like to use my tripod when I'm out taking photos but this would require me to completely change my setup.

Hand straps?

There's some photographers who don't use a strap at all in the traditional sense. The strap of choice is a hand strap which I'm seriously considering. The sling and standard camera strap both support the camera while carrying it, but they don't offer any support while actually using the camera. During a long coverage for a wedding, I held my camera with flash unit, plus a heavy lens all day, after which I really wished for some hand support. I've been looking at the hand straps as they offer two positive points.

One is the added strap to hold the camera to your hand, instead of using your fingers for grip, you can relax your hand and the weight is now supported by the arm muscles. The other is it's out of the way, less straps to deal with and easier to pack in the camera bag. The slight downside is that you will need either a battery grip or attachment to mount the hand strap, also the biggest problem, no saftey strap incase you drop the camera.

I like to have my camera teathered to myself at all times, or on flat ground. I try to be very careful with my gear but of course mistakes and accidents happen, so I try to take all pre-cautions as possible. I would assume you could strap on a hand strap and camera strap to the same top mount but it would be very hard to have both straps through the same mounting point. A plus to the sling style straps as they use the tripod mounting point.

What is really the best strap?

Really depends on your photography style and needs. I really like to have a multipurpose strap and the standard camera strap does that well for me. I can carry it in the normal position, also I can carry it like a sling.  Also it's not in the way when I'm walking but can be right in front when needed. It's also great that I can use other attachments for the tripod socket as needed, like a quick release bracket or another attachment.

I think for now, I'm going to stick with the standard camera strap and maybe purchase a hand strap to save arm strength, this gives me the most options.

Wednesday, November 17, 2010

Finding a job by reversing the roles

In times when jobs are harder to find, you need to stay active on your resume and constantly check job postings to stay current. In the last few months, I've been reading mostly job boards, about a few times a week, looking for job roles that I match, checking the requirements, skills they request, and type of work. I also note if the company type, if it's a start-up, contract position, or contract to hire, including job title. 

It's really interesting and if you have read What Color is your Parachute? the best method to find a job is by working in reverse order. How does that work? First, you need to think about the need for the job? When there's a need for a new job position, often times it's requested by a hiring mananger, who then reports the opening to the HR department, then is posted on the Internet, which you might see and reply to. The problem is that you're applying for a job to the person who might have the least amount of knowledge for the job, then filters the contacts to the hiring manager.

Not to mention that you may be the perfect employee, but you need to filter past many hands and departments, it's more difficult than just having the right skills to get the interview. When thinking about this problem, I think about the other side, from the hiring manager's perspective.

For the hiring manager, they know what to look for and what they want in an employee. The skills required and the function this person may do in their role. But it's another thing to sort out the people with the actual skills versus the people who may over rate their skills on a resume, as anyone can add mention a technical phrase to a recruiter to get an interview. So now, the hiring manager will now need to filter out all of these resumes, and usually a long task of finding the right person.

The big problem I see of this is that there's a large communication problem between the two main parties, the person who wants a job and the hiring manager who wants to hire someone. With many parties in between, it's a common issue that while you may be the perfect person for the job, a person down the chain of the hiring process may have other ideas. It could be as simple as you are not experienced but still have the knowledge, or maybe you understand product X but they are looking for someone who knows product Y.

It's very confusing, and often times I think that the hardest part of finding a job is getting past the hr department, as their role is often not to hire someone but to filter out those who do not match the job perfectly. Not to say hr department is easy, trying to become an expert for many departments in a company and filtering out the correct people is an incredible difficult job.

I think keeping this in mind is a good thing to remember when writing a resume. Often you need to really show what you can do and remember that the resume is the first item a hiring manager will see of you. It's really hard to show myself based upon a piece of paper, but considering the amount of time people can spend on each resume, it's the best to be honest and place your skills clearly. Also remember to tune your resume for the job as your applying for.

This means that if you're applying for a job working with customer service, highlighting your customer service skills will be better than listing other skills (but those might be a close second). The idea before was that you would make one resume as a "one size fits all" approach but now it's a resume by job idea that I feel works best. In some cases, I had recruiters call me for one job role which I had skills for, and ask if I could do these tasks. Since I didn't list the skills by the actual name on the job description they were reading from, the recruiter asked me a few questions then told me I probably don't have the skills and wished me luck on my job search.

I recommend that if you're looking for a certain job role, make a resume especially suited for the job. Then if you have another secondary job role, make another resume for that. I think this is somewhat the idea in fishing, as one lure might work ok for catching fish in a large lake but having multiple lures will work even better as different fish might be attracted to different types of lures.

Rob




Wednesday, November 10, 2010

Keeping your data safe

When I purchased my first digital camera, a Kodak DC280 I took photos of my friends and other events enjoying the new to me technology. But of those photos, very little I have now due to a accidental formatting I did on my main computer. Back then, I would reformat my computer, reinstall Windows, and every time I think I lost some data here or there, either photos, or school work, or game saves, it was always something I would remember when the computer was finishing up the Windows install. Of course, at this point, it was too late to recover and the data was basically gone. I had some backups but nothing that covered all of the data I lost.

After years of working with data on a personal level and also working with data on a business enterprise level I have some tips and tricks for the average end user. Here's my recommendations, and they are all low cost, where possible, no subscription needed.

A safe backup

A common mistake is backing up your data on the same computer. Recently while rebuilding my laptop, I installed a second hard drive, the same size and manufacture as the first drive. When I reinstalled Windows, the installer asked which drive I wanted to install to, so I figured it was drive 0, not the second drive I installed which was drive 1. When the install was done, I checked my second drive to retrieve the data I stored on drive 1, but it was all gone. I checked again and found that when I reinstalled Windows, I installed Windows on the data backup drive, not the Windows system drive.

I couldn't figure out how this mistake took place until I realized that the manufacture installed the Windows OS on the wrong drive, drive 1, then the new drive I installed was drive 0. Lucky for me, I only lost a bunch of ISO images I downloaded but it could have been worst. This example is why backing up on the same computer is not really a solid "backup".

For a better backup solution you should think about the following. Is my data safe if my computer's hard disk crashes? What if my computer's second hard disk crashes? What is my backup drive is stolen? Below I wrote a listing from least safe to most safe for backups which I personally recommend for home users.

1) Backing up on the same drive - This is great for working on a document where you are making edits and is a work in progress, but you should save your work end of day to another drive or location like a USB stick.

2) Backing up on another drive, same computer - This is a good solution for storing items that need quick access like photos or music. In most cases the second hard drive has much less use than the main drive and would equal less chance of failure but it would not protect against theft of the computer nor a virus.

3) Backing up on an external drive - Now we are starting to get into a much safer solution. Now you're data is easily accessible by USB, but it's also not too hard to access, a great combination. The only issue is theft or fire in the home but this is covered if you storage the drive in a safe location, or if you keep another backup in a different physical location.

4) Backing up on an external drive, also using on-line backup - This is the method I use and it's been pretty handy. While it's not free, typically costing about $100 per year, my data is backed up once by myself and then automatically by the backup provider. Since I backup not daily but every time I take a large amount of images from my camera, I wanted to have something to backup the small files I was working on and this works perfectly.

Know where your data is located



What is the best method to backup your data? I would first recommend to know where you data is located, then what is the most important data to backup. One of my biggest mistakes when I first started to use the computer was I stored data all over the place on my computer. From different drives, keeping data on my personal home folder, or keeping it under another folder, it was a large mess. Now, I use a different method for keeping the data in one location.

For a Windows system, I store all of my data under the account's document folder, this way if I backup the "My Documents" folder, then I can save all of my web page links, settings, Outlook PST files, photos, data, etc. On a Linux system, I follow the same method, I just make sure to save all of my work under /home/robert and this makes things much easier to manage.

How to backup your data

Backing up data is done in many methods but I really prefer simple over complex. There's plenty of free software, paid software and great built in software available for the home computer. I recommend that you use either the built in software for backing up or a simple file copy to backup your data. Here's my personal reason why.

When you use a special software to backup your data, you're usually compressing the files for the backup into a new format for backup. In most cases, the new format is not cross compatible, for example if I'm using brand X for my backup and it uses a formatting called "mybackup.mmg" then it's typically only going to work with software that knows about mmg files, in this case, the brand X application.

The big issue about this is that your data is only safe as long as the brand X software is available, which given the rate of software changes, could be months to years. For this reason I really only use two methods to backup my data on a Windows system. Either Windows Backup, which is built into most Windows systems that are higher than "home editions", or a simple file copy. In the years of using Windows Backup, I never had a issue where one version of Windows could not read another version's backup files, and thanks to the automated process with a simple wizard it's very easy to use.

Recently I'm now using a simple script to run a copy job from my desktop to a USB drive, not using any special backup software. For me this runs very easy, I can have access to the backed up files at time and as long as the drive is still working, my data is accessible.

Size limits of backup

In most cases unless you have a large amount of backup storage, you will not want to backup the entire profile on your computer. You might want to have the data easily accessible from a USB drive as D:\photos instead of D:\backup\robert\photos. Here's comes a common issue, how can I backup everything that is important without the extras that are not important? Let's say, I want to only backup my documents and Outlook PST data from my workstation?

If someone was to ask me this I would to the following steps on a Windows system.

1) Where are you saving your data? It's easy to assume "My Documents" but I have seen users save data to either the root of the main system drive, in most cases C:\ in a folder like "my data" and even saved under a strange folder like "09". It's my recommendation that you search the drives for Microsoft Office documents, images, music, Microsoft PST files at the very least. I usually use a search string as "*.xls; *.xlsx; *.doc; *.docx; *.pst; *.jpg; *.jpeg; *.mp3; *.wma; *.wmv; *.mov; *.m4a; *.mpg; *.mpeg".

This covers most of the common file formats including Apple iTunes formats but check twice and make sure you record all of the possible paths the user might have used.

2) Once you know the data locations you can either run the system's backup software or a simple file copy to backup your data to another location.

Test your backup solution

Before thinking everything is ok, test your backup solution once in a while before committing this process for months or years. It's easy to restore a few files and this small test will save you hours later from recreating work, if it's even possible to recreate. :)

Hope this has been helpful and here's some links for reference.

Windows XP Backup Made Easy

Mozy Backup Service

Crashplan Backup Service

A simple Linux backup plan

Rob

Sunday, November 07, 2010

Going with Ubuntu full time

Recently I've been using Ubuntu 10.04 LTS for my main laptop, switching from Windows Ultimate 7. In the past I had Linux installed on either a old laptop or a part time computer but now I'm working with Linux on a main computer. The easy part is finding how well Ubuntu installs, with drivers, the only part that needed installing a separate driver was the Nvidia video card.

Other than the driver, the rest of the applications were installed, Open Office, VirtualBox, Gwibber, and a few extras that are also available on Windows. I also used DropBox to keep my other workstations updated with the same files from Windows to Linux, the application alone makes the transition so much easier.

But after getting everything I needed from Linux, there was some problems. One of the issues is Microsoft Office and working with Open Office formats. If you open a Microsoft Office Word document 2007 DOCX format file in Open Office the formatting is not 100% correct, and vice versa a Open Office ODT format file will not open correctly in Microsoft Office. I tested this out at home but didn't notice any issues until I started to send out documents to other users that I saw many people having difficulties opening the files.

Another issue is formatting with certain browsers or applications only available for Windows. One of my favorite web applications is watching Netflix, which streams the video using Microsoft's Silverlight. As far as I know, there is no official alternative for Silverlight on Linux, but you can use Mono as a possible solution. I have not tried this so I can not speak on the reliability of this solution.

The formatting issue is not really a problem on Linux but a problem of people using either ASP or Internet Explorer specific formatting versus formatting for non-IE browsers. While the percentage of web sites that have issues is going down, there's still that strange website that will always have problems. Also for the Linux users who need VPN access, most cases VPN clients are for Windows users. I got around this issue but running a Windows XP virtual machine in VirtualBox, it's not really a solution rather a work around. The same work around I recommend to Mac users who wanted VPN access using their Mac hardware.

Other than the strange site or special application, my Ubuntu machine has been working excellent and funny that even the control buttons on the Asus laptop that did not work with Windows 7 work with Ubuntu. So far, running all of my favorite applications including my new favorite Docky for the desktop and the transition has been very seamless.

It's really impressive how much Linux and Ubuntu have come along, with the recent change of Internet Explorer loosing the top spot for browser this might allow even more adaptation of Linux to work further.

Rob

Friday, July 09, 2010

Thinktank Speed Racer camera bag review

A waistpack?

The 80's, neon, roller skates and old men. Those are images I picture when I hear the words “waistpack”. You don't see many people wearing them, except for joggers or maybe that shopper who has bundle of coupons within arms reach. So when I ventured on the idea of a bag that actually can hold a decent amount of gear, yet not become too much on my shoulder, I didn't think it would have been a waistpack. I broke my collar bone three years ago but still can't carry things on my right shoulder for too long before it gets sore, and that's the shoulder I usually carry bags with.

Searching for the perfect bag

My experience with camera bags is like most people, I went through a few shoulder bags, the classic block shapes with a usually thin strap holding my gear. After a while I found that carrying the amount of gear I wanted on the trip was not as easy to hold. In most photo trips I took, I was doing lots of walking and lugging a bag over my shoulder wasn't comfortable. Soon I tried backpacks but then I ran into another problem, you had to take them off to get to the camera. I also found that backpacks in general were usually really bulky and deep.

Also for the backpacks that are thinner, they can barley hold a standard DSLR with battery grip attached, which I normally equipped on all of my cameras. Another solution I researched was the new sling style bags, a cross between a standard shoulder bag but worn like a messenger bag. I liked the idea but many of the slings were too small to really carry enough gear. Also another problem they put too much pressure against one shoulder.

Benefit of the waistpack design

My only experience with waistpacks has been playing paintball. The paintball pod packs designed for carrying paintballs are usually waistpacks, they are pretty easy to carry over 1,000 paintballs and still run around without any stress on your back. From searching B&H's catalog and other sites, I found a few camera bags based upon this design. After much research and debate, I ended up purchasing the Thinktank Speed Racer waistpack and going to briefly go over the design here, also touch on how well it works.

Intro to the Speed Racer

From Thinktank's web site, the Speed Racer is their camera belt pack, that is built around one major compartment vs their other designs that are built upon a modular design of smaller packs. This is more personal preference but I wanted something less busy and simple, just one larger pack than buying packs for each item I'm going to bring with me. Important to note that you can add packs to the Speed Racer if you want.



First off the construction of the Speedracer is well done, This feels like a quality bag, slightly heavy but very solid with some interior foam to hold it's shape. The padding and included dividers split the interior into three spaces but I think most people would prefer splitting the interior into two spaces. The bag personally feels like a Lowepro and it was not surprising to learn the co-founder, Doug Murdoch was a lead designer from Lowepro. It is not using materials as thick as a Domke but honestly I think it's still built just as well. Guess time will really tell.

Overall design

The bag is a larger designed bag which some people may find too large compared to the newer style messenger bags. Nice feature is this bag can handle a pro DSLR with lens, where often other messenger bags require you to remove the lens to store the camera. Here's a size reference with the 5d markII and bag together.





There is the main compartment as previously described, here's an image with the 5d markII next to a 580EX II flash unit.



As you can see, there's enough room for the 5d, with grip and RRS l-frame, plus flash unit, and extras in a little space below. If you look very carefully you can see a 15mm fisheye hiding under it all. While the fitment is a little tight, it's not bad and still enough room to add a longer lens or even a few more items. With the 70-200mm f/2.8 instead of the flash unit the space was tight enough that it took two hands to close the top.

The top of the bag's lid has a nice clear pocket for storing thin items, guessing best of a small map? It's not enough for anything thick but maybe a small notebook and pens.



A nice attention to detail is how they made a pocket for the zipper end. Instead of resting outside where it can scratch your camera body.



The lid also has a "Lowepro" style open top, very similar to the Stealth bags. Now I heard there's some complaints about this not being useful but honestly I like it. It's important to understand that the size is not designed for removing the camera, but smaller items such as a lens or accessories. Here I am holding it open to almost maximum size.



The bag also has a "hidden" two pockets for memory cards and a rain cover, with tethered strap.



Tethered strap for rain cover.



Rain cover, made of decently thick material. Doubt it would rip if taken roughly.



Moving toward the front of the bag, there is a main pocket which contains two smaller pockets.



The pocket in the rear is too small for anything but maybe a thin manual, while the front sub pocket holds the Pixel Pocket Rocket. A nice feature of the Pixel Pocket Rocket is a tether to the main, which is removable if needed. Also this holds 8 compact flash cards, in a easy to use folding style, think Velcro wallet.



Easy to access the cards.



Another place to store you business cards.



Now moving to the side of the bag, here's a mesh pocket and another pocket right behind.



The mesh pocket is very flexible, with a cinch strap to make sure you're items don't drop out, while the back pocket is more firm. In the photo above I have a media reader in the mesh pocket, while a 580EX battery pack in the back pack.

On to the straps

One area I find lacking in bags is how they use the straps and buckles. The Speed Racer uses a unique style of a material loop which a nice metal buckle is linked it.



At first I was somewhat skeptical about this design but looking further, I found that the loop is solidly connected to the bang with a long strip of material reaching down into the side pockets.







The actual shoulder strap which is used as additional support or an option over the belt is covered by a thick foam. The foam has some slip and is not grippy, as it's designed to slide on your shoulder when you rotate the bag. Thinktank does include a grippy pad if you intent to only use the shoulder strap which I would also recommend. It might be hard to see but the strap is thinner than other straps I've used to so be aware if you intend to only wear the shoulder strap.

The actual belt pack is designed pretty awesome.



The strap is pretty thick but taper off to the buckle allowing you to move freely or bend over. The main black belt is made of a thicker plastic covered by nylon, while the lighter gray is more flexible and is lightly padded. You can also add additional items on the black belt part as needed from Thinktank's modular belt system.

How does it fit and work?

Wearing the Speed Racer is fairly simple. You adjust the belt to your waist and if needed wear the shoulder strap. When you want to access your gear you can either rotate the bag to the front, or just keep the bag in the front position.

On sizing, I did ran into a slight problem.



As you can see, I have the main belt almost to the smallest size possible. Now I wear a size 32" pants, which I don't think is that small but from this bag, I'm near the limit. For women or thin guys, this might be a deal breaker and honestly not sure what you can do if the bag is too big for you. It's important to note that the bag is not designed to be very tight, more able to move and adjust as needed.

As with the shoulder strap I ran into the same problem. The shoulder strap is almost at the smallest size yet it just barley fits my frame. I'm 5'9" and 140lbs. so this might give you an idea how well this will fit smaller people.







On the flip side for larger guys there is plenty of space for adjustment.



The details

While there is some limitations for me on the sizing I have to say the details really impressed me. I personally liked the zipper design of using cord instead of metal tangs, I think these are less easy to scratch your gear or car.



The Thinktank logo is in many places on this bag.





Overall impressions

Honestly I really like this bag. For a long time I only used shoulder bags, mostly my Domke J1 but with my shoulder not being able to carry a heavy bag for a long walk I had to look for another solution. With backpacks I liked the support but didn't like the size and trying to get my gear out quickly. The belt pack/waistpack offers a nice in between solution that I think will make for a great all day bag, especially for events like photography at a race or hike.

Now it's not perfect, as noted by the limited sizing but if you are in smaller size you might be better off going with Thinktank's module belt system instead of the Speed Racer. For the record, you can buy the modular belt system and Speed Racer for about the same price.

I'm going to follow up this post in a few months to see how a long term review of the bag is and update with nay problems I may discover. So far everything looks great!