It was easier in the days of the big tower cases to just add in more hard drives, or replace an existing drive with a larger capacity on. But today with the ever increasing use of notebook computers, that is not so easy.  I have therefore become dependent on using external hard drives.  Being a Mac user currently, that means either a USB2 or a Firewire 800 interface.  Apple, once the leader in using Firewire, seems to have abandon it and no longer offers it on all their computers.  That leaves many to use the slow poke USB2 drives.  The new USB3 interface will be much faster, but few computers use it and no Apple products.  There is no telling when, or if, that will happen.

So I have been faced with the decision of either buying a USB2 drive, which are often heavily discounted in price, or buy a Firewire 800 drive at a premium price.  In both cases the internal hard drive is the same, the difference is just the interface.  To address this situation, Seagate has introduced their GoFlex drive series, in both portable 2.5 in and desk bound 3.5 in drives.  Each drive has a removable and interchangeable base that offers different interfaces.

Segate sells several different interfaces, including USB2, USB3, FireWire 800 and even Network Attached Storage (NAS).  I purchase a 2 Tb drive that came with a USB3 interface.  With the Black Friday sale, it cost me $89 at Best Buy.  I then added a Firewire 800/USB2 module for another $20.  Total price is $110, far cheaper than any 2 Tb Firewire drive I could buy.

In less than a minute I swapped the USB3 base for the FireWire 800/USB2 base, keeping the USB3 base in case Apple releases a computer with that interface.

The FireWire 800 base has two FW800 ports, which is important so I can daisy-chain this new drive with my other FireWire drives.  The only problem is that all the connectors are on the thin base unit, making cable management harder.  One FireWire connector is on the side and one on the back.  It just means you can not have the drive placed on your desk right next to something to it’s one side where the cable plugs in.

In only minutes I had inserted the drive into my Firewire chain and it showed up on my computer.  The drive comes formated as NTFS, but on it I could see a Mac program, which I ran.  It gave me the option to leave the drive as NTFS and install a driver to allow my Mac to not only read the NTFS partition, but also write to it, or, format as a Mac drive.  I chose the later.

The program then installed some additional Mac software, a nice touch for a world of drives that mostly have ignored the Mac.

Benchmarking

Without even the need to launch Disk Utlity, the drive was formated as a Mac format and showed up in the finder.  I then did some tests to see how fast it was.  The internel drive is only 5900 rpm, so I knew it would have some limits.

First I tested the drive using the USB2 interface and then repeated using the FireWire 800 interface.  This chart shows the results for a random write test.  The Green bars for USB2 were slower than the blue bars representing the FireWire interface.  The difference was not as much as I have seen with other drives.

I then did a comparison with this new GoFlex drive and a Western Digital 1 Tb drive that I bought with a FireWire 800 interface.  You can see from the chart below that the Western Digital drive (green columns) was significantly faster than the new Seagate GoFlex drive (blue columns).  Since both drives are using a FireWire 800 interface, it was surprising.  The difference must be a function of different drive rotation speeds and maybe the efficiency of the FireWire interface.

Conclusion

The Seagate GoFlex system is a great idea that could provide the option to update the interface of the drive as USB3 or other formats come along.  Even with the cost of buying the FireWire 800 module, it can be much cheaper than buying a dedicated FireWire 800 drive.  My experience is that FireWire drives are priced as niche products and not heavily discounted.

That said, the Seagate GoFlex drive was not as fast using the FireWire 800 interface as it should be.  When there is a need for the best speed you can get, such as video editing using an external drive, you might want to look elsewhere.

Apple TV Gets it Right

I remember when the Apple iPad was released and I looked at it’s features and thought it would not be very successful.  It just did not have the right functions and features.  Once again I was wrong because Apple knew better what people really wanted, even maybe needed, more than most of the technically oriented pundits.  I have lived long enough to know when TV was really simple.  You had your single knob to change the channel, rotating it from channel 2 through 13.  You had another knob for the volume and a third knob to turn the TV on and off.  All the knobs where different and you never made the mistake of using the wrong knob.

Fast forward to today and you ended up with many electronic devices that do far more than that ancient TV, but frankly have terrible interfaces.  Take your typical remote control today, most likely designed by someone in Japan, who might be great engineers but have no idea about human factor engineering.  They make all the buttons tiny, all the same size and the labeling is in brown on black, almost unreadable.  I guess we are suppose to be amazed at how many different functions they cram into the remote control.

I had an extra Macbook computer that is hooked up to my TV which could do most anything.  So when I was watching Steve Jobs introduce the new Apple TV I was not sure I needed it.  However it seemed interesting and the price of $99 was so low it was worth buying one just to see how it worked so I placed an order for it knowing it would not ship for about a month.  Before the end of September, just as promised, I received the device by mail, shipped directly from China.  I was struck by how small the shipping box was.

Inside was a square box that was beautifully packed, as you would expect from an Apple product, was the Apple TV, the power cord and the tiny remote control.

There was no included HDMI cable, but what do you expect for something so cheap.  I was taken back by how small the Apple TV was and very impressed with the power cord.  No big brick power supply like comes with so many devices now days.  In fact the entire contents of the box were not larger than the typical power supply bricks of some gadgets.  The cord was nicely wound, with a plastic loop, not packed with a twist tie like so many cords today.  As usual, Apple knows how to present things right when you open the box.

The back of the Apple TV has very few connectors but I only need two, one for the HDMI cable and one for the power supply.  I don’t have an internet cable down to my family room so I was using the WiFi.  So it took only a minute to connect it and switch my audio/video receiver over to the the HDMI port connected the Apple TV to.  Soon I was connected to my Apple wireless router upstairs and off and running.  There was a small user manual in the package but no need to even look at it.  The interface is simple and the remote control even simpler to use.

There are actually seven buttons on the remote control but it feels like only three,  The tiny remote fits nicely in your hand and in no time I am using it to control everything without even looking down at the remote.  Image doing that with most remote controls that seem to think the more buttons the better.  The Menu button acts like the back button and takes you back where you were, or up the menu structure.  There is a play/pause button that works as expected.  Then there is a click wheel, used to move in four directions with a select wheel in the middle of the click wheel.  Simple but highly effective when coupled with the interface.

I quickly was able to connect to my Mac’s iTunes library on my computer upstairs and play anything from it, including movies or podcasts.  The Apple TV also supports many podocasts which you can mark as a favorite to quickly find.  I then tested the Netflix steaming, one of the features I most used with my connected Macbook computer.  I was surprised how slick the interface was, much better than what Netflix itself offers over a web browser.  Streamed content looked great, even over 802.11N WiFi.

What does the Apple TV lack?  There is no way to check email, no web browser, and no internal hard drive.  However it does have 8 Gb of on-board flash memory to cache rented movies.  I rented the movie “Robin Hood” and was surprised it would take over an hour to download it, but that was a function of my slow internet connection.  The Apple TV determines your download speed and has you wait until it caches enough of the movie so that once you start to play it, you will not be interrupted while you watch in high definition.  This is different than Netflix that lowers your quality to match your download speed.  The movie looked great.  I knew that the Apple TV movie was in 720p, not 1080p, but on my 42 in. LCD TV I was not really able to tell the difference.  It looked about the same as my BluRay disk player.

I have now disconnected my Mackbook from the TV and use only the Apple TV.  It is instantly on, no need to fumble with a keyboard and mouse and go through a computer interface to do something simple like view a Netflix movie.  Steve Jobs was dead on when he talked about what users wanted and why they designed the Apple TV as they did.  Inside the Apple TV is essentially the same components as the Apple iPad and runs on the same iOS.  So it can be enhanced as Apple decides to.  However for now I am happy with what it does, which is 95% of what I used my Macbook on my TV for.  Once they release Apps for it, it will be even more useful.  Next month they will release the new iOS for the iPhone and iPad so you can stream from them to the Apple TV using something called AirPlay.  Once again Apple gets it right and keeps it simple and easy to use.

Maintaining an Emergency Contact Database

I was asked to come up with an emergency contact database for our church.  Although the church does have a membership roster, it does not include things such as emergency contact information, or other important information that could be used in event of some situation, such as a major earthquake.

I decided to use FileMaker Pro for this.  It was easy to create a home screen with the basic information, including the person’s name, address, cell phone numbers, and emergency contact information.  I also included resource material, assigned them to a emergency response zone and so forth.  Click the image below to view enlarged.

The program allows the user to click on a link to show the individual family on a city map.  For privacy reasons an example is not shown here.

You can also print various reports, such as a list of all families by emergency zone.  Those emergency leaders over each zone can be given up to date paper copies for all the information for families in their zone.  For privacy reasons an example is not shown here.

I decided to use create on FileMaker Pro for these reasons:

  • I can create a program for use on either Windows or a Mac since who will maintain this going forward is never known.
  • I can create a self standing program for use by others without the cost to buy a database program
  • I was able to import the data from the ward’s membership database to get started

For more information, please select the Contact Us at the top.

These are the steps I followed to install phpMyAdmin on my local machine, which is a MacBook Pro.  Substitute your own user name for “franz”.

  • Download the zip file from http://www.phpMyAdmin.net .  I downloaded version 2.11. Although there is a later version.
  • After Unzipping the file, I copied the folder to my Sites directory under /users/franz/sites
  • Using the finder, I navigated to those files, and created a folder called config in the phpMyAdmin folder.  I then set the write permission to read/write for that folder
  • I renamed the config.sample.inc.php by adding .bak, since I will be creating a new file with this name.
  • I started the configuration program by opening up a browser and entering:
http://localhost/~franz/phpMyAdmin/scripts/setup.php
  • I clicked under Servers the “Add” button
  • The only item I entered was the root password for the MySQL installation I had done
  • Click Add
  • On the next screen, make sure you click the “Save” under the Configuration section
  • This created a new file in the folder I created called “Config”.  I copied that file up to the parent directory and then deleted the Config folder.
  • I tried to start by entering the browser: http://localhost/~franz/phpmyadmin/
  • I had this error, which can happen on a Mac because it is looking for a file that has been moved to a new location.

phpmyadmin-error

  • To solve this, I openned up the terminal window and after loggin in entered the following commands:
sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
  • I was then able to run phpMyAdmin by entering this into the browser
http://localhost/~franz/phpMyAdmin/
  • I then downloaded version 3 of phpMyAdmin and found the setup is a bit different.  You still have to create the config folder and make it read/write.
  • To configure use this URL instead:
http://localhost/~franz/phpMyAdmin/setup
  • Create a new server as shown above and then be sure to save the configuration.

With Leopard, the System Preferences pane is different.  There is now just a single option for web sharing.  Open System Preferences, Sharing and enable Web Sharing.  Apache2 is installed as a default.  You should see your local website using this in the browser (using your own user short name in place of “shortname”.

localhost/~shortname

If you upgrade to Leopard from a previous version of OS X, then you may get a “Forbidden 403″ message” instead of seeing your web page.  To fix go to this solution on the Apple website.

http://support.apple.com/kb/TA25038?viewlocale=en_US

Your web pages are stored in the folder /user/shortname/sites.  A default html page is located there, which should now come up.

MySQL is an open source database that is used by millions of people each year.  It is very robust and scalable.  But to access it usually requires some type of custom program or a MySQL front end.  There are other good database applications, such as Microsoft Access and FileMaker Pro.  These applications make it easy to design forms to add and edit the data, and to create custom reports such as mailing labels.  By using ODBC you are able to get many of the benefits of these local programs and the benefits of using a MySQL database.  This is how to get start.

OBDC Driver

First you need to install a ODBC driver if you don’t already have one.  A good source for a free driver is the MySQL website.  Look for the MySQL connector for the operating system you have. They have a version for Windows, Mac and Linux you can download for free.  Download one of the packaged drivers that include an installation program.

Setup The Connection

After you have the ODBC driver installed, you need to setup to use it to connect to your MySQL database. How you do that depends on your operating system.

Windows

Open the Control Panel, Administrative Tools, Data Sources (ODBC).  Click on the System DNS Tab and select to Add.  From the drop down select the ODBC driver you just installed.

odbc-connector-setup

Enter the information about your MySQL database, including the server and login information, then press Finish.

Mac

To setup for the Mac, it is similar.  In the Applications/Utilities folder you will find the “ODBC Aministrator” application.  Run that and select the System DNS tab, then click Add.  Select the driver you just added and then enter the login information for your MySQL database.  The form looks just the same as the figure above.

Connecting Microsoft Access to your MySQL database.

After starting Access, either open an existing database or start a new one.  Click on Tables and then click New.  Select the option for a Link Table.   For the File type, select ODBC databases.  Click on the Machine Data Source tab.  You should find the data source you setup in the step above, so select that, then select the table in the MySQL database you want to use.

If you have an existing Microsoft Application setup with a local database, if you export that data to a MySQL database using the same name, delete the table from the Access application, then add the MySQL table, it will use that table for the application in place of the local version you removed.  Your existing reports, queries and forms should work.

Connecting  File Maker Pro to your MySQL database.

Start File Maker Pro and either open an existing database or create a new local one.   Select File, Manage, External Data Sources.  Click on New and then select ODBC.  When you click the Specify button, you should be able to select the connector you setup already.

Conclusion

This tutorial is meant only to get you started  with installing an ODBC driver and making a connection to your MySQL database from either Microsoft Access or File Maker Pro.  Once you make that connection, you can then use the features in your database application with the MySQL table.  It should be noted that once you link the MySQL datbase to Access, it will be treated like a Access table and you would need to use Access SQL statements.  You will also find some limitations with this approach since some functions in Access will not work and some of the features of MySQL will not be available. But for many applications you will be able to work with Access as a front end to your MySQL database.

Previously I did some tests on various internal and external drives.  I just received a brand new Western Digital Passsport Studio drive.  This 500 Gb, 2.5 in, portable drive has three interfaces so I felt it would be a great way to test a comparision between USB2, Firewire 400 and Firewire 800.  I used Drive Genius to do the benchmarking.  It tests four different parameters, but to keep it simple the following charts are only for Random Write.  The green bar is the tested drive and the blue is the standard for a MacBook Pro internal drive.

My tests confirm that the slowest is USB2, followed by Firewire 400.  The Firewire 800 drive was MUCH faster.  Look at the charts to get a feel of how big of a difference the interface makes.  I also include a chart from the prior log entry of the internal 7200 rpm drive.

USB2

USB2 Interface

USB2 Interface

Firewire 400

Firewire 400

Firewire 400

Firewire 800

Firewire 800

Firewire 800

Internal 7200 rpm drive

wd320-internal-randwom-write

I was lucky to get a new 500 Gb portable hard drive for Christmas.  It was one of the Western Digital Passport series, a very small USB drive.  I already had 4 of these, 2 with 160 Gb, 1 at 250 Gb and 1 at 320 Gb.  One might think it all adds up to a lot of giga-bytes, but with hard drives, the larger capacity are much more useful than multiple drives that add up to that capacity.

Also laying on my desk are 3 different 2.5 in bare drives that have been removed from various notebook computers, 1 at 160 Gb, and 2 at 100 Gb.  I have an external dock I can plug these into, but what do I use them for?  They are too small to hold an image of my current Mac Book Pro hard drive.  It becomes a bother to split backups over multiple drives.  So they just kind of sit there, like paper weights.

I also have a 3.5 in, 500 GB bare drive sitting next to them.  It failed awhile ago.  It is still under warranty so I need to send it back to Maxtor to get a replacement, but I have not got around to it.  I guess I just have drives coming out the Ying Yang.

My new minimum sizes:

2.5 in drive – 500 Gb
3.5 in drive – 1 Tb

External Hard Drive Performance

In a prior blog entry I discussed swapping the internal drive on my MacBook Pro and how it’s performance improved.  I decided to run the same benchmark on several different external drives I have.  To keep the comparision simple, I will show graphs for only one parameter, random write.  I used Drive Genius 2 to do the benchmarking.

Internal Drive

First to repeat my internal drive performance.

Western Digital, 2.5 in, 7200 rpm, 16 mb cache, SATA II

Segate 500 Gb in my own FW 800 case

Segate 500 Gb in my own FW 800 case

This provides the overall best performance (green bars).  The blue bars are the stock Macbook Pro hard drive.

Now for the external hard drives, listed with the best performer first.

Firewire 800 Connection

SIIG External Firewire 800 case where I installed my own Segate, 500 Gb, PATA drive

Next is Maxtor One Touch III, 500 Gb, with a Firewire 800 interface.  Note that I have had issues using these drives on a Mac and ended up tearing apart a 750 Gb since the interface no longer worked.

The my latest purchase, a Western Digital Studio Editon, 1 Tb drive, with Firewire 800.

USB 2.0 Connection

Segate 750 Gb, SATA II, 7200 rpm drive inserted in a Thermalake USB 2.0 dock.

And finally a Western Digital, 250 Gb, Passport, 2.5 in. 5400 rpm drive.

When I get a eSATA card for my computer I can do some further testing.  Many of my drives also support Firewire 400 so I could test that, but this is enough for now.

My conclusion is that Firewire 800 is a very good interface for an external drive, much faster than USB 2.0.  The difference is far more significant than one would expect considering the theoretical difference in transfer rate is 800 vs. 480.  For 3.5 in drives on FW800, the random write was more like 4 times faster than when using USB, at least in the dock I have.

Moving Blog to Different Domain

A WordPress blog is a combination of three parts:

  • Web Hosting Control Panel.  This is only an issue if you wish to use the control panel provided by your web hosting company to install and update your WordPress installation.
  • Files on the domain (WordPress, configuration, plugins, templates, image uploads, etc.)
  • MySQL database with several tables.  Each starts with a $table_prefix variable (found in wp-config.php), with a default of “wp_”.

I have been keeping a blog dealing with photography. I initially put the blog under subdomain www.photo.franzkelsch.com. I decided to use get a new domain for my photography work and I wanted to move my blog to a subdomain there using www.blog.kelschphoto.com.

Since I was self-hosting using the WordPress blog publishing system on my own web hosting server with my own registered domain name moving the blog was not as simple as just exporting and reimporting the MySQL database. There are some steps that should be done to ensure the proper migration and no breaking links.  I also wanted to have my web hosting company install the new blog so I could upgrade it from their control panel.

Here are the steps I used to move my blog.

Backup Old Blog First

  • I made sure my old blog was running the latest WordPress software
  • I used FTP to download download all files from my old blog
  • I used the admin panel in my old WordPress blog to export the database.

Install New Blog

  • I first created a new WordPress blog in the subdomain using a brand new MySQL database table, including setting up user accounts.
  • From the FTP backup, I restored to the new location, the themes and plugins under “\ wp-content”  I has manually added to my old blog.
  • I activated the plugins and changed the theme to match.

Fixing the New Installation

  • Using the WordPress admin panel in the new blog, I selected to import the WordPress export from the old blog.  I checked the blog so it would find the uploads on the old blog and include them in the new blog.
  • To fix the links inside the blog I used phpMyAdmin on the newly imported database and issued these commands.

To update WordPress options with the new blog location:

These steps are not needed if you follow the new export/import functions show above
——————————————

UPDATE wp_table_prefix_options SET option_value = replace(option_value, 'http://www.old-domain.com', 'http://www.new-domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';

To fix URLs of the WordPress posts and pages:

UPDATE wp_table_prefix_posts SET guid = replace(guid, 'http://www.old-domain.com','http://www.new-domain.com');

——————————————

To update any internally links within blog posts or pages with absolute URLs first find the table_prefix in the wp-config.php file so you know the name of you tables.  Then do this SQL querry update

UPDATE wp_table_prefix_posts SET post_content = replace(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');

  • I then tested the new blog and when I determined all was working, I deleted the old blog.

Changing Database Name

I had started to accumulate so many blogs that the casual type names I had given to the databases got out of hand.  I decided to change the names of the database to be similar to the domain name where I was hosting the WordPress blog.  So if the blog is at sports.franzkelsch.com I would want to use a database that shows the type of data it contains and the domain it is associated with such as wp_sports_franzkelsch .  That would be enough for me to quickly know it is a WordPress blog that is hosted at sports.franzkelsch.com.  I am currently hosting my sites at Dreamhost and I can not just rename the database since the blog is setup to use a particular database.

Matters are more complicated when I wanted to use the control panel on dreamhost.com (where I host my domains).  If it were not for this, I could simple create a new MySQL database and import to it the contents of the old database, then edit the wp-confg.php file to show the new database name.  But to keep the right settings in my Dreamhost control panel, so I could use it to update the WordPress files in the future, I had to follow:

  • Backup the MySQL database (Use phpMyAdmin or some other program)
  • Backup all the files in the domain/folder
  • Use the control panel to remove the WordPress installation.  You must do this before deleting the old MySQL database.
  • Either wait for the hosting company to delete the files or use FTP to delete them from the domain/folder
  • Create a new WordPress blog using the new MySQL database name
  • Manually delete the files that were added to the domain/folder by this installation.
  • Restore your MySQL backup to the new database
  • Edit the wp-config.php file to change the name of the data base in your backup files
  • Restore the files to the domain/folder
  • Check all is working
  • Delete the old MySQL database
  • Do a new WordPress install using your web hosting control panel.
  • Restore the files you backed up since the new install will be missing all your uploads.
  • Restore the MySQL database backup since the new install of WordPress will overwrite this
  • Go to the Site Admin, select Settings, then Permalinks.  Click Save to recreate the permalinks.
  • Remove the old MySQL database

That will get things synced in your webhosting control panel. Not sure it is worth all the effort, however.