High Tech Sorcery

The easiest way to migrate a database from MySQL to PostgreSQL

by on Dec.20, 2013, under Development

I had to do this recently for a project. The difficult piece was sorting through the opinions of what the best tools and procedures for handling this migration was. So I tried a few until I found one that worked so well, so quickly that I decided it was worth sharing. Firs tthings I used that didn't work well and/or quickly and/or intuitively:

  • mysqldump with various options and various tweaks/scripts/editing of the dump file
  • pgloader

What did work well was py-mysql2pgsql. Once installed it was easy to set the configuration file options and run it. It worked without problem and I would use it again for this task. I can't comment as to whether it will handle all cases, this project didn't contain anything too fancy, but I would recommend it as a place to start:

Leave a Comment more...

Planning on buying a new monitor soon

by on Jun.09, 2013, under Hardware

I think my Dell 2005FPW is showing its age: I’m starting to get some rolling when the monitor is first powered on. It’s had a good run but I think I need to buy something or at least be prepared to buy before it becomes more problematic. I’ve resisted buying a new monitor because 1) if it’s not broken don’t fix it and 2) their has been little offered on the monitor market to encourage me to buy. There has been tremendous stagnation in the display world with regard to resolutions. I also strongly favor non-TN displays. The Dell 2005FPW uses PVA but IPS seems to have largely won out as the better display technology. Here’s the specs of my current monitor:

  • Dell 2005FPW – 20″ 1680×1050 PVA 16:10 (0.258 mm pitch)

What I have found is that in that size range there has been little improvement in resolution. I suppose this is understandable since 1080 is the number of lines considered to be HD and if you are watching HD content it is nice to do so without upsampling. So what I have found is the following size/resolution pairings:

Leave a Comment more...

New Flash Drives

by on Apr.04, 2013, under Hardware

Leave a Comment more...

The easiest way to get ruby 1.9 debugging functionality on Ubuntu 12.04

by on Mar.07, 2013, under Development

I’ve come across a number of posts giving instructions on how to get debugging to work with ruby 1.9.x and they all seem to involve downloading gems and installing them. Here is what I did on my Ubuntu 12.04 workstations that was very easy though not trivial to figure out.

sudo gem install linecache19 --pre
sudo gem install ruby-debug-base19 --pre -- --with-ruby-include=/usr/include/ruby-1.9.1/ruby-1.9.3-p0/
sudo gem install ruby-debug-base19x --pre
sudo gem install ruby-debug-ide --pre
Leave a Comment more...

Building xen-4.2.1 packages on Ubuntu 12.04

by on Feb.07, 2013, under virtualization

First install build dependencies. This list may not be complete as some necessary libraries and tools may have already been installed on my test machines. This is what I used to get the packages to build successfully:

  • apt-get install build-essential python-dev gettext bin86 bcc iasl uuid-dev libncurses5-dev pkg-config libglib2.0-dev libyajl-dev git gcc-multilib texinfo fakeroot

Then download, unpack, configure, and build:

  • wget http://bits.xensource.com/oss-xen/release/4.2.1/xen-4.2.1.tar.gz
  • tar -zxf xen-4.2.1.tar.gz
  • cd xen-4.2.1
  • ./configure
  • make deb

Afterword you’ll be left with a shiny new package:

  • dist/xen-upstream-4.2.1.deb
4 Comments more...

Fixing “uninitialized constant” errors in rake tasks when using Rails threadsafe! mode

by on Jan.31, 2013, under Ruby On Rails

I ran into this problem where I was getting “uninitialized constant” errors when running rake tasks. These are tasks which had been working and I verified that the proper paths were set (eager_load_paths). When searching I saw information about config.threadsafe! being a problem so I disabled it and the problems vanished. However, I wanted to use config.threadsafe!, specifically for allow_concurrency. So, how to resolve this.

(continue reading…)

Leave a Comment more...

Decimal precision for geocoding coordinates

by on Jan.20, 2013, under Development

I did some research and found a lot of discrepancy among recommendations for the decimal precision when doing geocoding. Some say you only need 4 digits of precision and others suggest up to 15. In my own testing the best results seemed to be with 6-digits and SQL type of PRECISION(9,6) for latitude and longitude. This should provide a resolution of less than 12cm which should be sufficient for most purposes. The storage requirements should be 5 bytes in MySQL and 9 bytes in PostgreSQL.

Leave a Comment more...

gems for validating email and urls in rails

by on Jan.19, 2013, under Ruby On Rails

Validating URL Addresses

  • http_url_validation_improved (1.3.1) – uses Addressable::URI.parse, can check url connectivity
  • url_validation (1.0.0) – uses Addressable::URI.parse, can check url connectivity
  • url_validator (0.1.0) – uses Addressable::URI.parse
  • validate_url (0.2.0) – simple, Rails 3 only, uses URI.parse
  • validates_url_format_of (0.3.0) – Rails 2 and 3, uses regexp

Obviously people’s needs will differ but I think validate_url suites my needs best: it doesn’t add a dependency on Addressable and doesn’t use a regexp for validation. Mostly I’m looking to prevent user entry errors link failing to provide a schema. Whether the site exists is not something I need to check in a validation.

Validating Email Addresses

There are about 28 gems for doing email address validation. I’ve been using validates_email_format_of for quite some time with no complaints. It can validate mx records, works in Rails 2 and 3, and is highly configurable. Until I see a reason to switch I’ll keep using it.

Leave a Comment more...

strftime flags on Linux systems

by on Jan.10, 2013, under Development

If you want to get the numeric month from strftime your only only is %m which is zero padded. So January is “01″. But what if you don’t want zero padding? Turns out that’s non-trivial, unless you’re on a system that supports strftime flags. Then you can use “%-m” for no padding (“1″) and “%_m” for space padding (” 1″). These same flags work on all of the other formatters so you can use “%_d” for space padded day instead of having to remember to use “%e”. Not portable, but much more readable.

Leave a Comment more...

Some bugs I’ve encountered in Ubuntu 12.04

by on May.01, 2012, under Linux

1 Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!


A few highly recommended websites...