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.

Fri 27 Jul 2012

Mountain Lion versions of all my apps

Category : Technology/MLVersionsOfAllMyApps.txt

Ok, I've fixed the problem with Mountain Lion not having Fetchmail built in. So I've built a Fetchmail binary to ship with MailServe.

MailServe for Mountain Lion can be found here :

The other Mountain Lion apps I'm ready to release are : DNS Enabler, DNS Agent, WebMon and Luca.

And there is also a Liya 2.0.7, which can already work on Mountain Lion.

I'm still testing them, so this is like a soft release, so I can fix problems as they come in. 

As Mountain Lion stabilises, I will be building more features on top of these versions, so do come back and check if there are updates. 

And I will update the documentation in the following days (they're still showing the Lion screen shots).

Do also keep your feature requests coming in. Mountain Lion is a promising platform to build more powerful apps (though I hate the sandbox). So I'm looking ahead to the coming work with relish.

Posted at 9:32AM UTC | permalink

Thu 26 Jul 2012

Mountain Lion News

Category : Technology/ML.txt

I'll have Mountain Lion versions of DNS Enabler, DNS Agent and WebMon ready over the weekend. I'll need to test them again on the shipping version of Mountain Lion.

I'm having more problems with MailServe. I was using MailServe to test a more Apple-approved way of setting up the Mac's system files as a super-user, but I've realised that that way opens up more security holes than the one it replaced. So I'm scrambling to put everything back the way it was and only make another attempt when Mountain Lion stabilises. Also there is no Fetchmail in Mountain Lion. I'll have to build my own.

I'll probably have a working version of MailServe again, over this wekend, without Fetchmail, which I'll continue to work on the following week.

It's really too soon for Mountain Lion. As usual, Apple makes tons of changes in the system underneath. So many things break. So sometimes we have to run just to keep up, though it looks like we didn't move one bit. I was looking forward to building on top of Lion before we knew about Mountain Lion. I could do without all these changes. But no point complaining. Just have to get it done.

P.S.: I have a Mountain Lion version of Luca built. But I didn't like the way Luca Preferences work after a change I made. It's OK on SQLite database, but if you're accessing a MySQL or PostgreSQL database on a slow Internet connection, Luca Preferences takes too much time to come up. So I may want to fix this before I release it. Also, I was working on making Luca iCloud-aware, so you can stuff your SQLite LucaDB up to iCloud and access it (maybe, later this year) from the iPhone or, more likely, iPad. Haven't got this solved, as yet.

Posted at 12:07AM UTC | permalink

Wed 25 Jul 2012

Liya 2.0.7 for Lion, also for Mountain Lion

Category : Technology/Liya2dot0dot7.txt

I've updated Liya. With Liya 2.0.7, you can simply double click on a Sqlite database file on your desktop and that will launch Liya.

Liya recognizes .db, .sqlite and .sqlite3 extensions. Please write to me if there are more variations that I should include.

Liya 2.0.7 also works on Mountain Lion. I've been using it on my Mountain Lion development machine for quite a while now.

And Liya seems to be another hit. It's at position 24 in the Mac App Store in the Business category, hovering for most of the year in the top 40. It'll be great to be able to break into the top 10.

LiyaRankings.png

I've compiled these reviews from AppAnnie :

AppAnnieLiyaReviews1.png

Posted at 1:34AM UTC | permalink

Mon 02 Apr 2012

Mountain Lion MacBook Pro

Category : Technology/MountainLionMBP.txt

I've been running Mountain Lion on my MacBook Pro for a week now. I've managed to get almost all my apps re-compiled to run on Mountain Lion (with the inevitable mountain of compile errors out of the way by now), and I'm now ready to make improvements to each of the apps.

Problems remain, of course. There's no Fetchmail in Mountain Lion! Not yet, or not anymore, I can't tell. The mail logging seems to have disappeared. And I've still got to take out the deprecated AuthorizationExecuteWithPrivileges calls and replace them with SMJobBless. But so far, it's going well and I'm enjoying the experience.

If there are people reading this who have in mind new features that they'd like to see supported, this is the time to write to me.

For example, I've learnt that there is a type of SSL cert that allows you to enable SSL support for all the domains hosted on a single IP address (and not just for the primary domain). It's called a UCC/SAN cert. I've just read through the documentation. I think I can make WebMon support this and so I'll work on it.

Also, besides moving the "Enabler" apps to Mountan Lion, I'd like to bring Luca to the iPad.

So, lots of work for the next few months till the end of the year.

The thing about working on an Apple platform is that you got to be ready to throw out the old and get on with the new. Things change all the time, at great speed, and you've got to be agile enough to adjust. You can do great things, still, with this platform, although not all of which can be made into apps that you're allowed to sell on the Mac App Store. But this remains a stellar software development platform. I'm still happy to be a Mac app developer. There's (still) nothing better.

Posted at 8:38AM UTC | permalink

Sat 24 Mar 2012

AirPrint

Category : Technology/AirPrint.txt

I bought an AirPrint-capable printer from HP - the Deskjet 3070 - and I can now send print jobs to it, wirelessly, from every Mac and iOS device that I have in my home. It's the first HP product that I've ever really liked, since the HP calculator that I had in the University, and that, believe me, had been a very very long time ago.

AirPrint.png

It was actually easy enough to set up - initially, via USB. I only tripped up because the printer seemed to need to be turned off, and then on, to get onto my Airport network. But after that, it turned up on its own on all my Macs, iPhones, and iPads. 

If you're using a Lion-based Mac to set up the printer for the first time, you'll need to download the installer from HP because the one on the provided CD only worked for machines on Snow Leopard. On the other hand, Apple's software update mechanism will automatically download the client printer drivers for you when you set up the individual Macs. No special drivers are needed for the iOS devices. They all just work.

AirPrint, from Apple, is wonderful. And so is ePrint, from HP, which goes one step further to allow you to send print jobs to your printer from anywhere on the Internet (with the appropriate security safeguards turned on, of course).

OK, so, a printer to fall in love with. Recommended for small home offices.

Posted at 9:23AM UTC | permalink

Mountain Lion Enablers

Category : Technology/MountainLionEnablers.txt

I've always wondered how Apple's Server Admin app worked, so that it was able to run on any OS X client machine to remotely administer the OS X Server. 

I think I've just found my own way of doing that. Let me backtrack a bit. 

I've been spending the last two weeks or so figuring out how to replace two Cocoa Foundation API calls - namely, AuthorizationExecuteWithPrivileges and AuthorizationCopyPrivilegedReference - that have been deprecated by Apple, meaning they're going away, soon, maybe even in Mountain Lion.

Without them, my GUI apps wouldn't be able to get the elevated administrator level privileges to change things at the system level.

There's another way to do that, that Apple is promoting - via launchd. And with that buzzword as a start, I meandered through a whole stream of other buzzwords - code signing, SMJobBless, launchd.plists, Mach ports, Unix domain sockets and TCP ports - before realising I've just broken through the muck to reach my very own Holy Grail - the ability to remotely administer the server (and safely at that, at least to a certain extent).

And it's fantastic. So much power. I could salivate at the things I could now potentially do. I was getting jaded at the thought of updating my suite of enabler apps for yet another one of Apple's cats. (And so soon, too, after the last one.) 

But now, I'm juiced, thinking about building a version of MailServe that I could run, while on holiday traveling, say, to remotely configure and troubleshoot my server, if it went down.

Of course, these enablers wouldn't ever be allowed in the Mac App Store (because they require elevated privileges). But I'm building them for myself, first of all, and they'll be code-signed by my Apple Developer ID, so they'll still be able to run on Mountain Lion. You just continue to get them from my site. These enabler apps - they have some life left in them, still.

Posted at 8:46AM UTC | permalink

Fri 09 Mar 2012

The State of The Ultimate Business Machine

Category : Commentary/TUBReduxRedux.txt

In the last few weeks, I've built (and shared) one-click installers for the latest (or nearly the latest) versions of MySQL (5.5.21) and PostgreSQL (9.1.2).

The idea behind my fixation with databases is that every business needs control over their operational data, once they get beyond the start-up, lone proprietor/operator stage. The database is the bedrock on which they build operational excellence, efficiency, and control into their business processes.

But databases seem too hard to set up. Don't they need people like IT managers (or other expensive cost-incurring resources) to set up? Not necessarily, if we can make the tools easy enough for an accountant or business owner to use. 

So between these one-click installers to set up databases on the Mac, and a simple-to-use tool which I've developed (which I've called Liya) to design and get data in and out of those databases, I think I'm able to help Mac users get a pretty good headstart.

But wouldn't it be good to be able to get access to this data from an iPhone or an iPad? You can do wondrous things that are only limited by your imagination, if you've got the technical capability to do that.

For example, here's a demo I built, in a couple of days, of an iPad serving as a restaurant menu:

MenuVerDemoPic.png

The pages flip like a real-life menu is supposed to do, but here we have the added capability for the reader to make an order and see the running total of his bill. Now if we can imagine other iPads showing appropriate views of the same data to the cook and the waiter, do you see what I mean about how a database could be the bedrock of a successful, operationally well-run business?

PS: Notice how the menu is able to handle non-Roman script like Chinese, in the screen shot above. That comes for free simply through the ability of Liya's database connectors to work with and do searches on content using any human language.

The secret sauce, so to speak, is being able to get the iPhone or iPad to talk directly to the database, and that's the ability that's built into Liya in all three of its incarnations - on the Mac, the iPhone, and the iPad. The restaurant menu example above is just a more customised version of the same idea built into Liya (customised, i.e., to the data processing requirements of a restaurant) which is - ubiquitous access to databases, from either static or mobile devices.

So I'm glad that I'm now able to keep all these tools up-to-date with all the currently released versions of MySQL, PostgreSQL and SQLite3, and running on almost the latest version of Xcode.

After this, I'll be moving on to Luca and to Mountain Lion, and figuring out to how keep my server-based apps - MailServe, DNS Enabler and WebMon - going in an environment that is increasingly hostile to their existence. I know that I'll still need to use them, for myself, so I'll have to find alternatives to the system calls that I've relied on for them to do their magic, as Apple seems as determined to deprecate them and make these system calls disappear.

Posted at 10:03AM UTC | permalink

Thu 08 Mar 2012

Liya Updated

Category : Technology/Liya205.txt

I've a new version of Liya for the Mac, as well as for the iPhone and iPad (which are awaiting review). It's version 2.0.5 for Mac OS X Lion.

The update contain some bug fixes. And it also includes updated database connectors to match the latest versions of MySQL (5.5.21), PostgreSQL (9.1.2) and SQLite3 (3.7.10).

Also, Liya will now do everything on a Postgres database that it can currently do with a MySQL database.

Liya2051.png

For example, Liya can now do data entry and searches for data in fields with quotes, double-quotes, apostrophes, umlauts, diacriticals, any human language (like Traditional or Simplified Chinese or Tamil), and even partial date strings, for both MySQL and PostgreSQL databases, and it will do it consistently across Mac, iPhone or iPad devices. 

Liya205screenshot1.png

By the way, the script displayed in the picture above is in Tamil and it means, "We, the citizens of Singapore", which I took from the Singapore Pledge WikiPage.

P.S. : I'll be going back to bring Luca for Lion up to date with these improvements.

Posted at 2:18AM UTC | permalink

Sun 26 Feb 2012

MySQLConnector/C and NSAutoReleasePool 

Category : Technology/MySQLConnector.txt

Finally, I can find someone else who sees the same problem as me. There's an excellent page describing how to build libmysqlclient.a from source for both iOS, iPhoneSimulator and Mac OS X. And a code example for iOS, on how to use it. 

So it's good to see a comment from someone who sees the NSAutoReleasePool problems after calling mysql_init(). I was wondering why I seem to be the only one having the problem. And I've been working on this for a long time.

I can build a usable libmysqlclient.a from the MySQL 5.5.21 source. And I'm now working out how to build a similar fat static library for iOS and Simulator.

But it'll be great to be able to build one directly from the MySQLConnector/C source, mainly because it'll not be complicated by the normal MySQL 5.5.x release cycles.

That's why we're so near, with the help from those pages I referenced above, and just a little bit too far, at this point.

Posted at 4:59AM UTC | permalink

Sat 25 Feb 2012

Database Access Clients

Category : Technology/databseAccessClientsFeb2012.txt

I've built new versions of our database access clients, based on the source for the very latest versions of SQLite3 and PostgreSQL, i.e., versions 3.7.10 and 9.1.2, respectively.

The recalcitrant one is MySQL. I can build a new libmysqlclient from source (downloaded from the MySQL Connector/C web page), including making fat i386/x86_64 and i386/armv6/armv7 universal libraries.

The problem comes when I'm running it, and calling mysql_init(); I get all sorts of NSAutoReleasePool errors (autoreleased with no pool in place - just leaking).

I can't believe I can't find anything on the web. Surely, I'm not the only one seeing this. Or it's something so simple that I have missed.

Posted at 5:36AM UTC | permalink

Tue 21 Feb 2012

MySQL 5.5.21 Installer for Lion

Category : Technology/MySQL5dot5dot21.txt

We've just built a new MySQL version 5.5.21 installer for Mac OS X Lion. You can download it right now from here.

If you've been using our previous installers, this will upgrade and migrate all your data from previous MySQL 5.1.x and 5.5.x installations. Very convenient in all its one-click goodness.

P.S.: Next up - updating all our database client libraries to match with all these latest versions - for MySQL, PostgreSQL and SQLite3.

Posted at 12:48PM UTC | permalink

PostgreSQL 9.1.2 for Mac OS X 10.7 Lion Installer

Category : Technology/postgres9dot1dot2Installer.txt

I've just released our one-click PostgreSQL 9.1.2 for Mac OS X Lion Installer

It's the very latest Postgres version. It'll update a previous-versioned Postgres database, especially one that was set up by our previous installers.

And it won't need any fiddling with "syscntl" and "shmmax" on your Mac, whatever those mean.

And, our Postgres won't stop your Mac from going to sleep - great for a MacBook Pro-based development system.

It's the Postgres installer that doesn't suck. Get it now :-)

P.S.: I'm now working on a MySQL 5.5.20 installer. When this is done, we've got up to par with all the very latest versions. And we've updated all our database-access client libraries as well, including SQLite3. All up to date. I've been working towards this for a long time.

Posted at 12:34AM 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.