The
Ultimate
Business Machine

Technology, business
and innovation.

And, not least, about
the Mac.

Weblog Archive Cutedge

by: Bernard Teo








Creative Commons License

Copyright © 2003-2012
Bernard Teo
Some Rights Reserved.

Wed 10 Oct 2012

Enablers on Mountain Lion Server

Category : Technology/EnablersOnMtnLion.txt

I've been working on making all my "enabler" apps work on Mountain Lion Server. If you want to track my progress, check out this Facebook page: http://www.facebook.com/CutedgeSystems, where you can leave your comments and any queries you may have.

Today, I've managed to get MailServe, DNS Enabler and even WebMon working on Mountain Lion Server.

I can confirm that the current latest shipping versions of MailServe (6.0.3) and DNS Enabler (6.0.2) will work without problems on Mountain Lion Server.

Unfortunately WebMon needs some further work.

So, I'm now working on an update to WebMon so that one single version will set up the web server and WebDav for both Mountain Lion client and Mountain Lion Server. Hopefully I can get this version done by this weekend.

Posted at 10:35AM UTC | permalink

Fri 05 Oct 2012

Mountain Lion Server

Category : Technology/MLServerJourney.txt

I've finally managed to clear out a partition I can run a copy of Mountain Lion Server on. (Thanks, Tony Simek, for your encouragement :-)

I'm going to do a clean install of Mountain Lion. And then load Mountain Lion Server on top of it. 

I'll document my journey through it and my findings. Right now, I've heard from our users that DNS Enabler and MailServe will work right off on Mountain Lion Server, but not, it seems, WebMon.

I'll now get direct experience myself for how my apps work on ML Server. And I'll try to fix WebMon so it will work correctly on Server.

I'm deciding whether to document my journey through Mountain Lion Server here in the weblog or on our Facebook page. I'm starting to think about moving my weblog to the Facebook page because it's easier to update Facebook from my iPhone and iPad, and now with Facebook integration baked into Mountain Lion, I'll probably be able to get screen shots of work in progress directly into Facebook as I'm working on the projects.

Also, there's the small matter of getting comments and feedback. For a long time, I've wished I had a comments and feedback mechanism on my weblog, but it's a home-made weblog and I've never had the time to go back to improve on it. So Facebook might be a better way to go. I'm going to use this Mountain Lion Server project as a test of whether the weblog or the Facebook page will prove to be a better channel for communicating the status of all my on-going projects to all our users who are interested in following the journey.

So, if you're reading this weblog, do visit Cutedge's Facebook page if you're interested in following my journey through ML Server.

Posted at 12:09AM UTC | permalink

Tue 25 Sep 2012

Xcode 4.5 for Mountain Lion 10.8.2 and iOS6

Category : Technology/Xcode4dot5.txt

I've just upgraded Xcode to version 4.5, running on Mountain Lion, and it includes the SDK for iOS6. The upgrade went well and all my apps—like Luca and Liya—compiled well. 

Sometimes, when we get these upgrades, everything breaks. For example, quite often I can't build the MySQL, PostgreSQL or SQLite connectors anymore. Or I can get an error that stops me from building one of my "enablers" or installers. And so I have to spend time hunting for fixes.

But this time, all went well, and I can look forward to carry on doing the enhancements that I've planned to do.

Posted at 6:22AM UTC | permalink

Wed 19 Sep 2012

Liya on the Mac App Store

Category : Technology/Liya208OnAppStore.txt

The Mac App Store released version 2.0.8 of Liya but I'm already at 2.0.9 on the Liya web page. This is the one with the new field for entering a socket location, for when you're opening an alternate port for MySQL (or MariaDB) running on localhost.

Liya209.gif

It shows the perils of depending on the curators of the Mac App Store. I may have urgent bug fixes to rush out to our users. But it'll get on the App Store when it gets on the App Store. This time it took almost a whole month, from submission to review and release. I'll let you decide if that's way too much or not.

Posted at 8:43AM UTC | permalink

Sun 09 Sep 2012

Things I'm Working On Next

Category : Technology/NextStuffToDo.txt

A couple of things I'm working on next. 

One, I know that MailServe and DNS Enabler will work on Mountain Lion Server. But not, at the moment, WebMon. So I'm going to see why WebMon for Mountain Lion won't work on Mountain Lion Server.

Two. I worked on a version of DNS Enabler once, that implements split views. But that didn't work out because I couldn't quite figure out how to design the user interface. I'm going to pick that project up again and make another attempt.

Maybe, one more thing. For years, while watching my kid grow up, I worked from my own home. I worked in semi-retirement and turned away more jobs than I can remember.

But one thing I really liked doing, was to teach Mac OS X programming. But I didn't have the space to do it—it would have been inconvenient to have people traipsing through my bedroom-converted-to-workroom. 

But now I do have a proper working space—at a shop that I own, that I used to rent out. When the previous tenancy ran out, I decided to keep half the shop space for my own use, and rent the other half to a cafe. I actually like working out of Starbucks. So now, I sort of have my own personal Starbucks space. Sort of. But the thing is, for the first time in years, I have a space I can do Mac/iOS programming courses from and I'm figuring out how to get this thing started.

SecretHideout.gif

MySpace.gif

So, if you interested to learn how to do the things we do, just contact me and let me know what you would like to learn. Check out this page, http://cutedgesystems.com/school, which includes a link to my Facebook page (my weblog doesn't have comments—it's home-made, so I'll use Facebook to talk back to anybody who wants to leave comments). Thanks.

Posted at 4:00AM UTC | permalink

Sat 08 Sep 2012

Liya and the Mac App Store

Category : Technology/PerilOfTheAppStore.txt

It's been two weeks since I submitted Liya version 2.0.8 the Mac App Store. It's still under review.

Meanwhile I've already updated Liya to version 2.0.9 and that's available from Liya's web page.

That's the peril of being dependent on the Mac App Store. That's why a software developer always needs to have his own store front on the web.

Posted at 7:23AM UTC | permalink

Mon 03 Sep 2012

New Preference Panes for our SQL Databases

Category : Technology/NewSQLPrefPanes.txt

I've wanted to be able to run both MySQL and MariaDB databases concurrently. So, since they both can't run on the same port 3306, which is the default for both, I need to be able to allow one of them to start up on an alternate port.

So, this is our new MariaDB Pref Pane. And I've changed the MySQL and PostgreSQL Preference panes to make them work the same way.

MariaDBPrefPaneWithPortField.gif

These Pref Panes are included in each of the respective SQL installers that we've built : MySQL_Installer_For_MacOSX, MariaDB_Installer_For_MacOSX, and PostgreSQL_Installer_For_MacOSX. 

I've tweaked the installers so they'll work well with the new Preference Panes.

Note: When you run MariaDB off a different port from MySQL, you also need to change the location of MariaDB's socket. Our Pref Pane does that for you (it creates a socket for MariaDB at /tmp/mariadb.sock so that it avoids clashing with MySQL's /tmp/mysql.sock). 

When you access MariaDB (or MySQL for that matter because they work exactly the same way) over localhost, the client doesn't use TCP ports. Instead the client and server connect over Unix sockets. 

So, if you have either MySQL or MariaDB running on a non-standard port, and you want to access it via localhost, you need a way to specify the non-standard socket location. 

This necessitates a change to Liya. So Liya 2.0.9 now has a feature whereby the user can specify the socket location, as shown below :

MariaDBSocket.gif

So, all in all, I've had a rather busy week.

Posted at 12:43AM UTC | permalink

Thu 30 Aug 2012

MySQL & MariaDB - Stuck

Category : Technology/MySQLMaraiDB-Stuck.txt

I've finished the Pref Panes and updated all my database installers so that the user can set up alternate port numbers for each of these databases to use. And all should be fine, so I can test and then release them.

And then I fnd that I'm stuck.

MariaDB tries so hard to be a "drop-in" replacement for MySQL that it also uses the same Unix sockets - /tmp/mysql.sock.

So I'm trying to get MariaDB to start off /tmp/mariadb.sock, say, for localhost connections, which seems to work, i.e., in the sense that MariaDB now listens to connections coming through /tmp/mariadb.sock. By using a custom my.cnf, that I get MariaDB to read its custom configuration parameters from, I can also get MariaDB to listen to port 33306, say, for incoming TCP connections.

So far, so good.

Now, I just need to get MariaDB's mysql command line program to know that the ports have now been changed from the defaults. 

/usr/local/mariadb/bin/mysql goes back to /tmp/mysql.sock when it attempts a database connection. So, MariaDB's own mysql client continues to talk to the existing MySQL installation, rather than to MariaDB. There's where I am stuck.

How to break this?

Posted at 4:25AM UTC | permalink

Tue 28 Aug 2012

Pref Panes With Port Number Field

Category : Technology/PrefPanesWithPortNo.txt

I've created new Pref Panes for each of the installers that we support—MySQL, PostgreSQL and MariaDB. These versions now include a Port Number field.

MySQLPrefPaneWithPortNo.gif

I built these so that I have a way to run MariaDB and MySQL at the same time (by default, they use the same port, 3306).

And also to figure out how Network Preferences and Sharing Preferences, among others, could have that lock icon at the bottom left hand corner and how to make that work for my own Pref Panes.

I'm now going back to change the way my MariaDB Installer for Mountain Lion works. In its first incarnation, it pretended to be MySQL and, if you have a running MySQL installation, the MariaDB installer will move all the databases you have on MySQL over to MariaDB.

But now, if I'm going to have MariaDB running as a separate database on its own right, the user may not want to mix the MySQL and MariaDB databases. So I'm going to make the MariaDB installer only upgrade a previous MariaDB installation and leave existing MySQL databases alone.

Note : It's actually very easy to copy MySQL databases over to MariaDB. You'll find the databases inside a "data" folder within the MySQL-x.x.x folder, with each database in its own folder (you can recognise them by their database names). Just copy them over to the corresponding "data" folder in the Mariadb-x.x.x main folder.

I'll release them when I'm done changing the MariaDB Installer.

Posted at 5:36AM UTC | permalink

Thu 23 Aug 2012

Liya & Luca

Category : Technology/LiyaAndLuca.txt

Although Luca is a paid app and Liya is free, both share the same database connector frameworks that allow the apps to access MySQL, Postgres, SQLite and, now, even MariaDB databases.

The value of keeping Liya free is that it's become very popular, especially among other software developers. 

Liya is today at the top 29th position among US business Mac apps, and is consistently within the top 20 positions in places like Japan, South Korea, Germany and Israel—places where you're likely to get quite sophisticated users.

And because these developers push the use of the Liya further and deeper than any Luca user, more bugs surface and get reported about the quality of our very crucial database connectors than if I didn't have Liya widely-used in the first place.

I wouldn't have been able to spot all the date—and especially time-stamp—handling bugs in Postgres and SQLite, if it's just me and Hai Hwee working on Luca. You need a wide net of other users working on a wider-range of their own stuff to push the use of the database connectors to the limits. 

And because we've fixed another one of these quite subtle date-time handling bugs, I've just updated Luca for Mountain Lion to 5.0.2.

I couldn't over-emphasise how crucial these database connectors are. They're what allows Luca to tap on to SQL databases, wherever in the world these databases are, and from whatever Mac OS X or iOS device the user happens to be running an app like Luca on.

Since the days when we were 4D (4th Dimension) developers and had to rely on third-party developers for 4D for Oracle, etc, (and to pay through our noses for them), I've been determined to build these connectors ourselves—to control their quality, their speed, and their dependability in mapping data values and data types between the client and its permanent data store.

We've reached this stage of control over our own work and I want to build on them to improve Luca and more apps like Luca in the coming months. Otherwise we would have wasted all these earlier years of hard work.

Posted at 3:33AM UTC | permalink

Liya 2.0.8

Category : Technology/Liya208.txt

I've just released version 2.0.8 of Liya. It includes one bug fix for SQLite date field handling. And I now make Liya able to open connections to MySQL and PostgreSQL databases on non-standard ports. 

This version has also been tested to work with Mariadb databases. And of course, it will also work on Mountain Lion.

I'm now ready to make Pref Panes for MySQL, PostgreSQL and MariaDB that will allow the user to start up the databases on non-standard ports. The primary motivation is so that users can fire up MySQL and MariaDB simultaneously. Currently, MariaDB being a "drop-in replacement" for MySQL, uses the exact same port as MySQL. If you want to have both databases running simultaneously, one or the other has to work on a different port.

And I've just submitted it to the Mac App Store. The last time, it took more than two weeks to get reviewed and approved. Let's see how long it takes this time.

Posted at 2:51AM UTC | permalink

Mon 20 Aug 2012

MariaDB Installer on Mac OS X Mountain Lion

Category : Technology/MariaDBOnMountainLion.txt

I've been wanting to do this for a while now. I've finally been able to build a Mountain Lion Installer for MariaDB, which is a "drop-in" replacement for MySQL.

As the word "drop-in" implies, you can use MariaDB, once it's installed, like you've always been using MySQL. MariaDB pretends to be MySQL and it will execute all the usual mysql commands, without your having to change a thing.

This version of the installer installs MariaDB-5.5.25 (the latest I can find) into /usr/local/mariadb-5.5.25 and makes a symlink to /usr/local/mysql which, in fact, points to /usr/local/mariadb-5.5.25.

So, all the mysql commands just work. Like if you do a 

mysql --version

in the command line, you will get :

Server version: 5.5.25-MariaDB Source distribution

and a MariaDB command prompt, but other than that you can work like you've always done in MySQL.

If you have a working MySQL database, like one that was installed by our own MySQL installer, the MariaDB installer will attempt to move your current databases over (if you choose to do the Upgrade option, rather than a Clean Install).

Finally, because MariaDB's command gets called when you execute /usr/local/mysql, even the MySQL Start Up Preferences Pane (that we've built together with our MySQL installer) continues to work.

So, what's the point of all this?

Well, many develoeprs are concerned over the future of MySQL, now that it's in the arms of Oracle. The existence of MariaDB, brought into life by the original developers of MySQL, gives hope that a free, independent, quality, database option continues to be available, should Oracle decide one day to close-source or worse kill, if it comes to that, MySQL.

So, this gives us a third option to work with—MySQL, Postgres and now MariaDB. I've just tested Liya (our friendly database table editor) with MariaDB and it continues to work. If MariaDB is running on your server instead of MySQL, simply choose MySQL as the database option to access your new MariaDB database.

Obviously, in this arrangement, MySQL has to be stopped from running, in order to have MariaDB run and impersonate it.

Maybe a future version of our installer will allow MariaDB to be run on another port alongside MySQL. But I will have to improve Liya so that it will accept a port number as a connection option. (Currently it doesn't have such an option.)

So, I hope now to use more of MariaDB and see what I can learn from it. If you do download the Installer, let me know if it works for you and also what you think of MariaDB. 

Posted at 8:59AM UTC | permalink

Read more ...

Mac@Work
Put your Mac to Work

Sivasothi.com? 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.