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.

Tue 22 Apr 2014

Luca 6.0.3 works with iCloud

Category : Technology/LucaForiCloud.txt

We’ve released Luca 6.0.3. The Mac App Store version allows the user to move the accounting database to iCloud, thereby making it possible for the user to review the accounting data from another Mac or even an iPad (using a forthcoming version of Luca for iPad).


Actually Luca is pretty powerful. It allows the user to manage the accounting data for more than just one company, or many branches of the same company, and you can move all of these information to iCloud. I’m looking forward to releasing the iPad version. It’s easier to move around with an iPad, and being able to review the state of the accounts with a variety of relevant people while on the move could make work (and life) more convenient for some accountants.

Luca is actually the reason why we work so hard on Liya. Both use the same database access software and programming libraries that we’ve developed to store data into SQL databases—like MySQL, MariaDB, PosgreSQL and SQLite. But we test them out on Liya in a variety of general purpose situations. Liya is the test-bed, with many eyeballs bearing down on it. It’s been used by almost 25,000 people (mostly developers) since the time we’ve placed it on the Mac App Store. As they say about eyeballs—with many eyeballs, bugs tend mostly to be shallow. Report a bug on Liya and we’ll fix it quickly—because Luca benefits from having a clean, safe, precise database engine. After all, we’re dealing with people’s precious accounting data on Luca and we want these records to be kept pristine.


Just one more aside. See how for so many years at the start, Liya’s download numbers barely registered. We do zero advertising. It’s not that we’re proud of that fact. It’s just that, with limited resources, we tend to allocate most of our energy towards building great products for Mac and iOS users, with very little left over for “marketing". But, as with our “Enabler” products, and with the phenomena variously described, e.g., by Chris Anderson in "The Long Tail”, with the search tools on the Internet, people invariably find us. Well, initially the people on the fringes. Then word spread through word of mouth. And that’s how we get our users. It’s amazing, this Internet. We build the tools. And somehow the people who will like us, find us. It just takes time. But we still get there. After all, I’ve always believed in The Journey Is The Reward. That’s my favourte Jobsian phrase of all time :).

Posted at 11:59AM UTC | permalink

Sat 19 Apr 2014

HuaWei E3276 Dongle and the Retina MacBook Pro

Category : Technology/HuaweiE3276Dongle.txt

I’ve been using the Huawei dongle to get onto Singnet Mobile Broadband at LTE (4G) speeds. Unfortunately it doesn’t work with my new Retina MacBook Pro.


It took me some time to find a driver installer for this particular product that will make it work again with the Retina MBP. It’s actually a driver for the 2013 MacBook Air but it works for the Retina MBP, fortunately, and you can find it here at the Huawei support page.

I’ve kept a copy of the installer on my own download page, in case that Huawei page should move or be deleted in the future. This is the link. Hope this helps someone.

Posted at 6:09AM UTC | permalink

Liya for the iPad 2.0

Category : Technology/LiyaForiPad2dot0.txt

Liya for the iPad is now available on the App Store.


This new version 2.0 can access SQLite files moved onto iCloud by Liya version 3.0.2 for the Mac, which unfortunately is still stuck in review for the Mac App Store.

Posted at 6:04AM UTC | permalink

Sun 13 Apr 2014

Liya 3.0.2 Released

Category : Technology/Liya302.txt

A Fresh New Liya. This a bumper bug fix release. Fixed some of the more quirky user-interface oddities, so it’ll work as modelessly (and smoothly) as I can make it. 

This is the first version to get iCloud support for the App Store version. You can share SQLite files in iCloud with the (soon-to-be-released) iPad version of Liya. 

Fixed a bug when working in Mavericks where the smart quotes get in the way of entering custom SQL commands. 

Also, at some point, MySQL stopped allowing the time zone to be included in a timestamp field. Updated Liya to handle this rejection more gracefully. 

Finally, one oft-requested feature - Liya now reports SQL command line errors when users run custom SQL commands (or when Liya has a bug). 


I’ve made so many changes in this version that I could have introduced even more bugs. As usual bug reports are very welcome.

Posted at 10:14AM UTC | permalink

Tue 25 Mar 2014

Signing Mobile Configuration Profiles

Category : Technology/VPNEnabler1dot0dot3.txt

I’ve figured out how to get VPN Enabler to sign the configuration profiles that it produces. 

If the server VPN Enabler is running on has either a valid SSL cert in OS X’s OpenSSL folder, or even a test cert generated by apps like MailServe or WebMon, then VPN Enabler will give the user a choice to generate and sign a mobile configuration profile, as shown below, when he is creating or editing a VPN user account :


The mobileconfig profile that is generated here will contain the user’s VPN password, in Base64 format. It’s not human-readable, preventing casual snooping, but Base64 is not encryption. It is easily decipherable by any knowledgeable techie. I’m still looking for a way to encrypt the profile data, but this version is useful enough to be released. It can be downloaded now.

Posted at 3:50AM UTC | permalink

Fri 21 Mar 2014

VPN Enabler & Mobile Configuration Profiles

Category : Technology/VPNMobileConfig.txt

I love how mobile configuration profiles work—how it does all the job of setting up network clients to access Internet services (e.g., mail or VPN servers, etc), without users having to enter all the torrid details manually.

So, in version 1.0.2 of VPN Enabler, I included a “Create Config Profile” button that will light up when you click on a VPN User account name. You can save the resulting .mobileconfig file and send it to the user’s mobile device.


When the user opens that .mobileconfig file, e.g., on a MacBook, he’ll see the dialog box below. Go ahead and install it. You’ll be amazed how easily everything gets set up—the system uses the information in the profile to set up all the fields the user has to, otherwise, enter manually into Network Preferences. All the user needs to do is to give the password for the VPN user, when he’s accessing the VPN Server.


The ability to do that is such a God-send. For one, it eliminates the tons of documentation one has to write to guide a user on how to set up Network Preferences, or create mail user accounts on, etc. Secondly, it also eliminates some significant hours of support calls, because even if you have the patience to write detailed step-by-step guides, there’ll still be users who can’t, won’t or are simply unable to follow any kind of instruction. 

Finally, it streamlines organisational processes—like hiring, outfitting, training, and bringing new hires up to speed quickly. One mobileconfig profile can contain, in one packet, all the data needed to help each user gain authenticated access to all kinds of server resources, without too much handholding overheads.

If you have a server with its own digital certificate, like an SSL certificate, you can go one step further—encrypt the mobileconfig file, so it’s not humanly readable. Then, if encryption is available, you can go yet another step further—include all the passwords, so the user doesn’t even need to enter the password on logging in.

You can mail these mobileconfig files to the users, or let them access a password-protected web page to download, install and configure their iPhones, iPads and MacBooks—all at one go, automatically.

It all works so automagically. It’s not like you can’t do this on PCs, or Android devices, but on the Apple ecosystem, everything fits in so snugly and wonderfully, that when you layer such a capability on top, you can get unprecedented levels of efficiency and productivity.

The Mac, complemented by the iOS devices—they’re the Ultimate Business Machines. I shake my head in wonder that I can still hear the familiar refrain—Real Businesses Don’t Use Macs. Well, use Macs. And kill the competition.

As if to underline my point about efficiency and productivity, in the manual setup of the VPN client, there’s one obscure button called “Advanced” that we have to teach the user to click, just so he can access this dialog box to set a particular checkbox, the one titled “Send all traffic over VPN connection”. It’s obscure and difficult to explain to a user, but without this option being selected, he can’t go out through the VPN connection to access (otherwise) blocked sites like Facebook and Twitter, which is the whole point of using the VPN. 


But the .mobileconfig file can be made to select this option for the user automatically, so you don’t even have to trouble yourself to explain all the drab technology things that go with it. 

Just click, install, run, enter the password, and go. What could be easier than that?

And even the password step can be eliminated, if we can encrypt the mobileconfig file—which is what I’ll be working on next.

Posted at 1:53PM UTC | permalink

Mon 17 Mar 2014

Liya 3.0.1

Category : Technology/Liya3dot0dot1.txt

I’ve figured out how to tell whether a running app was downloaded from the Mac App Store, or directly from our web site. With that, I can now build in features for the non-App Store version that go beyond the constraints placed by Apple in their curated wall-garden. For example, there is no need to Sandbox apps that are not going to be distributed from the App Store. The Sandbox is a pain and makes the user interface clunkier than it should be.

In Liya’s case, the Sandboxed App Store version requires all SQLite files to be opened via NSOpen Panels. Therefore I can’t just let the user type or paste the URLs directly into the relevant entry fields in Liya’s interface. They’re forced to navigate everywhere via the Open Panel dialog box. It’s a pain, and the users complain about the loss of freedom to move from point A to point B.

The non-App Store version of Liya retains the purity of the original idea - you can go from A to B in at least a couple of alternatve ways and you choose the faster one always.

So, so long as Apple remains determined to close up the Mac the same way they did to iOS, we’re going to have to live with this.

Liya without the closed up URL box can be found in Liya 3.0.1, which also restores the app’s ability to let the user check back with our site for updates. You can get it from the Liya web page now.

Posted at 1:59PM UTC | permalink

Sun 16 Mar 2014

Luca at the Mac App Store

Category : Technology/LucaAppStore.txt

We’ve released Luca for the Mac App Store, for only US$9.99.

Screen Shot 2014-03-16 at 11.22.51 am.png

But this is a stand-alone version of Luca (with no access to MySQL or Postgres databases, relying only on the built-in SQLite database to store its accounting data) and since it's in Apple's curated wall-garden, it may lack features or innovations that the non-Apple Store version may sprout, going forward. 

But we hope that offers a great low-cost way to try out Luca, for a start. Do check it out if it fits your needs.

I’ve also released a new Sandboxed version of Liya for the Mac App Store (version 3.0). Now that we’ve learnt how to work with the app Sandbox, it’s time to learn how to work with iCloud.

Posted at 3:39AM UTC | permalink

Mon 10 Mar 2014

Liya 3.0

Category : Technology/Liya3dot0.txt

I’ve released a new version of Liya, which makes Liya conformant to Apple’s App Sandbox guidelines for the first time. I had a problem working with SQLite files under the App Sandbox because SQLite creates a new file when the database is updated and saved (but the Sandbox only allows updates to the same file a user has opened and won’t allow an app to create new files in most folders outside designated user folders like the Home directory).

I couldn’t move ahead until my friend, Hai Hwee, solved the problem with the Sandbox, for the accounting app she is working on, called Luca, which we’re getting ready to sell on the App Store. That definitely had to be sandboxed and, necessity being the mother of invention, she found a way through and, since Liya and Luca share the same database access code, Liya is the beneficiary.

With this settled, I can now move on to making Liya work with iCloud and, hopefully even DropBox. 

But for now, Liya 3.0 is ready for download (though the App Store version is held up by Apple’s interminable approval process). 

With this version, Liya is also able to read SQLite dates created by Core Data (that are stored as a certain number of seconds from January 1st, 2001). Plus there are some bug fixes and minor interface improvements.

Posted at 11:03AM UTC | permalink

Wed 26 Feb 2014

Controlling Web and Mail Servers from the iPhone or iPad

Category : Technology/libshh2.txt

I’m trying out the libssh2 library for iOS. It allows me to do something like this, connect back to my web server from my iPhone (or iPad) and run some shell commands on that server and return the results to my iPhone. For example, I can grab a few lines from my Apache log file and see who has been hitting my server, in real time. In effect, this allows me to build a version of WebMon on the iPhone.

It looks like an interesting thing to do. Will see how far I can go with this.

Again, feedback is welcome. Let me know if this is something that will be useful to you, too. I work harder on things that people want to use :)


Other things we’re (i.e., my friend and co-programmer, Hai Hwee, and me) working on now:

One. Liya and Luca. OS X and iOS Sandbox compatibility. Specifically, we are trying to see if we can open and save SQLite files from anywhere on the file system, without restriction, and still maintain compatibility with the Sandbox. Not so easy to do because dealing with the Sandbox is a real pain.

Two. Liya. How to handle SQLite dates saved by Core Data, which uses a different reference date from that used by Unix systems. So, I can now handle dates saved as a certain number of seconds from a certain reference date but I’ve yet to find a way to handle the conflicting start dates used by the two systems, Unix and Core Data, smoothly and transparently to an end user.

Three. We’re getting a version of Luca ready for sale on both the Mac and iOS app stores.

Four. Lots of people downloading LDAP Enabler for Mavericks, but I’m still not able to make Postfix and Dovecot authenticate with the LDAP Server, so enabled by my enabler on Mavericks systems. It used to work on versions of OS X prior to Mavericks, so how come it doesn’t work now? I’m still looking for a solution.

Five. Lots of things to improve on all my “enabler” apps. "So much to do and so little time in a day” ® ™ :).

Posted at 7:39AM UTC | permalink

Tue 25 Feb 2014

VPN Enabler for Mavericks

Category : Technology/VPNEnablerForMavericksWebpage.txt

I have a new documentation page for VPN Enabler for Mavericks. The current version is 1.0.1. Enjoy !

As far as I can tell, the VPN Server that I’ve set up using this enabler app continues to be used by my friends in China. So, yes, Let a Thousand VPN Servers Bloom.

Posted at 4:14AM UTC | permalink

Fri 20 Dec 2013

WebMon for Mavericks 7.0.2

Category : Technology/WebMon7dot0dot2.txt

I finally found the time to update WebMon for Mavericks. The scrolling performance of WebMon’s (Apache Web Server) Log Window in Mavericks was rather weird, and sometimes it doesn’t refresh itself until you try to scroll the table view.

Version 7.0.2 fixes it and scrolling is much smoother now.


If you can look at the log records for my “live" web server, above, you will see that the most downloaded pieces of software from my site are for Liya (a data management tool for SQL databases) and for the MariaDB installer. Both are free software, of course, but I’m surprised by the popularity of MariaDB on Mac OS X, which is a “drop-in” replacement for MySQL — for those of us who are kinda concerned about the future of MySQL under Oracle. 

I have a MySQL installer, too, but the downloads for MariaDB far exceed that of MySQL, from my site. Ok, it could be that there are other sites that provide one-click installer downloads for MySQL. But I think my installer provides a Preference Pane that works much better than even the one you could get from the official MySQL site. And then it plays nice with MariaDB, if you have both database systems running on the same Mac. So, what I can tell is, there are a lot of people running MariaDB on Mac OS X.

And, one more thing, I’m surprised, but then again not, that Sendmail Enabler (remember this?) is still being downloaded. There is one way in which software, as a merchandise, is quite unlike fish or meat or newspapers or most other produce – it doesn’t get stale. Because of this thing called “The Long Tail”, there is always someone, somewhere in the whole wide Internet who needs something that you think would have run its course by now, if you didn’t know better. I still get money from Postfix Enabler — in each of the last three months. So I never take things off my “shelf”. I’m happy to keep them on my virtual shop window, as long as I’m physically alive and kicking in the real world, or even hereonafter :)

Posted at 10:52AM 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.