Replacing the battery in a Casio Databank 150 watch

[Update February, 2013: It's amazing how things have changed in a few short years. Everyone now uses their phone for all these functions.]

Like many self-respecting technology professionals, I wear a Casio Databank watch. In my case, it's the Databank 150. And when the battery conks out, you'd think that it was time to visit the local jeweler's or K-Mart service desk to get the battery replaced. You can do this, but only do it to watch the look of horror that appears when you hand them the Databank. "Oh, no, we can't service those. You need to send it in to the factory!"

Clearly they have been advised by legal personnel of the ramifications of losing the customer's data.

However, like many self-respecting technology professionals, I don't actually keep any information in my Databank. Those teeny keys are just too small to work with, and it doesn't sync with my computer's address book. What I find handy is the calculator function, which has proven useful on many occasions.

Anyway, you'd think that since the Databank is the choice of so many technology professionals, a quick web search would turn up instructions on how to change the battery. Nope. All we get is this review [2011 update: even that has been removed], with a URL that manages to exceed 256 characters. Note that this guy doesn't keep any information in his Databank either.

Disclaimer: following these instructions may render your watch useless. These instructions may be incorrect. I may be making them up as I go along. I will not be held responsible for you breaking your watch because you followed some instructions someone posted on the internet.

So on with the gory details. Toss aside your warranty, grab your jeweler's screwdriver, and unscrew the four tiny screws on the back. Lift the rear plate off gently so as not to disturb the waterproofing rubber gasket. Oops, too late. Well, do your best to stick it back in on reassembly. Remove the white plastic component protector gently, and you're looking at the battery.

The battery is held in place by a retainer that goes over the battery, heads down, and is kept in place by a plastic catch (see arrow). Unhook the metal retainer by pushing down and out on the retainer with your jeweler's screwdriver, and the retainer will pop loose from over the plastic catch. To clarify: you are unhooking the metal retainer from where the plastic catch is holding it in place. This is a delicate operation; don't push too hard or you'll ruin the retainer. Then remove the CR2016 battery and replace it with a new one.

Here's an ASCII diagram, side view, of the retainer and catch. The plastic catch is the "o".


Or it may just be an ASCII picture of a buffalo.

Reassemble and you're ready to go.

And even though I proudly wear a Casio Databank watch, it does not necessarily mean that I am interested in your watch. I'll say this as politely as I can: I've shared these instructions with you freely. I've posted as much as I know. Please do not contact me to ask questions about Databank watches. Thanks!


David Bayly has released addedValues 1.0. Way to go, David!


Zend Studio 5.5 debugging on OS X via Ubuntu and Parallels

Here's how to get debugging working in Zend Studio Server 5.5 for the Mac. There is no native version of Zend Platform for OS X on Intel Macs yet, so this solution uses Ubuntu on Parallels as an interim solution.

Installing Ubuntu on Parallels

I downloaded Ubuntu 6.10.
In Parallels, new virtual machine, typical installation.
Guest OS Type: Linux.
Guest OS Version: Debian Linux.
Called the Virtual Machine "Ubuntu".
Uncheck "Start guest OS installation".
Clicked on CD/DVD-ROM and changed the Emulation from Use CD/DVD-ROM to Use image file.
Pointed the image file to ubuntu-6.10-desktop-i386.iso
Blicked on Options, then Booting Options.
Changed Boot sequence to have CD-ROM boot first.
Started virtual machine which booted off the image file.
Pressed enter to boot from LiveCD.
Selected U.S. English.
Selected "Erase entire disk".
After installation, selected "Continue using LiveCD"
Powered off virtual machine.
Changed boot sequence to have hard disk boot first.
Booted and logged in.
System - Preferences - Screensaver Preferences, uncheck Activate screensaver.
Tested network connection.

Installing Apache, PHP, and Samba

You can use either the command line or Synaptic Package Manager to install software. If you use Synaptic:
System - Administration - Synaptic Package Manager
Settings - Repositories, check Community maintained Open Source software

I used the command line:

sudo bash
apt-get update
apt-get install apache2-mpm-prefork apache2 libapache2-mod-php5 php5-mysql smbfs

Mounting OS X Filesystem on Ubuntu

Now Apache and PHP are installed. Next, I wanted to mount my OS X filesystem on Ubuntu.

Started Windows File Sharing on OS X.

Firewall, chose New... and selected SMB (without netbios) (445 TCP).

Made the following addition to /etc/smb.conf on OS X ( is the IP of the Ubuntu virtual machine).

; allow connections only from the VM
hosts allow =

; verbose logging in /var/log/samba/log.smbd
log level = 3 passdb:5 auth:10 winbind:2

; share my Sites folder
  path = /Users/john/Sites
  read only = no
  browseable = no
  comment = Websites

And I commented out the [homes] section because I'm paranoid.

Now I went to Ubuntu's terminal to mount the share:

mkdir /home/john/sites
mount -t smbfs //my.mac.ip.address/sites /home/john/sites -o username=myosxusername

I tested and doing ls gave me a list of the files in /Users/john/Sites. OK so far.

Serving my Sites directory via Ubuntu

Now I want Apache to serve out of /home/john/sites instead of the default /var/www. (I have no other use for Apache on this VM, so I'm editing the default settings.) So in Ubuntu I said

nano /etc/apache2/sites-enabled/000-default

When I was done it looked like this:

<VirtualHost *>
	ServerAdmin my@email.address
	DocumentRoot /home/john/sites
	<Directory /home/john/sites
	  Options Indexes FollowSymLinks MultiViews
	  AllowOverride All
	  Order deny,allow
	  deny from all
	  allow from
	  allow from my.mac.ip.address

I restarted Apache with apache2ctl restart.

I made a little file called test.php with just <?php phpinfo(); ?> in it. Going to showed the PHP info page. So Apache and PHP are now running.

Installing Zend Platform on Ubuntu

Now it's time to install Zend Platform. I downloaded it from Zend and installed it on Ubuntu:

tar -xvf ZendPlatform-3.0.0Beta-linux-glibc21-i386.tar.gz
cd ZendPlatform-3.0.0Beta-linux-glibc21-i386/
bash ./install

Note that you need to type bash ./install instead of ./install because /bin/bash is really /bin/dash on Ubuntu.

I accepted all the defaults except on the WEB SERVER SETTINGS page, where I entered /home/john/sites in the htdocs field.

I did the Express option. It took several minutes and then completed.

On Ubuntu I started Firefox and went to http://localhost/ZendPlatform and logged in. Only localhost is allowed to do debugging and profiling sessions by default, and I wanted to do that from my Mac (that's sort of the whole point of this exercise!). So I clicked on Configuration and added my host to Allowed Hosts.

Configuring Zend Studio 5.5

Now I needed to configure Zend Studio 5.5 on my Mac to use Ubuntu. In Zend Studio, I added the IP of the Ubuntu virtual machine to Tools - Preferences - debug.

One final step: the debugger on Ubuntu connects back to Zend Studio on the Mac via port 10000. So I opened that port on my firewall.

To test, I chose Tools - Test Debug Server Connection and it reported success.


I now have a single filesystem that I can access via normal HTTP by issuing a request to my Mac, or via debugging by using Zend Studio to issue a debugging request via Ubuntu.

Drupal ninjas will notice that I haven't installed MySQL on Ubuntu. That's because I'll configure the site-specific Drupal settings file to point to the MySQL on my Mac. One database. One filesystem. Two Apache/PHP installs. Sweet.

Note: after trying this for a bit, it seems that Zend Platform's "Dynamic Content Caching" causes Apache/2.0.55 PHP/5.1.6 to segfault. Turning it off in the Zend Platform control panel at Performance - Settings -Dynamic Content Caching made the problem go away.

Update: after more investigation, it turns out that the segfaulting is due to the Zend Optimizer. Commenting out the following line in /usr/local/Zend/Platform/etc/php.ini eliminates the segfaults:


Cultural awareness

I had a chance to sit down and talk with Arun Pereira, author of The Culturally Customized Web Site: Customizing Web Sites for the Global Marketplace recently. He has studied the use of the web by different cultural groups, and come to the conclusion that translation is only a part of the picture; a website should be presented differently to an individualistic American vs. a collectivist Asian. I found that interesting, as I hadn't thought about it much before. Applying that thought to Drupal, the t() function becomes less important, though still essential, and theming becomes more important.



Subscribe to SysArchitects RSS