Business Machine

Technology, business
and innovation.

And, not least, about
the Mac.

Weblog Archive Cutedge

by: Bernard Teo

Latest Joy of Tech!

Joy of Tech ... from Geek Culture

Creative Commons License

Copyright © 2003-2012
Bernard Teo
Some Rights Reserved.

Wed 20 Apr 2016

MySQL Connector – Or how to build libmysqlclient with just one click

Category : Database/libmysqlclient_intro.txt

I’ve created a project that could build libmysqlclient (for macosx, iphoneos, and iphonesimulator), with just one click.

libmysqlclient is a small client-side software, that will allow a Mac or iOS device to connect to a remote MySQL database. Once you have the ability to make such a connection, you could build complete database-driven apps that will store/retrieve data from the remote database, as though the database sits right inside your device. This really is magic. You could do lots of useful stuff with it.

I’ve had a hard time figuring out how to build the libmysqlclient, especially for iOS and iphonesimulator, ever since MySQL decided to use cmake for their builds. But I had to persevere, because a lot of my apps depend on this crucial piece of "plumbing”.

I’ve seen a lot of people looking to do the same thing. So, here’s the way to do it. You could download the folder that contains the project here. It’s called BuildMySQLClient (download by clicking on that link).

Once downloaded, you should see two folders:
The "Building libmysqlclient” folder contains the Xcode project that actually builds the libmysqlclient. Hit Build (Command-B) and the project will build the required libs and include folders for all three variations (for macosx, iphoneos, and iphonesimulator). Once the build is complete, you can find them inside the user’s ~/Library/SDKs folder, which the project will create.

The “TestMySQLConnection” folder contains another Xcode project that will allow you to test that the connection works, while showing you how to use the lib and include folder inside your own project. Again, it shows all three variations (for macosx, iphoneos, and iphonesimulator).

The example project shows just the rudiments of connecting programmatically to a MySQL server from a Mac or iOS device, using a C programming interface. The complete language guide can be found at the MySQL C API site.

To help you get everything you need, at one go, to test/learn about using a MySQL database programmtically, I have a MySQL 5.7.x database installer you can download.

And you can use my other app, Liya, on the Mac, to very quickly set up a “test” database that the example code, above, uses. It just requires that you have a table called “Table1” with any number of string/character fields, and you can enter any number of records, like I’ve shown below:

On the Mac, you can set all this up very easily. Install and run the MySQL database on the same development Mac. You can connect to this database simply, using Liya, via the localhost connection, using the account root without password, and look for the database test. Set up the test database, as shown. Install libmysqlclient. Use the latest Xcode (Version 7.3). Build for the latest Mac OS X (10.11) and iOS and simulator (9.3). And then run the example code to test the connection. And you can build from there.

That’s all there is to it.

As usual, this is all fun to do, but this is provided without guarantee and without offer of support. Please don’t write in to get me to hand-hold you every step of the way. I’ve spent countless hours figuring this out. You could at least put in a bit more effort. But I would love to hear how, and if, this has helped you, and if you have better ideas on how we could improve the process. Thanks.

And, Enjoy!

Posted at 6:57AM UTC | permalink

DNS Enabler 9.0.4

Category : Technology/DNSEnabler9dot0dot4.txt

Released a new version of DNS Enabler 9.0.4 today, which includes a new binary of BIND 9.10.3.

You can download it from the DNS Enabler for El Capitan page.

Posted at 2:17AM UTC | permalink

Tue 08 Dec 2015

MariaDB for El Capitan

Category : Technology/NoMariaDBForElCapitan.txt

I’ve given up trying to build MariaDB 10.1.9 from source for El Capitan. It’s too difficult and they don’t seem interested. I’m not interested in using HomeBrew. I want to be able to build it from source cleanly, without using an intermediary, like on other Unixes. Life is too short to waste on unnessary complexity.

Posted at 10:55AM UTC | permalink

Mon 07 Dec 2015

New SQL Installers for El Capitan

Category : Technology/LatestSQLInstallersForElCapitan.txt

I’ve built the latest MySQL 5.7.9 Installer for Mac OS X El Capitan, as well as the latest PostgreSQL 9.4.5 Installer.

Both are available from my home page at :


Posted at 3:47PM UTC | permalink

Sat 21 Nov 2015

MailServe for El Capitan 9.0.5 with Dovecot Replication

Category : Technology/MailServe9dot0dot5.txt

I love the Dovecot Replication feature. I have always wanted to set up a backup of my live server, that is ready to go if (and when) my live server goes down.

I thought the hardest problem that I’ll need to solve to solve is to find a way to do a live backup of the mail server, so that one is a perfect, totally up-to-date replica of the other. 

That was until I discovered that Dovecot has a most excellent replication feature. It took me some time to figure out how to do all the Unix incantation to make it work – the documentation being quite sketchy. But here it is, in all its glory :)

I’ve implemented the user interface for the replication feature in MailServe 9.0.5.


Just 4 steps : 

1) enter the address of the replica server (that is also running Dovecot, as set up by MailServe), 
2) enter a shared secret between the two servers, 
3) turn the replication feature on, 
4) Restart Mail Server. 

And you need to mirror the same steps on the replica server. 

That’s it.

If one fails, you’ve got all your users’ mail folders completely backed up on the other. And it runs automatically. When new mail comes, or when a user rerranges the contents of his mail folders, the backup mail server gets all the changes, within seconds. And it works in both directions. Make changes in one server – the changes will all automatically show up on the other. Great?!

Dovecot and its author(s) – they’re so brilliant.


Posted at 11:05AM UTC | permalink

WebMon For El Capitan 9.0.2 • new version released

Category : Technology/WebMon9dot0dot2.txt

I have a new version of WebMon for El Capitan. Details are on :


Posted at 10:19AM UTC | permalink

Wed 14 Oct 2015

El Capitan Server Upgrading

Category : Technology/ElCapitanUpgradingAftermath.txt

I’ve finished moving my live server to El Capitan. It took too long. This is the first time I’ve done an upgrade instead of a clean install. I upgraded from Mavericks, actually, rather than Yosemite, and I’m already seeing quite a few problems.

For example, the Apache files on my upgraded Mac Mini look to be different from the Apache files on my development machines, which I’ve always kept clean by doing clean installs (mostly). So my web server couldn’t start up and it took a while to debug it. Mail and the DNS server both started up fine.

But I’m having problems with the Keychain. My apps can’t seem to be able to save passwords onto the upgraded Mac Mini’s keychain.

So, quite a few puzzles to sort out.  It wasn’t as smooth as I hoped it would be.

Posted at 4:56AM UTC | permalink

Upgrading to El Capitan

Category : Technology/UpgradingToElCapitan.txt

I’m upgrading my live server to El Capitan. As in, right now. If you see the server disappear, it’ll hopefully be only for a while.

I’ve only got this Mac Mini that I’m using as a server because I’ve been saving my money for the next incarnation of the Mac Mini from Apple and that’s taking too long to appear. So if I want to move my one and only server right now to El Capitan, I’ve got to move it in-situ.

Once I finish typing and uploading this post, I’m going to start the upgrade process. 

And then start up all my Internet services using my own “enabler” apps. Time to eat my own dog food...

Posted at 12:44AM UTC | permalink

Mon 05 Oct 2015

El Capitan News

Category : Technology/elcapitan.txt

If you happen to be looking for El Capitan versions of my apps ...

Posted at 8:59AM UTC | permalink

Mon 27 Oct 2014

Liya 3.0.5 now works with iCloud Drive on Yosemite

Category : Technology/Liya3dot0dot5.txt

I have a new version of Liya on the Mac App Store. This latest version, 3.0.5, when run on Yosemite, now works with the iCloud Drive :


Liya’s iCloud folder now appears with other iCloud-compatible apps’ folders (like Pages and Keynote) inside the iCloud Drive folder, allowing you to easily share SQLite files with other apps, on both Mac OS X and iOS devices.

Posted at 2:25PM UTC | permalink

Tue 21 Oct 2014

Free iOS Apps

Category : Technology/iOSApps.txt

If you’ve been to our home page, you might see that I’ve featured two free iOS apps you can download:


WordScanner is the OCR scannning app I’ve always wanted to have on my iPhone. I read a lot of books and I often want to share what I’ve found on my Facebook page. So, what I wanted was to have an app on my iPhone where I can simply take a shot of the page I’m reading and then hope to lift the text right out of it so I can paste it onto Facebook or the Notes app or an email message.

And I wanted it all to be so drop-dead easy — I wanted it to work even if I can’t position the page precisely on the iPhone camera viewer, or if the lighting is not particularly good. And I need to be able to crop out my fingers holding the edges of the page. And I wanted it to work so fast that I can get the text onto Facebook before I lose inspiration for whatever I wanted to write about that I was reading.

I want it to never crash because OCR is particularly finicky and memory intensive. So I decided to write the app myself, using the open-source Tesseract OCR engine and some image editing code I found on the web. The result is WordScanner. I’ve had this app for a couple of months and I’ve used it to share a lot of stuff I’ve read on Facebook. And it hasn’t yet crashed, so that’s what I’m very happy about. When I first did this, it would crash every short while.

I really love this app, maybe because I had built it myself, but I’m happy to share it. It’s available for free.

BookNapper is another app for a book lover, but in this case it would only be really useful if you’re in Singapore. We’ve got this lovely, first-class public library that I always think of as our national treasure. It’s very current, so if you’re in a nice book shop and you see a nice book, chances are that our library would have it.

So what I do is, I scan the book’s ISBN number into BookNapper, which will then keep a list of books I want to read. BookNapper tells me if this book is available in our library’s collection , and if so, in which particular branches of the library system. (It also gives me the Amazon and Goodreads reviews). Then when I step into any branch of the library, Booknapper tells me which of the books I want to read is available in that library for borrowing, right then. And leads me precisely to the right shelves.

So it’s like a precision heat-seeking missile for taking out good books! And it’s available also for free.

WordScanner and BookNapper are both available on the iOS App Store now.

Posted at 10:26AM UTC | permalink


Category : Technology/Yosemite.txt

New Yosemite versions of all our apps (except for Luca which will take a bit longer) are out now. 

MailServe has a new Dovecot binary (version 2.2.14). And so does DNS Enabler with a new BIND binary (version 9.10.1).

Actually I would be happier if Apple slows down the OS X releases because this way, we are struggling just to stay in place — we’ll never get much time to build new stuff if we keep going back to the apps to fix things that used to work on the previous releases.

Anyway, you get to all the Yosemite apps by going to our home page:


Posted at 9:45AM UTC | permalink

Read more ...

Put your Mac to Work Now how would you do something like that?

Weblogs. Download and start a weblog of your own.

A Mac Business Toolbox
A survey of the possibilities

A Business Scenario
How we could use Macs in businesses

VPN Enabler for Mavericks

MailServe for Mavericks

DNS Enabler for Mavericks

DNS Agent for Mavericks

WebMon for Mavericks

Luca for Mavericks

Liya for Mountain Lion & Mavericks

Postfix Enabler for Tiger and Panther

Sendmail Enabler for Jaguar

Services running on this server, a Mac Mini running Mac OS X 10.9.2 Mavericks:

  • Apache 2 Web Server
  • Postfix Mail Server
  • Dovecot IMAP Server
  • Fetchmail
  • SpamBayes Spam Filter
  • Procmail
  • BIND DNS Server
  • DNS Agent
  • WebDAV Server
  • VPN Server
  • PHP-based weblog
  • MySQL database
  • PostgreSQL database

all set up using MailServe, WebMon, DNS Enabler, DNS Agent, VPN Enabler, Liya and our SQL installers, all on Mavericks.