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.

Sun 11 Apr 2004

Poetic Licenses

Category : Commentary/gnu.txt

I'm reading the Free Software Foundation's definition of the GNU General Public License (GPL), as well as some very interesting pages, like this on selling free software.

Let's say, I'm now able to add a new panel (say, for Spam Control) to Postfix Enabler and, among the new features, is an ability to generate very detailed mail statistics. Let's say, also, I'm thinking of using pflogsumm, a Perl script written by Jim Seymour and distributed under the terms of the GNU GPL, to save time writing a log analysis tool of my own.

Now, if I were to download, install and use pflogsumm for my own use, in my own projects, I can use it freely, both in the "free beer" and "free speech" sense - i.e., I don't have to pay to use it and I can make any modification to the source code as I need.

But, if I want to embed its use within a larger piece of software that I wrote myself, and distribute the whole as a package, what happens?

I think the relevant rule is found in the following paragraph in the GPL :

"These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it."

- the key sentences being, "...this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License" - (italics added).

Therefore, if we build and sell an accounting system that interfaces with MySQL, an Open Source database system that is also released under the terms of the GNU GPL, then I think it's safe to say that the accounting system can be released as a proprietary product because the two are clearly separate products.

However, I think but I'm not sure, if I build something like this (below), then Postfix Enabler has to be released also under the terms of the GNU GPL :

It's interesting to work through the implications. For example, let's take ourselves through these scenarios :

Does the GPL allow me to sell copies of the program for money?

"Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge. (The one exception is the required written offer to provide source code that must accompany binary-only release.)"

Does the GPL allow me to charge a fee for downloading the program from my site?

"Yes. You can charge any fee you wish for distributing a copy of the program. If you distribute binaries by download, you must provide "equivalent access" to download the source--therefore, the fee to download source may not be greater than the fee to download the binary."

Does the GPL allow me to require that anyone who receives the software must pay me a fee and/or notify me?

"No. In fact, a requirement like that would make the program non-free. If people have to pay when they get a copy of a program, or if they have to notify anyone in particular, then the program is not free. See the definition of free software.

"The GPL is a free software license, and therefore it permits people to use and even redistribute the software without being required to pay anyone a fee for doing so."

If I distribute GPL'd software for a fee, am I required to also make it available to the public without a charge?

"No. However, if someone pays your fee and gets a copy, the GPL gives them the freedom to release it to the public, with or without a fee. For example, someone could pay your fee, and then put her copy on a web site for the general public."

---

So "free speech" would, probably, lead eventually to "free beer". It's hard to sell a product for a fee if somewhere else it can be downloaded, legally, for free. I believe people would only do it if the add-ons it brings - like consultancy and training projects - are worth more to the company than any revenue lost from releasing the product for free.

And so, if I'm unsure whether to release Postfix Enabler under the GPL, then using pflogsumm now is out of the question because :

If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?

"Yes, because the program as it is actually run includes the library."

At this point, I think the issues have become clear.

SpamAssassin and all the Perl modules it uses are released under the Perl Artistic License (though Spamassassin from 3.0 on will be released under the Apache Software License, according the Spamassasin site), which doesn't appear to have the copyleft restriction. The Free Software Foundation site has a very interesting page comparing the features of each of the known licenses against the GPL.

So, if you're looking to hire an Intellectual Property lawyer (lots of people getting into this field), quiz him all the nuances of all these licenses and watch to see if he starts to drown.

Posted at 8:23AM UTC | permalink

Wed 07 Apr 2004

Time Compression

Category : Technology/timecompression.txt

Success with spamassassin, too. So it is possible to install spamassassin on one Mac, get logGen to determine precisely which files came in with the installation, copy over just these files to the right places in another Mac, and get that other Mac to run spamassassin, too. The difference being that, for that other Mac, you don't have to go through the download-build-and-install cycle again. And you don't need it to have the Developer Tools installed, so it can be any standard Mac.

Time saved? A typical download-build-install cycle can take about two hours. I made a mistake today and ended up using close to four hours debugging it - you can never get all the steps right because we're only human.

And, if you don't know how to do it, and need to figure all these out from scratch, it can take almost forever.

So we've come from forever, to four hours, to two hours, to half an hour - i.e., if I'm just manually copying the required files to the right locations (which I've packed and marked as to where they should go). Now, if I put all these into a script, it can be done in seconds. From days to seconds.

This was how the first version of Sendmail Enabler got done - I was fed up with always forgetting a step here or a step there whenever I have a to set up a mail server but I don't set up mail servers often enough to want to stick this in my head. Plus they're all so boring.

I'm reading "Education for a Bright Future - The Goals of the Kumon Method of Education" by Hiroshi Kumon, the son of the founder of Kumon. And I was thinking about how this could be what his father meant by arithmetic training being the foundation of all other skills. I'm wondering if the idea for doing what I've just done didn't come from the ability to see AB + AC + AD = A(B + C + D). Like A being the copying process and B+C+D being the sum of all the installations and we can just take the final state and use it in all our subsequent transformations.

Posted at 10:53AM UTC | permalink

Tue 06 Apr 2004

Mail Stats

Category : Technology/MailStats.txt

Success. I'm now able to make the Xserve produce mail statistics like this :

Postfix log summaries for Apr 6

Grand Totals
------------
messages

5 received
5 delivered
0 forwarded
0 deferred
2 bounced
0 rejected (0%)
0 reject warnings
0 held
0 discarded (0%)

14483 bytes received
17981 bytes delivered
1 senders
1 sending hosts/domains
4 recipients
4 recipient hosts/domains

... and lots more, including Per-Hour Traffic Summary, Host/Domain Summary: Message Delivery (top 150), Host/Domain Summary: Messages Received (top 150), top 100 Senders by message count, top 100 Recipients by message count, top 100 Senders by message size, top 100 Recipients by message size, message deferral detail, message bounce detail (by relay), message reject detail, message reject warning detail, message hold detail, message discard detail, smtp delivery failures, Warnings, Fatal Errors, Panics, and Master daemon messages.

They're everything a mail administrator would need. All these are generated by a piece of software called pflogsumm.pl by James S. Seymour. It is distributed under under the terms of the GNU General Public License as published by the Free Software Foundation.

I'm starting my exploration of Perl modules with pflogsumm because it's small, yet it does something very useful, and it's dependent on a Perl library called Date::Calc which, in turn, is dependent on a few other Perl modules.

The first question I was trying to solve is : how do we figure out precisely what Perl modules are needed? Until I discovered logGen, I didn't have a reliable way of knowing this. The second question is : now that I know which ones are needed, and where they need to be stored, can I simply copy them over to another machine, and have them work, even if I had not loaded the Developer Tools on this other fresh machine.? I've just proven that they will work. Which means that it is possible to build an installer that will automate all these activities. So, instead of taking about twenty minutes to do it manually, it will only take a few seconds to get this set up on any standard machine.

Which brings me to the next question. Let's say, I'm now able to conceive of a version of Postfix Enabler that will install all the things that are needed to run pflogsumm, and then provide the user with an interface that will generate mail statistics in all the variations that are built into pflogsumm, am I allowed to do that?

This is the next part of the learning process. We've got to check the license agreements for pflogsumm, as well as Date::Calc, and all its dependent modules. Plus trying to understand the implications of the GNU GPL and the concept of "copyleft". Does using pflogsumm mean that Postfix Enabler has to be released under the GPL, too? It's not something that I would mind and I had always thought that that was the consequence of the viral nature of the GPL. But I've just re-read the GPL and realised it's not necessarily so. So I'll learn something from this.

I remember the old Reebok tag-line, "Life is not a spectator sport". You learn deeper and faster when you throw yourself into the tackle.

Posted at 5:19AM UTC | permalink

Mon 05 Apr 2004

logGen

Category : Technology/logGen.txt

I read about logGen in MacSurfer on Saturday (which pointed to me to Macosxhints). It's interesting how things turn up just when you need them. This looks like what I need to keep track of the Perl modules. For example, if I install Date::Calc, I will get an output like this after running logGen :

logGen -- version 1.0
Copyright 2004 - The Regents of the University of Michigan
All Rights Reserved

45 new files:
---------------
/Library/Perl/5.8.1/darwin-thread-multi-2level/Bit/
/Library/Perl/5.8.1/darwin-thread-multi-2level/Carp/
/Library/Perl/5.8.1/darwin-thread-multi-2level/Date/
/Library/Perl/5.8.1/darwin-thread-multi-2level/auto/.DS_Store
/Library/Perl/5.8.1/darwin-thread-multi-2level/auto/Bit/
/Library/Perl/5.8.1/darwin-thread-multi-2level/auto/Date/
/Library/WebServer/.DS_Store
/System/Library/Perl/5.8.1/CPAN/Config.pm
/man/
---------------
2 changed files:
---------------
/Library/Logs/PasswordService/ApplePasswordServer.Server.log
/System/Library/Perl/5.8.1/darwin-thread-multi-2level/perllocal.pod
---------------
0 deleted files

So this tells me that these are all the new stuff that came in with the Date::Calc installation, including all the modules Date::Calc depended on, and where you can find them.

Neat. Even if I had monitored the terminal window like a hawk during the Date::Calc installation, I would never have figured this out. An alternative is to compare the state of the file system using two machines. (Actually I did that and realised I would have needed three machines, with one serving as the baseline.) But this would be too tedious and almost impossible to get right.

So logGen is a great tool and I'm sure I can find even more use for it.

I can see that the installation process wrote something into perllocal.pod. Perhaps there's a short cut to all this if I know enough about Perl and maybe the answers are all in the pod file. But you learn things any way you can.

Posted at 12:36PM UTC | permalink

MacSurfer and why I need to think about what I'm writing

Category : Commentary/macsurfer.txt

Oops. I didn't think MacSurfer would link to my last post. Why would they want to do that? You really got to think about what you're putting down in a weblog. One moment you're typing as you're thinking, in the quiet of an empty office on a Saturday morning (save for the sound of the Xserve), and the next they're all over the web.

I'm thinking, maybe, "then, don't put it down". But I do have something to say - because you really got to understand what you're saying when you say that the Mac is so easy to use and it needs so little maintenance, because this could have actually worked against the Mac over the years.

The way to solve this (but it's not easy) is to make the IT guys see that there are so many more interesting things they can do, if they can get quickly over the make-work stuff - like installing, configuring, pulling in and out expansion cards, setting dip switches, etc - and, more importantly, that they will be better rewarded if they do those other stuff.

And what might these be? I believe it's an interesting job to try to understand, first, how a business makes its money, what revenues it has to bring in, and what costs it needs to incur doing that; and then, to work out what information it needs to control both the inflows and the outflows.

You start off with empathy and curiosity, work the requirements through with creativity (guided by a vision of how technology could be made to substitute for any combination of land, labour or capital), and then finish off the work with a command of that technology.

The problem is that most IT guys have no interest beyond technology, while most business owners have no interest in technology.

I don't think we have to worry too much about the IT guys. They will go where the money is. At the moment, their thinking is probably, if we're so smart, then why are we not rich (after all, we've got barely 2% of computer users to work with)?

I believe the solution is to find business owners who share a similar insight about technology, who're able to make out make-work from real work and will therefore reward accordingly, and then work, really work, to help them kill their competition.

Or, if you can't find a business owner you can work with, find a business you can run with your own technology (just look at Entrepreneur.com - they have tons of business ideas), and then try to kill your competition.

In either case, the key is to prove that you and your clients will get rich following the Mac Way of doing IT. (You've got include yourself in this quest; otherwise there's no point doing this). Nothing else, not even mega-AppleCentres, will be enough to win this game.

Posted at 9:21AM UTC | permalink

Sat 03 Apr 2004

Postfix Enabler on Mac OS X Downloads Page

Category : Technology/PostfixEnableronMPGPage.txt

Postfix Enabler has been placed on Apple's Mac OS X Downloads page, as well as on Mac Products Guide. I'm seeing quite a lot of hits and downloads. But no PayPal notifications. Oh, well. If everybody who uses it would just pay a dollar, I would be really rich this year. Maybe next time we have a good idea, we'd do something like that right from the start.

It's been stuck on 1.0.9 for some time. I'm not sure if any of the things I'm doing over the next week will amount to a 1.1. Probably not. Maybe I could get a version with Michel Poulain's anti-virus filter incorporated, plus an ability to set up RBLs (Realtime Blackhole Lists). But I've said I would do that for some time, but I don't yet know how I'll find the time.

The things I'm doing on Panther Server are a bit different. The idea is that quite a few enterprises (from large to small) would be interested in an Xserve - especially if it comes with spam and anti-virus filters (at the moment I only know how to do the SpamAssassin/Anomy thing) and the ability to produce detailed mail traffic analysis reports already bundled it.

Now, these guys at Apple Singapore could come to me each time they need to ship this particular combination. But they would love it if I could build for them a Postfix Enabler-like installer. Then we've brought the costs down for everyone and presumably everybody's going to be happy. I've a slightly different take on the economics of doing this (actually, why would I want to do that? the more mystical the process, the more I can charge, so I'm working against my own interests; see, these issues are really subtle; no wonder people like John Nash, who studied game theory, went a bit awry), but of that another day. But this is the general idea.

So why can't this be done for the donation-ware Postfix Enabler? Firstly, SpamAssassin is dependent on a collection of other Perl libraries. To get these built, you'll need to have Developer Tools loaded. Then, my impression is that these libraries are then installed all over the place (I'm going to spend a day or two confirming this). Postfix Enabler must have been downloaded at least 15,000 times. It'll be a nightmare to make sure everybody has Developer Tools installed and then to get all these Perl stuff loaded to the right locations. (I think Mike Poulain had the right idea with his anti-virus filter, though it does require Virex which comes with a .Mac account - his solution doesn't need all these dependent Perl libraries or Developer Tools - it'll work on any standard Mac).

Then there is the idea of copyright and license agreements and whether I would be allowed to bundle things like SpamAssassin. The people who own UW-IMAP gave their permission readily for me to bundle it with Postfix Enabler. But it was still a bit of work to get it, as well as to add some stuff into the Postfix Enabler interface to help protect their interests. In the Panther Server case, I believe I can leave this to the other guys I'm working with to worry about. I'm trying to automate a process that would have to be done quite laboriously in-house, anyway, if I couldn't find a way to systematise the whole thing.

Great, while writing this, the Panther Server installation on the Xserve is already done. It's fast, even on a G4. I'm just doing a Software Update, and then I'll be on my way. So I have two Panther Servers set up now - one on an iMac and the other on the Xserve. This way, I can keep one as the baseline to check what's loaded by default, and what came in as a result of my installations.

Posted at 4:35AM UTC | permalink

Fri 02 Apr 2004

Panther Server Administration

Category : Technology/pantherserverreview.txt

It doesn't take too long to install the Panther Server. Even on an old iMac. Most of the stuff you'll find loaded on the hard disk will be familiar to any Mac user - except for the server-specific applications you see below.

Of the lot, the Server Admin, Workgroup Manager, and the Server Monitor are the key applications. You can run these on any Mac and these, together with the Terminal application, will allow you to administer the server machine remotely.

The Workgroup Manager is used to create new user accounts, organise them into groups, and set up their resource allocations, e.g., whether they're allowed to use the mail server, how much space they're allowed on the server hard disk, and, interestingly, how many pages they're allowed to print on each printer for whatever number of days (if this is what you want to control), among a few other features that I don't yet have the time to explore.

The Server Admin application allows the administrator to turn on or off Internet services (like the web, mail, print and ftp servers), and control their individual settings.

Finally, the Server Monitor is really meant for controlling the Xserve. Typically, the Xserve is placed on a server rack, without monitor or keyboard, and left in a server room. The Server Monitor allows the administrator to check on the physical state of Xserve - like its temperature and hard disk/memory utilisation - from wherever he happens to be.

Of course, he can also use the Terminal application to log in remotely to the server and do things from the command line.

So we'll be working with this beast on two levels - one on the surface using the admin apps, and another below the surface in the murky depths of Unix - and we'll see how these two interact.

Posted at 12:27PM UTC | permalink

Xserve

Category : Technology/Xserve.txt

The Xserve looks deceptively thin and light on Apple's web pages. So it was a surprise how big and heavy the Xserve box is :

The next picture shows the contents, laid out on our floor :

And the Xserve, itself. It's a G4, Dual 1 GHz, with 512 MB of RAM :

I've hooked it up to a PC monitor, borrowed the iMac's keyboard and mouse, plugged in the Ethernet cable, and turned it on. It's like a jet plane taking off. I mean the sound. It's loud. I'm going to have to live with this for the next two weeks. At this point, I don't think I'm going to miss it when it's gone.

The Xserve starts up like any Mac. No, not like any Mac I'm currently using because it's fast. Very fast. How much faster would the new G5 Xserves be, then? It's looking good.

It's currently running 10.2.8. I'm going to erase everything on it and start from scratch with 10.3. Then I realise I don't know where the CD-ROM drive is.

Okay, found it. It's on the top right. Will carry on with the installation as soon as I can find the Panther Server CD's.

Posted at 9:46AM UTC | permalink

Thu 01 Apr 2004

Panther Server on Xserve

Category : Commentary/stuffOnXserveList.txt

We're going to get an Xserve from Leon at Apple tomorrow. It's for the Sun Tech Day. I'm making a list of the things we're trying to get loaded on this machine :

OS X Server 10.3.3 and Java 1.4.2.

Xcode 1.1, Eclipse, NetBeans, JBuilder, and IntelliJ's IDEA to show the array of development tools that OS X can support.

MySQL and Oracle. Plus the CVS system.

Luca, our accounting application, hopefully both as a Cocoa application as well as on the web. And all of our Java demos that we built for the "Java on OS X" course.

Plus, some demos from Leon's iDisk that I hadn't looked at yet.

So if you're in Singapore on the 20th and 21st of April and want to see all these working on an Xserve, come and visit the Apple booth at Sun Tech Day, at The Stamford.

Posted at 7:09AM UTC | permalink

Kamikaze Franchises

Category : Commentary/franchise.txt

It's the gold rush. It's the time to be your own boss. Or so everyone thinks. There are lots of free seminars one can attend about starting your own business. I attended a couple and I'm hooked - I'm going to sit in on a few more. Partly to clear my own head. But mostly to watch this tide run its course.

Lots of people selling franchises. Great business, if you're the franchisor. Not so, if you're the franchisee. Too many people reading Robert Kiyosaki - and quite a few, I believe, are going to lose their shirts.

The question is : what's the difference between a McDonald's and a child care centre or a computer-aided learning centre, when they're all sold as a franchise?

Franchising is the easy way in. You can create your own business, buy over someone else's, or buy a franchise with all the templates, powerpoint slides, and letters to parents laid out for you. If you spent your whole life scoring A's in exams by memorising "model answers", which route would you take?

But McDonald's have squeezed out almost all dependencies on the human element from their workflows and processes. That's the McDonald's way and it's the archetypical franchisable business. But nobody I know has figured out how to replace the quality a human being brings when it comes to taking care of a child, or motivating kids to learn through the joy of discovery. How much money can these businesses make, when the operators have no idea what it takes to create their products, do not understand the products they would be selling, and have left staffing as an afterthought?

I think the key question to ask is : can the business produce a consistently high-quality product, when operated by any normal human being? In other words, have they found the key to making it work like a well-oiled machine, where a specific role can be performed by any mere mortal? Child care and learning centres are still businesses that ought to be run by people with a love for kids and helping them learn and grow. It's not like a method can't be found to systematise the delivery of these services. Somebody just might be able to find the right idea. But the ones doing the selling last night most definitely didn't. Then what are they selling?

So some businesses will work as a franchise and some won't. The key is to figure out the rules of each game. Of course, anybody can attempt to sell any business as a franchise. But, caveat emptor, let the buyer beware. Because the would-be hunter might just end up as the prey.

Posted at 6:38AM UTC | permalink

Wed 31 Mar 2004

"Tired of working? Be an entrepreneur"

Category : Commentary/tiredofworking.txt

This ad made me laugh so hard. I'm looking at the Business Opportunities section of the Straits Times classifieds.

If you're going to be an entrepreneur just because you're tired of working, you're going to be hit so hard, you wish you hadn't been born.

Welcome to the grind. But, seriously.

Posted at 9:58AM UTC | permalink

Thu 25 Mar 2004

The Good (Computer) Books Guide

Category : Commentary/goodbooks.txt

I'm going over the Panther Server, peeking under the hood, but I keep thinking about a couple of books I've read as I'm doing it. I don't know why but, maybe, I'm thinking about what it takes to put all these technologies together.

Tracy Kidder's "The Soul of a New Machine" was probably the book that started the genre - the one that made reading about computers and computer companies fun. Who remembers Data General, or DG, or Damn Good, as their then Singapore-based GM called his company, when he gave a talk to us students, back in 1983? It's twenty years on. From the mini-computer to the workstation, to the iBook. I've worked on them all.

The other hacker classic is - "Hackers" by Steven Levy. In there, you'll meet Richard Stallman, and recursive acronymns, and GNU's not Unix.

If you haven't read them, then you ought to. If they work for you the way they worked for me, then you might also want to read : "Rebel Code", Glyn Moody, about Linux and the Open Source Revolution; Jeremy Campbell's "Grammatical Man"; Downes and Mui's "Killer App"; and Nicholas Negroponte's "Being Digital".

Also, "Open Sources" - Voices from the Open Source Revolution, which is not that good, because it's really a collection of articles of varying quality, but interesting, all the same.

Posted at 11:30AM 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.