2011-03-13

My list of favorite Android apps

I recently had to hard reset (i.e. factory reset) my Nexus One, meaning all the apps I had installed were gone, so I thought I'd list the apps I had on it or want on it to help me reinstall all of them and for future reference. Admittedly I should have done this before the hard reset since my brain's memory isn't very reliable. But what the hey!

The side effect is that my faithful readers may benefit from my suggestions. I will probably update this post as I see fit.
  • Words with Friends: The Android version of this game is extremely buggy at the moment (it crashes about 6000 times before I manage to finish a turn), but it was the first app I reinstalled so I could continue the games I was playing with my friends. A pleasant side effect of the hard reset was that games that had disappeared (due to bugs in the game I presume) magically reappeared. My opinion is that many of the bugs are due to the profuse use of ads. I would buy the paid version, but there isn't any for Android yet.
  • Scrabble Helper: For amazing your friends on how many obscure words you know in Words With Friends. OK, so it's cheating.
  • Google Sky Map: This is simply awesome! Don't know what that shiny thing in the night sky is? Just start up Google Sky Map, point your phone at it, and you'll amaze your friends with your astounding knowledge of astronomy. ("Oh, that's Venus.") Or point it at the day sky to see what you would see if the sun wasn't blotting everything out.
  • Satellite AR: Google Sky Map only shows you natural objects, but this app shows you satellites, space junk and all kinds of other man-made objects in the sky. It's especially fun to follow the International Space Station, which you can actually see with the naked eye, but who knew that without this app?
  • Iridium Flare Forecast: Satellite AR will show you what's happening right now, but this app will tell you when and where in the sky to look for the next pass of a satellite or the ISS. Now you can plan ahead for when to amaze your friends!
  • Google Goggles: There's not much I can add to what's already been said about this amazing app. Am I using the word "amaze" too much here? Well, I am amazed at everything you can do with these tiny handheld devices.
  • Barcode Scanner: Google Goggles does what this does and more. So why did I add this? I don't know. Go ask your mother.
  • Microsoft Tag Reader: You know those 2D "barcodes" with little black-and-white squares instead of bars that are called QR codes? Those things are great. You can do all kinds of stuff with them after you scan them with Google Goggles. So what does Microsoft do? The same thing they do with all great ideas. They reinvent them so they can brand them with the Microsoft name. I'm surprised they haven't come up with the "Microsoft Wheel" yet. Anyway, in case you see 2D "barcodes" with little colorful triangles (or other shapes) instead of black-and-white squares, they serve the same purpose as QR codes but are called Microsoft tags and you need a separate app to be able to read them. This is it. I only ever needed it to see a video about body painting after seeing a Microsoft tag in a magazine ad for the Sports Illustrated Swimsuit Edition. (By the way, barcodes [with bars instead of squares or triangles] are 1D.)
  • Google Translate: This isn't quite a Star Trek universal translator, but it's getting there! Did I say it's amazing?
  • LEO dictionary: My favorite German-English dictionary. I also use it for German-French, German-Spanish and German-Italian.
  • Amazon Kindle: I didn't consciously choose this over other e-book readers. It's just the first one I happened to install. Still working my way through the free e-books.
  • Cardio Trainer: This is similar to Google's My Tracks, except that you're not limited to exercise where you move from one place to another. I use it mostly at the gym. Another advantage is that it automatically exports to Google Health, which Google's own app doesn't! The free version is adequate for me.
  • Blood Pressure Log: I use this to record and analyze my blood pressure, pulse and weight. It makes great graphs that you can export or send to e-mail addresses. It was worth it to me to make a small donation so it's ad-free. It doesn't export to Google Health yet, but the developer has said he's working on it. I don't know of any Android blood pressure app that exports to Google Health.
  • Catch Notes: This used to be called 3banana, and I use it to take text notes in all kinds of situations. No more searching around for pen and paper. It also syncs automatically to the web version. Its features have grown immensely since I first installed it. I just hope it doesn't get too bloated.
  • D-Measures: I work for a company that makes shower enclosures. With this app you can, for example, take a picture of your bathroom, then add little measurement lines with arrow points. For example, you can add dimensions of where you want your shower, e.g. 90 x 100 cm and 200 cm high. You can also add angles. Then e-mail the result to your bathroom supplier for an offer. The uses are (almost) endless. It costs $1.99 and has a 15-day free trial version.
  • Compass: For when you need a compass. I don't recommend using it while driving on the freeway to figure out if you're going the wrong way.
  • Mein A1: The remarkably featureless app of my mobile phone plan provider. For example, it doesn't tell me how high I've run my roaming fees or warn me if it gets higher than a certain amount.
  • Kik Messenger: Send text messages without paying highway-robbery texting fees. Supposedly similar to BlackBerry Messenger, but I don't have a BlackBerry, so I wouldn't know. The disadvantage is that both partners need Kik Messenger, so if your partner doesn't have a smartphone you're out of luck.
  • Skype: Use your data plan instead of your telephony plan to call someone for times when it would be cheaper that way.
  • Microsoft Tag Reader: You know those 2D "barcodes" with little black and white squares instead of bars that are called QR codes? Those things are great. You can do all kinds of stuff with them. So what does Microsoft do? The same thing they do with all great ideas. They reinvent them so they can brand them with the Microsoft name and hope to make billions of dollars with it. I'm surprised they haven't come up with the "Microsoft Wheel" yet. Anyway, in case you see little 2D "barcodes" with little colorful triangles instead of black and white squares, they serve the same purpose as QR codes but are called Microsoft tags, and you need a separate app to be able to read them. This is it. I only ever needed it to see a video of the history of body painting after seeing a Microsoft tag in a magazine ad for the Sports Illustrated Swimsuit Edition. (OK, I know you can store more information in them because of the colors, but basically it's a reinvention of the wheel.)
  • Labyrinth Lite: One of the few games in my list, I don't play it much, but I like to keep it installed to show people some of the amazing things you can do with a smartphone. Yes, I still have some friends who don't have a smartphone.
  • Lotus Notes Traveler: My work mail, calendar and contacts apps. Unfortunately they don't sync with Google Mail, Calendar and Contacts, but at least I can check both calendars when making a new appointment, and I can answer work e-mails when I'm at a seminar or whatever for work.
  • Calvin and Hobbes: 'Nuff said.
  • Daily Dilbert: 'Nuff said.
  • Dropbox: Syncs your files online and across devices for access anywhere. Also a good way to send someone large files.
  • eBay: Everybody's favorite auction site.
I don't really see much point in installing competing apps to the ones pre-installed on my phone such as: Browser, Calculator, Calendar, Clock, Facebook, Gmail, Gallery, Maps, Navigation, News and Weather, and YouTube. The two exceptions are:
  • Winamp: Since Google Music is still vaporware and even if it was available wouldn't be available outside the US for about umpteen years, I used the Winamp app along with Winamp on my PC to import my iTunes library and sync that with my Nexus One. UPDATE: I would probably prefer Amazon Cloud Player, but it's not available outside the US. Darn!
  • TweetDeck: Lets you manage several Twitter accounts without having to log off and on all the time.
Following are apps that I'd kinda love to have or at least try out but can't because they're not available outside the US. Come on, guys!
  • Google Voice: Competition for Skype.
  • Square: Accept payments from anyone with an e-mail address on your Android device. Not even PayPal can do that, because the payee needs to have a PayPal account. People are much more likely to have an e-mail address than a PayPal account.
  • Amazon MP3: Including Cloud Player
And finally I'm testing the following:
  • Qype: A place rating service that seems to be based in the UK. It doesn't recognize some large cities in the US, for example Fairbanks, AK.
  • Xing: A business-oriented social network sorta like LinkedIn.
I'm looking forward to your comments on the apps above and on your favorite apps. I plan to update mine above as occasions arise.

2010-02-13

Comparison of online invoicing systems

In my first post I promised an evaluation of online invoicing systems. Well, I finally got around to it. Which is to say our current system finally got unbearable enough. Our current system is  Excel Invoice Template by office-kit.com. The price couldn't be beat; it was about $30 one-time. And it served us well for several years. The developers were responsive to e-mail support requests, and with their help I learned how to add custom address fields and modify the Excel template to our needs. However, it was just these modifications that messed us up when we upgraded from Windows XP to Vista. They just didn't work any more.

That's when I decided to look into a cloud-based system. It looks like the office-kit.com system has evolved in the meantime, but with a cloud-based system I don't have to keep checking if the software has updates. It updates automatically. And I don't need to worry about surprises and headaches when I update my operating system.

Besides we're ready to evolve ourselves to a system that is more sophisticated than an Excel add-in.

First I defined our needs and then based my evaluation on them. Your requirements will be different, so don't take my review for gospel. Also keep in mind that this is a snapshot in a quickly evolving area. By the time I publish this, I'm sure many of my assertions won't be true. However, I like to think some people can benefit from the work I put into the evaluation.

Here are our current requirements:
  • Mainly an invoicing system for goods rather than services. Customer order entry, ordering from suppliers and payment reminders might be added benefits.
  • Affordable price for a home-based business.
  • Multiple languages. We are based in Austria and ship internationally, so we need to define the language the customer prefers.
  • Multiple currencies. See multiple languages above.
  • Line discounts, that is, the ability to define a discount for each line of the invoice. This is important when invoicing other companies rather than end consumers.
  • Line tax rates, that is, the ability to assign a different sales tax rate to each line, article or product group. For example, books have a different tax rate than CDs in Austria.
  • Output invoice in PDF format, for e-mailing and storing.
  • Customer database, that is, the ability to enter customers and select them when invoicing rather than entering the entire address for each invoice.
  • Product database, that is, the ability to enter products and select them when invoicing rather than entering the entire item description for each invoice.
  • The ability to import customers and products from our current database.

And here are the online systems I tested or at least looked at:

Google Checkout
http://checkout.google.com
Country: us, uk
Price: 2.9% + $0.30 per transaction
Multi-language: ?
Multi-currency: no (GBP with separate account)
Line discount: no lines
Line tax: no lines
PDF output: no
Customer database: no
Product database: no
Comments: customer must sign up for Google Checkout, no PayPal, no bank cards

PayPal
https://www.paypal.com
Country: several
Price: 1.9% to 3.4% + EUR 0.35 per transaction
Multi-language: no (except multiple accounts)
Multi-currency: yes
Line discount: no discounts
Line tax: no
PDF output: no
Customer database: no
Product database: no
Comments: Google Checkout and PayPal aren't really invoicing systems but checkout/payment systems, but I wanted to see if they would fit our needs. They don't.

OnlineOffice
http://www.winweb.com
Country: uk
Price: GBP 142.80/yr. + tax (EUR 13.80/mo.)
Multi-language: no
Multi-currency: ?
Line discount: no
Line tax: yes
PDF output: yes
Customer database: yes
Product database: yes
Comments: complex, complete business office solution

FreshBooks
http://www.freshbooks.com
Country: ca, us
Price: free to $149/mo.; $39/mo. for 500 to 2000 customers
Multi-language: no
Multi-currency: yes
Line discount: no
Line tax: yes, up to 4 tax rates
PDF output: yes
Customer database: yes
Product database: yes
Comments: invoicing, time tracking, expenses; very active on Twitter; added multi-currency since my first post

Smart Invoice
http://www.smartinvoice.com
Country: us
Price: $39/mo. for 25 to 5000 customers
Multi-language: yes, but not clear if one can invoice in different languages simultaneously
Multi-currency: yes, but price is not converted
Line discount: no
Line tax: yes
PDF output: no
Customer database: yes
Product database: no
Comments: invoicing for freelancers and small businesses; was AcuInvoice; addresses only in US format

Saasu
http://www.saasu.com
Country: au
Price: AU$25/mo. up to 2GB
Multi-language: no
Multi-currency: yes, with exchange rates
Line discount: no
Line tax: yes
PDF output: yes
Customer database: yes
Product database: yes, including inventory control
Comments: online accounting

CurdBee
http://curdbee.com
Country: lk, us
Price: $5/mo. for Pro version
Multi-language: no
Multi-currency: yes
Line discount: no
Line tax: no
PDF output: yes, in Pro version
Customer database: yes
Product database: yes
Comments: replied to my initial tweet; billing for small businesses & freelancers; they let me test the Pro version for 24 hours after asking for it

invOOice
http://www.invooice.com
Country: es
Price: $5/mo. for Pro version
Comments: replied to my initial tweet; invoicing, customer relationship management; currently in test phase, sign up to be notified when demo accounts become available

Harvest
http://www.getharvest.com
Country: us
Price: $12/mo.
Multi-language: translations, but no multiple languages
Multi-currency: yes
Line discount: no
Line tax: yes
PDF output: yes
Customer database: yes
Product database: no
Import clients/items: no
Comments: replied to my initial tweet; time tracking, time sheet and invoicing; time tracking via Twitter commands

Intervals
http://www.myintervals.com
Price: free to $175/mo.
Comments: replied to my initial tweet; emphasis on time tracking, task management and project management

Zoho Invoice
https://invoice.zoho.com
Country: us, in
Price: $15/mo. for 150 to 500 invoices/mo.
Multi-language: yes, via custom templates
Multi-currency: yes, with exchange rates
Line discount: yes
Line tax: yes
PDF output: yes
Customer database: yes
Product database: yes
Comments: replied to my initial tweet; invoicing; integrates with other Zoho modules; custom address fields is a big plus

MeinAuftrag.net
https://www.meinauftrag.net
Country: de
Price: up to 10 addresses free, up to 50 addresses EUR 4.95 + tax, up to 100 addresses EUR 9.95, over 100 addresses EUR 14.95
Multi-language: yes, via custom templates
Multi-currency: yes, with multiple currency fields in item database
Line discount: yes
Line tax: yes
PDF output: yes
Customer database: yes
Product database: yes
Import clients/items: not yet implemented but will import for you at no charge on request
Comments: user interface German; very responsive to e-mail support calls and feature requests

If your requirements are similar to ours and you understand German, you might want to try MeinAuftrag.net. If you don't understand German, then you can try Zoho Invoice.

In addition to our main requirements above, MeinAuftrag.net also lets you maintain suppliers and make orders. Future possible requirements that it doesn't have (yet) is inventory management, sales reports, and exporting data.

2009-12-27

AC/DC concert threatens rare birds

There's a story spreading like wildfire on news and blog sites (http://tinyurl.com/ac-dc-concert-birds). Very many of them have exactly the same wording, and many don't quote their sources. Here's an example:
"Rockers AC/DC may have to cancel a sold-out concert because their big sound poses a danger to rare birds.
Animal rights campaigners are threatening legal action if the band goes ahead with a gig planned for Wels airport in Austria in May.
Hans Uhl of BirdLife said birds nesting in the area at the time would be threatened by anthems such as 'Highway To Hell' and 'You Shook Me All Night Long'.
'The second biggest colony of curlews in Upper Austria and various other ground-nesting birds must not become endangered,' Mr Uhl said.
The 80,000 tickets for the event sold out within hours, after going on sale earlier this month."
 (I got this from http://www.skynews.com.au/showbiz/article.aspx?id=411151.)

I'm a hard-rock fan myself and enjoy AC/DC's music (although I prefer Alice Cooper for example), but let's get a few facts straight here:

Eurasian Curlew nest and eggs
Eurasian Curlew nest and eggs
(photo: Wikipedia)

Many of the blog replies go something like this: "It's an airport, for heaven's sake; can't the birds take a few hours of AC/DC music?" Yes, they probably can. It's not the music that threatens the rare birds but the 80,000 fans unwittingly trampling the nests, young birds and eggs that are actually laid directly on the ground where the concert is to take place in the middle of the breeding season. The stage would also be built directly on the same ground where many of the nests are. Note the "ground-nesting birds" in the quote attributed to Hans (a friend of mine, by the way). The stage and audience area will take up the entire meadow where the nests are.

BirdLife, the group Hans Uhl represents, is not an animal rights group (http://en.wikipedia.org/wiki/Animal_rights) composed of activists or campaigners, as stated in the reports, but a wildlife conservation group (http://en.wikipedia.org/wiki/Wildlife_conservation) composed of ornithologists (including me, by the way). There's a big difference between those kinds of groups.

Juvenile Eurasian Curlew at Wels airport
Juvenile Eurasian Curlew photographed at Wels airport by © Josef Limberger
BirdLife is not requesting cancellation of the concert but postponement till after the breeding season when the young have hatched and gotten out of harm's way (or relocation of the concert).

Some of the blogs imply that Hans thinks the bird species in question will die out ("be wiped out"). This is not true, but it is true that this particular colony of these rare birds could be wiped out, never to return, if all their nests are trampled this year. I will happily name the various bird species in question to anyone interested (it's not only curlews).

There are plans to protect the meadow as a natural area. It isn't one yet, or else this wouldn't have happened. However, the town of Wels, where the airport is located, neglected to inform the organizers that they need to go through a permit procedure involving government conservation agencies before they started selling tickets.

Adult Eurasian Curlew at Wels airport
Adult Eurasian Curlew photographed at Wels airport by © Josef Limberger
All this doesn't come out in the original reports that all the online sources refer to, quote and/or copy, but I live here and am involved with the issue, so I know better.

As a strange twist of irony, the UN has declared the day of the concert (May 22) as the International Day for Biodiversity (http://www.cbd.int/idb).

Here's Wels Airport. As you can see, it's a little smaller than, say, Chicago O'Hare. The airport's own website (http://www.wmw.at/Aerodrome/Aerodrome_Nature.aspx) brags about rare species of plants, bees and frogs as well as birds. The site's in German, but it has nice pictures :-)

View Larger Map

2009-09-15

Migrating a web server from a hard drive to a portable drive

When it was time to retire my 3-year-old Dell Inspiron laptop, I decided to buy an Asus Eee PC netbook. I did all my web application development on the laptop, whereby the application and development environment were on the hard drive. Although the netbook's hard drive is large enough to contain everything, I decided to take this opportunity to try putting a running web server along with a large, database-driven web application on a portable drive. I would reinstall the development environment on my netbook, but put the web server and application on the portable drive.

The main advantage of a portable drive is not development, but demonstrations in situations where the Internet is not available or either very slow or very expensive. I can just copy the portable drive to another portable drive (I need the first one for development) and use it myself or give it to the person going to the trade show. Since I won't be the only one doing demonstrations, the web server needs to be easy to start. Previously, I would ask to have the other person's laptop for a few days to get the pre-installed web server and application up-to-date. I had to be sure several installations on several laptops were at the same stage of development. Now I just delete everything and copy from the master installation.

Instead of migrating I could have downloaded the latest version of XAMPP and installed it on the portable drive. However, I wanted to be sure all the versions of the various components and all settings in all the configuration files were the same as on my development system in order to avoid unpleasant surprises.

XAMPP is small enough to put on a 4 or 8 GB USB flash drive with 2.5 to 3 GB for all its files, but my application with all its media files needs several times that, so I bought a 250 GB external USB hard drive for the purpose.

Here are the steps I took to migrate my XAMPP web server and applications from a Windows PC hard drive to a portable drive. It should also work with any other Winsows-Apache-MySQL-PHP system. My terminology is from Windows XP, but everything should work analogously for Windows Vista.

* Make sure the portable drive is large enough for the XAMPP directory and any web documents not included in XAMPP directory.

* Copy the XAMPP directory and any web documents not included in the XAMPP directory and any directories in the PHP include_path directive, for example, copy C:\xampp\*.* to E:\xampp\*.*

* If Apache or another web server like IIS is already running on the target system, you will need to disable it. For Apache, look for xampp_stop.exe, usually in C:\xampp, and run it. If Apache, MySQL or other modules are running as Windows services, it would probably be best to deactivate the services.

* Since the configuration files are (probably) full of drive letters, and portable drives are assigned drive letters dynamically, we need to remove the drive letters from the configuration files: Remove all occurrences of the source drive letter (usually C:) in the following configuration files:
o \xampp\apache\conf\httpd.conf
o \xampp\apache\conf\extra\httpd-xampp.conf
o \xampp\apache\conf\extra\httpd-ssl.conf
o \xampp\apache\bin\php.ini
o \xampp\mysql\bin\my.cnf
o Any other configuration files you use. Look in the directories above.

* The lines in the configuration files will be changed, for example, from 'ServerRoot "C:/xampp/apache"' to 'ServerRoot "/xampp/apache"'.

* Caution: Be sure NOT to run \xampp\setup_xampp.bat. Otherwise the current drive letter of the application will be added to all the path names. This batch file is not meant for portable installations.

* Tip: If you don't see .cnf file endings in Microsoft Explorer, and the icon for "my", etc., looks like a small curved arrow, then Windows has associated the ending .cnf with NetMeeting, and you can't edit the file by double-clicking or right-clicking it. Run your favorite text editor (for example, Start > Run > Notepad) and open the file from within the editor or drag the file to the editor.

* Optionally export your favorites/bookmarks from the source machine, rename the file to index.html, and put it in the root directory of the portable drive. The links to your web applications should have the form http://localhost/(application/) and don't need to be changed, but if you have links to HTML files that were on the hard drive, they will no longer work. You can consider changing them to the most likely drive letter, perhaps E:.

* Tip: A common conflict is Skype or another application listening on the same port as Apache, usually port 80. End the offending application or change the port Apache listens to (the Listen directive in \xampp\apache\conf\httpd.conf), or change the port the other application listens to. In Skype, for example, remove the checkmark next to "Tools > Options > Advanced > Connections > Use port 80 and 443 as alternatives for incoming connections", depending on your version of Skype.

* Optionally create a batch file named start.bat with the following contents, and put it in the root directory of the portable drive (this starts the XAMPP modules and then starts the bookmark file created above in the default browser):

cd \xampp\
start /min xampp_restart.exe
cd \
start index.html


* I created a second batch file called start2.bat with the following contents:

@echo off
cd \xampp\
start /min xampp_restart.exe
\PrcView\pv.exe -r1 -d1000 apache.exe > nul
\PrcView\pv.exe -r1 -d1000 mysqld.exe > nul
start http://localhost/workspace/heli/index.php


This batch file uses a free utility you can find at http://prcview.com to determine if Apache and MySQL are already running before starting a specific PHP application in the default browser (adapt to your situation). Be sure to include the PHP file in the last line (here "index.php") because otherwise some systems may display a missing parameter error.

* Run \xampp\xampp_restart.exe.

* If Windows Firewall asks whether it should continue blocking Apache HTTP Server or mysqld, reply with "No longer block". You only need to do this once per PC.

* If you get any errors about not finding files, see the step above about removing drive letters in configuration files.

* Test the installation with http://localhost in a browser.

* Optionally create a batch file named stop.bat with the following contents, and put it in the root directory of the portable drive (to be executed before removing the portable drive from the computer):

cd \xampp\
start /min xampp_stop.exe


* Optionally create a text file called autorun.inf in the root directory with the following contents:

[autorun]
open=start2.bat
icon=\xampp\htdocs\application\favicon.ico
action=Name of Application


This will cause a menu item to be added at the top of the Autorun window that opens when you insert the drive into a PC. Adapt the three directives to your situation.

* Depending on the purpose at hand, you can change the "open" directive to start.bat or start2.bat.

* Whoever is doing the demonstration needs to know not to close the minimized Apache application. To end the application, he/she must run stop.bat. Not until then can the portable drive be removed. Don't forget to also click the little green arrow to remove the hardware safely as with all portable drives.

See the eHow version of this post here: How to Migrate a Web Server From a Hard Drive to a Portable Drive

2009-08-22

Converting MS SQL and/or MS Access to MySQL

For a current project I had to convert an MS SQL database to a MySQL database. I did not have access to the MS SQL server, but the previous database administrator provided me with a dump of the database creation statements and an MS Access file with the data.

Being unfamiliar with MS SQL, I assume he used BACKUP or BCP to create text files that contain the necessary MS SQL statements required to re-create the database structure (that is, scripts) then another tool such as MS DTS to export the data to MS Access.

The text files delivered were DB_Table_Creation.sql, DB_StoredProcedure_Creation.sql, and DB_Transaction_Creation.sql. Since the application will be rebuilt from scratch, I was only interested in DB_Table_Creation.sql.

The Access file delivered was xxx_tables_yyyymmtt.mdb.

To import the Access data I downloaded and installed the free MySQL GUI Tools, which include MySQL Migration Toolkit (as well as MySQL Administrator and MySQL Query Browser, which I will have to check out later): http://dev.mysql.com/downloads//gui-tools/5.0.html

To run MySQL Migration Toolkit you will need access to a functioning MySQL server.

While running MySQL Migration Toolkit I got the following error message:

"The connection to the target database could not be established (error: 0).
ReverseEngineeringMysqlJdbc.getVersion :Unknown initial character set index '48' received from server. Initial client character set can be forced via the 'characterEncoding' property."

After finding this error message described here: http://bugs.mysql.com/bug.php?id=25233
I realized that I had previously played with changing character sets and collations, so I followed the suggestion mentioned there and didn't have any further problems.

At the "Object Creation Options" step, I checked the option "Create Script File for Create Statements" to compare it with the table creation script from MS SQL. Note or change the path, so you can find it later (the default is "My Documents\Creates.sql").

The "Bulk Data Transfer" step may take a while depending on the amount of data, so don't assume the program has crashed. You can click "Advanced >>" for more information, but it appears to output an empty line for every row of data imported, so don't be alarmed.

When the transfer process was finished I compared the MS SQL script file provided by the previous database administrator with the one created by the Migration Toolkit to see if there were any huge discrepancies. The MS SQL file defined some fields with NOT NULL while the Migration Toolkit created them all with NULL; no big deal. The data types seem to have been converted correctly (at least with no data loss), considering their differences between MS SQL and MySQL. The VARCHAR fields with specific lengths were converted to LONGTEXT fields with no length given. This seems wasteful for VARCHAR fields defined with a length of 2 for example, but at least no data was lost. BIT fields were converted to SMALLINT(5): more waste but at least no loss. CHAR fields with a length of 10 were converted to VARCHAR(10). DECIMAL fields were also converted with their exact length. DATETIME fields became DATETIME fields. DEFAULT values were not defined in the target database; the new application must take this into account, or the fields must be altered after conversion. It appears IDENTITY(1,1) for example is meant to identify primary auto-increment keys. This definition is lost in the target database, as is all other key information (PRIMARY KEY, UNIQUE, etc.).

An alternate method of converting the database would have been to adapt the MS SQL script to MySQL as well as possible using copy/replace, and then run the script in MySQL. Then you would need to export the Access data into some sort of text file and load it into the new MySQL database with LOAD DATA INFILE. But that would require a much better understanding of the MS SQL CREATE TABLE syntax than I have and an installed version of MS Access, which I don't have.

See a more detailed version of this blog post on eHow:
http://www.ehow.com/how_5334020_convert-andor-ms-access-mysql.html

2009-08-18

First Post

OK, I know there are about umpteen other blogs out there called "Robb's Blog", but I couldn't think of anything cleverer. I'd be happy to hear any suggestions.

I plan to use this blog for reports of my evaluations of various (IT) products and whatever else comes to my mind.

At the moment I am evaluating online (also call hosted or web-based or in-the-cloud) invoicing/billing systems and online bug-tracking (also called issue-, problem-, defect- and ticket-tracking) systems.

Soon after I twittered the following:

"dellfalconer is evaluating online billing/invoicing systems."

I got tweets back from:

curdbee
onlineinvoicing from invooice
Nagendr4mzoho from Zoho
harvest
jjriv from Intervals

This indicates a dedication to customer interaction that I find refreshing, so I will try to include the ones I hadn't heard of in my evaluation and have another look at the ones I had heard of.