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 08 Aug 2012

More Mountain Lion Differences

Category : Technology/NSTextFieldsInMountainLion.txt

Luca has been hit by another stealth change Apple made to Mountain Lion. 

NSTextFields in Mountain Lion now appear to have auto-formatting turned on (which is not the case with previous versions of OS X). In other words, when a number value is entered into a text field, the text field will automatically format its appearance according to the number display format the user had chosen in System Preferences. 

For example if 2012 is entered into a text field, NSTextField will automatically format it as 2,012, as shown below. 

NumberTextField.png

If you entered "abcd" into the text field, that will of course be displayed as "abcd". All very convenient. But if 2012 stands for the year we want to capture data for, then displaying it as 2,012 looks rather odd. Worse, when we take the value back as a string value and use it to compare against another string value like "2012", we find we're comparing "2,012" against "2012", thus throwing a lot of the embedded (and assumed) programming logic out of whack. 

And Luca isn't the only app that sits uncomfortably with this latest change that Apple deems fit to make. Look at Network Preferences, when you try to enter a port number for a network proxy :

NetworkPrefsProxy.png

Look at how the port number 8080 ends up looking like 8,080.

So, in Mountain Lion, we've had to go through a lot of our code to clean up stuff like that. There may be more lurking that we have not yet spotted. So let us know as soon as you see something that isn't working as it should.

Luca for Mountain Lion has now been updated to 5.0.1. Available now.

Posted at 2:57AM UTC | permalink

Tue 07 Aug 2012

MailServe on Upgraded Mountain Lion Macs

Category : Technology/MailServe6dot0dot2.txt

If yours is an upgraded Mountain Lion machine, as opposed to one that has been clean installed, you may see this problem in the log :
Aug  6 07:57:41 iMac.local postfix/postmap[2571]: fatal: bad string length 0 < 1: mydomain_fallback = 
Aug  6 07:56:54 iMac.local postfix/postqueue[2537]: fatal: chdir /Library/Server/Mail/Data/spool: No such file or directory
A clean-installed machine is OK - it doesn't exhibit this problem.

If yours was an upgraded Mountain Lion machine, the problem is that Apple assumes that it is doing a Mountain Lion Server upgrade and gives it the "wrong" main.cf file (meant for Mountain Lion Server).

Don't believe? Look at this in Startup Disk, Systems Preferences :

StartUpDiskAfterMtnLionUpgrade.png

My Lion partition on the left was upgraded to Mountain LIon, as opposed to clean-installed, unlike the partition on the right. The upgraded one shows OS X Server, 10.8, while the clean-installed showed OS X, 10.8, as it should.

I have a new version of MailServe, 6.0.2, that attempts to fix what Apple has wrought.

It attempts to give you a main.cf file in /etc/postfix that is meant for Mountain Lion client. I don't use /etc/postfix (I have my own installation directory in /usr/local/cutedge/postfix) but built-in commands like sendmail, PHP mail, and the mail command line still use the postfix config file in /etc/postfix, and that's the one emitting all these messages.

To fix this, run MailServe 6.0.2 and do a de-install from the Help menu. You must first make sure that Postfix and Dovecot are not running. Option-Click on their respective buttons to stop them. (Note :You may want save the current config from the File menu first). I patch the faulty /etc/postfix/main.cf in the de-install process.

After starting postfix again in MailServe, Mail.app should work with your server, plus all the other command line tools.

Posted at 12:26AM UTC | permalink

Mon 30 Jul 2012

DNS Enabler for Mountain Lion ver 6.0.1

Category : Technology/DNSEnabler6dot0dot1ForMountainLion.txt

I have a new version of DNS Enabler for Mountain Lion out. The Allow Dynamic DNS Updates check box in version 6.0 wasn't being synchronised with the actual state of the system, due to some new case-sensitivity issues in Mountain Lion. Version 6.0.1 fixes that.

Posted at 2:27AM UTC | permalink

MailServe on Mountain Lion Server

Category : Technology/MailServeOnMLServer.txt

Looks like MailServe will work on Mountain Lion Server also. Just leave Server's own mail service turned off. The Fetchmail that's bundled into MailServe will also work correctly then.

I'll test Lion Server more thoroughly when I can find the time, in a couple more weeks.

Posted at 12:28AM UTC | permalink

Fri 27 Jul 2012

Upgrade to Mountain Lion

Category : Technology/UpgradeToML.txt

I've got every one of my apps now running on Mountain Lion. There's a lot of powerful technologies underneath in every level of Mac OS X Mountain Lion (and in iOS 6). So it's something that I really want to build on (if only Apple could slow the pace of the changes so that we can actually build more new features, than re-tooling stuff to fit the changes they wrought).

So I want to encourage every one to get on board Mountain Lion by making any previous version of our apps upgradeable to its Mountain Lion version at the same standard upgrade price of $15 (except for Luca which is a bit more but I'm also thinking about that one), even all the way back to Postfix Enabler.

This way I can focus all our energies on this single latest version of OS X (and on iOS6) and integrating the features across all the Apple devices. Do check out the whole range of all our apps on our main Cutedge web site. Thanks to all the people who're upgrading – it's like seeing old friends once again.

Posted at 11:13PM UTC | permalink

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

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.