David Luhman's blog

MySQL won't start - a couple fixes

Let's say you get this message while Linux is booting :

   Starting MySQL database server mysqld     [fail]

One possible cause may be a network setting in /etc/mysql/my.cnf. Look for the following :

    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address    =

Change the bind address to your static IP address if necessary.

Start MySQL with

    $ sudo /etc/init.d/mysql start

Using a custom Firefox profile when running Selenium tests

If you use Selenium for testing web interfaces, you'll probably want to create a custom Firefox profile for use by Selenium. To me, the main reasons for this are to provide more screen real estate (remove toolbars etc.) and to speed up browser loading.

But it's a little tricky to get Selenium to find your saved profile.

Here's a great link for this :

- http://girliemangalo.wordpress.com/2009/02/05/creating-firefox-profile-f...

Here are the highlights, for a Linux/Ubuntu user :

Start Firefox from the command line and create and save your custom profile :


Useful BitKeeper commands

Here are some useful BitKeeper commands :


- bk helptool &

Repository Management

- bk clone -l /home/usr/dluhman/repos/code /tmp/devdkl-test/code

- bk parent

- bk pull -ln

- bk citool

- bk push -ln

File Management

- bk new somefile.php

- bk edit someExistingFile.php

- bk -Ur. edit -S

- bk mv oldFileName.php newFileName.php

Examining Changes & Reporting

- bk revtool

- bk csettool -r1.6887.1.60 &

- bk log -r1.6887.1.61

- bk changes -uUSERNAME


Useful eBay Trading API calls

Here are some of the more useful calls in the eBay Trading API :

*Token and Session Management*

- FetchToken

- GetSessionID

- GetTokenStatus

- RevokeToken

*API Management*

- GetApiAccessRules


- GetContextualKeywords - AdContext - requires eBay approval

- GetSearchResults - Not usable after 2010; use Finding API

- PlaceOffer - Bid on an auction or buy it now

*Category Management*

- GetCategories - Returns category hierarchy

- GetCategory2CS - Map categories to corresponding characteristic sets


Row-level and table-level locking in Oracle and MySQL

I had a recent discussion with someone who believed that Oracle's default locking behavior on inserts was table-level locking.

From a practical perspective, the notion that an OLTP database like Oracle would use table-level locks for inserts would lead to such inconceivably bad performance for enterprise applications that I had to research this a bit. From what I can see, default Oracle behavior is ROW-LEVEL locking for inserts.


Can't ssh out : Fixing "Permission denied (publickey,password,keyboard-interactive)."

Suppose you're on a relatively secure Linux box and receive the following message when trying to ssh out interactively (no keys) :

- Permission denied (publickey,password,keyboard-interactive).

Here's one possible solution :

Check the /etc/ssh/ssh_config (client ssh) file and see if it contains this :

- PasswordAuthentication no

If so, change it to the following :

- PasswordAuthentication yes

Now try your interactive ssh session -- you shouldn't need to restart a service or anything else.


Facebook releases 'HipHop' - a PHP 'compiler'

I stumbled across something called 'HipHop' from Facebook :

Here is how Sebastian Bergmann describes it :

"HipHop for PHP" is a source code transformer that turns PHP 5.2 code (minus some features) into C++ code that can then be compiled with g++, for instance, to a regular binary.

Since much of the Facebook front-end is written in PHP, they found HipHop necessary to reduce their need for servers.

Here are a couple articles on this :


Installing PHP's Testing_Selenium on Windows

Earlier I blogged about setting up Selenium, PHPUnit et al on an Ubuntu machine.

Although I prefer to do web development on an Ubuntu machine, for 'legacy' reasons I still do some stuff on a Windows machine. For lighter web interface testing, a full CI tool like Hudson is overkill. Here's how to run Pear's Selenium_Testing alone (without PHPUnit) on Windows.

I assume you have PHP and the Pear installer on your Windows machine. Grab the Pear Selenium_Testing package with :


Writing a simple OO template system in PHP to separate logic and presentation

If you're maintaining a legacy PHP application which suffers from mixing of application logic and presentation, you may want to implement a simple template system to help separate these two.

Of course there are plenty of existing PHP templating systems, with Smarty being one of the most 'notorious' ;-). But if you have simple needs and don't want to introduce external dependencies to your code, rolling your own simple system can make sense. Let's face it -- you can often roll your own in the time it takes to figure out someone else's system.



Subscribe to RSS - David Luhman's blog