Thursday, August 30, 2007

ZDNet: Consulting objectivity

I've been quoted extensively in Paul Murphy's blog over on ZDNet. Basically, it's a discussion of the pros & cons of an outside consultant broadcasting his personal preferences early in the consultation. (Spoiler: I think it's a bad idea.) It's extensively discussed in the Talkbacks on ZDNet, and I feel I've made my position clear. So, I really don't feel the need to rehash it here, and I refer you to Murphy's post (and my responses there).

It grew out of an earlier discussion of a hypothetical startup company, so you might want to read that first. In the responses I accuse Murphy of doing his hypothetical client a disservice by walking in with an agenda. Actually, I say I'd fire him. I really recommend reading the entire thread from which Murphy excerpts my quotes. It starts here. If nothing else, it's an example that people can, in fact, strongly disagree on the Internet without triggering Godwin's Law.

Tuesday, August 28, 2007

VIC CRM: Importing a Notes Addressbook (and upcoming changes)

One of the most frequently asked questions I get about VIC CRM is how to synch the Index with a Notes addressbook.

The short answer is, you can't. But -- and it's an important "but" -- "synching" is a two-way street. You can import an addressbook from either Lotus Notes or Microsoft Outlook. And, you can use the Index itself as an addressbook, so synching usually isn't necessary.

The reason synchronization isn't included is a little complicated, but it's mostly just a decision on my part. VIC is an application, and in writing it, I really have no idea how you're going to use it. I only know how I use it, so unless you contact me, I'm writing for me. Also, VIC is a fairly vanilla platform that can be customized for your use. In fact, I expect that you'll customize it. As such, there are some self-imposed design guidelines I follow.

First and foremost, I never depend on customizations external to the application. Some packages (such as OverQuota, the precursor to Relavis eSales) synch with your mail database by providing a customized mail template. I really hate that, so VIC is designed to handle all interaction with the mail template without touching the design of the mail template itself. This means that with with VIC CRM you're not locked out of upgrades to Lotus Notes as you often are with other packages. The current version of VIC requires a minimum notes version of 6.5, but there is no upper limit to the version until IBM breaks backward compatibility. This means you can upgrade to version 7 or 8 of Notes without having to stick with the old mail templates. It also means that you can (as I do) use the OpenNTF Mail Experience template, which is much better than the one provided by IBM.

Secondly, VIC is intended for a broad range of users. I don't know what your needs are, and I try not to bloat the system with a bunch of functionality that's not broadly usable. It means that synchronization to external addressbooks, directories, financial data, etc. is best done as customizations. Of course you could hire me to do them, but the important thing is that you don't have to... you can hire anyone to do them because the code is open.

Another reason addressbook synchronization isn't included is because the VIC Index is an addressbook. Just add it to your Local Addressbooks list in your Notes User Preferences. Here's how it looks for me:

Piece of cake. Now I can use the VIC index to address any Notes mail to a VIC contact. Notice the red circle-and-slash icons next to some of the contacts in the illustration: these are customers that don't have email addresses. Why even include them? Well, I tried leaving them out, but that just confused people who thought they were "missing". This way, you know they're there, and you know why you can't email them:

For the most part, my Notes addressbooks are well-organized and empty of extraneous information. They're listed in my User Preferences in the following order:
  • The company addressbook contains my internal company members, and it's exclusively used to address internal mail and handle ACLs (access control lists).
  • The VIC Index contains customers, clients, and professional contacts that need to be shared among team members.
  • My personal addressbook contains only private contacts that I don't want to share in the company. I don't ever put customers in either stock Notes address book. That's generally not the right place for them.
Going from a Notes Addressbook into VIC is pretty easy, but it's designed to be an all-or-nothing thing. From your workspace, if you highlight the VIC Index, you can select Actions, then Import, then 1a. Notes Addressbook. This will import all of the addressbook entries that don't currently exist. Then select 2. Create Organization docs to create an organization doc for each person (if necessary) and properly relate them. This is limited to a degree... it tries to key off of the company name, so variations in spelling are significant. And data may change over time, and this routine simply assumes you're keeping up with your company info in VIC Index. In other words, after-the-fact changes made in the Notes addressbook may be lost. For these reasons I suggest that this be limited to a one-time import.

You might notice that there's an import option for a Microsoft Outlook addressbook. This works after a fashion, but Outlook's export function is semi-broken, so explaining it is a whole other topic. Nevertheless, it works and I've used it. We're going to skip over that for now.

Now, even though VIC acts as an addressbook on its own, there's a reason you might want to move contact information from VIC into another addressbook, and that's if you've got a PIM that can't see VIC as an addressbook for whatever reason (it may be making unwarranted assumptions about the local addressbooks). Again, this is specific to you and the equipment you chose; and frankly, though I've been asked about it in general terms, nobody's actually asked me to fix it for them. Nevertheless, I'm asked about it often enough that for the next VIC release (targeted for this Autumn), I'll be adding a method of picking and choosing the Notes addressbook entries to bring into VIC, and I'll be adding an Export feature to send selected VIC contacts to the Addressbook.

Upcoming Changes

Regular users of VIC will notice that even in this small screenshot some other things have changed. VIC Launch is a new feature that gives you a distinct starting point for the application. It doesn't really do anything else on its own, but it is the launching point for the My Activities page, and it makes management of the My Activities page much more stable than it has been. It's mostly there to make sure the GoVIC launcher has nothing to do.

In related news, Projects is a little further along. Sales probably should update the Financials pages, though in practice I've found the views in the Sales db itself are adequate to my needs, so I've been leaving it open for customizations.

I probably should explain that one a little bit, though I really don't want anyone to get overly excited about it. The Sales db was originally created to keep a record of what you've sold to a customer so that you can keep track of what you need to support. So you could create a Sales record and pull in some product information from the Library. Simple, right?

Well, I'm still unsatisfied with 100% of the Open Source accounting packages out there, though, and I do a more consulting time than product sales; so as a stopgap I'd just put in a "product" called Consulting Time. Then it occurred to me that I'm already tracking my time in the Journal, so in addition to pulling time from a Product Brochure, I can simply select Journal Entries for a customer as if they were products, and they become Sales line items, complete with the actual amount of time recorded in the Journal. Simply applying an Invoice form to the Sales document makes it a printable Invoice.

So basically, I go to bill a customer by creating a Sales doc. I click on Add Product, click From Journal, and I'm presented with a list of all the billable visits I've made to that customer (the Journal knows whether it's billable because every Journal Entry has a billable flag). I select whatever it is I want to bill, and the sales doc is automatically populated with the description of the visit, the duration, and the value is automatically calculated. Basically, I'm just pointing to the visits and VIC takes care of the Sales doc. VIC also establishes links between the sales doc and the Journal Entries, so when I'm looking at a Journal Entry I can tell immediately whether it's been billed (and can pull up the Invoice right there). Conversely, if I'm looking at an invoice and I have questions about a line item, I can instantly drill down to the Journal Entry associated with it. I send an invoice by clicking on Invoice (it's conceptually equivalent to turning a sales order into an invoice), selecting a banner (if I'm not using pre-printed letterhead), and pressing Print. With a PDF printer, it's great for sending bills in email, too.

I manage the Sales db using views for Open Sales Orders, Open Invoices, Paid Invoices, and Invoice Not Sent, among others. You can view documents by Date, Period, Professional, or Customer. You can apply a payment to an Invoice and it's dutifully calculated in the views.

That said, Sales is in no way a replacement for an accounting package. Even though it's the easiest way of billing time I've ever used, there are lots of holes, like no real audit trail and no way to track partial payments or do balance forward billing. It gets bills out and money in, but it doesn't "account" for anything. To be perfectly honest, I still recommend you use anything BUT the Sales db for accounting, though it is pretty much at the point where I've been using it to create my own invoices, and scratches about 70% of my itch.

More info as it develops.

Thursday, August 23, 2007

Top 25 Microsoft Open Source Projects... Huh?

Here's a list of the top 25 Microsoft Open Source projects at CodePlex, thoughtfully provided by bayarsaikan.

This one just jumped right out at me: DinnerNow. This is the lame sample application that Microsoft used as a demo months ago at their rollout of Office 2007. Huh?? What are they thinking? It's not even a real application, and the very concept sucks, at that. (Sorry, MS, but it does.) The rest of the list is a little weird like that, too... you've got inconsequential stuff like a game of Go, and a battery saver for Vista (it just sits there and turns off all of the features that sold you on buying Vista in the first place. You could've saved more than the battery if you'd stuck with XP).

Then there's this other list at eWeek, which is almost, but not quite, entirely unlike the first list. Well, bayarsaikan's list says "Top 25" and the eWeek list says "25 Most Active," so maybe there's the reason. But five of the top 25 projects aren't projects, they're just collection of code snippets (all of the ones named "Patterns & Practices" and the one called "Public Domain"). Oops, five more aren't projects, either, just samples for SQL server (all of the ones called "Microsoft SQL Server Product Samples"). That leaves us 15 projects that must really be projects. Well, VFPx is kind of useful (to me anyway). It's not really a project, but it's a collection of projects, which are really not full-blown projects, but are components for Visual FoxPro.

It doesn't matter what the rest of them are; I don't use them and they don't look terribly useful. But this one caught my eye:
SharpZebra is a C# library that simplifies the process of printing to Zebra printers. We hope that this library abstracts enough of the EPL2 language needed to communicate with the Zebra branded printers.
OK, so it's a label maker for Zebra printers. No, it's not. It's a LIBRARY so that you could conceivably WRITE a label maker for Zebra printers. In the TOP 25?? REALLY? An WTF is a Zebra printer?

Let nobody tell you that Microsoft isn't fully committed to playing well with the Open Source community. Gee, proof of the depth of their sincerity is right here.

Another reason to choose Open Source

I cull my spamtrap about once a week. When going through it this last time I found an email from The subject line is "Worried about unlicensed software in your office? Relax." Now, I don't open 99% of the spam I delete, but this seemed to be an odd message to get from An animated graphic in the mail cycled through the message:

Worried about unlicensed software in your office?
Report illegal software use confidentially.
You may be eligible for a reward of up to $1,000,000.00

Clicking on the graphic takes you to the website of the BSA. No, it's not the Boy Scouts of America... it's the other BSA: the Business Software Alliance. These are the folks that prosecute for software license violations.

Now, if you're using software illegally, you might think nobody's going to catch you at it. But then you see something like this and realize that a million bucks is a lot of incentive. Edna the Receptionist may not care a flying fig about unlicensed software, but a million bucks will pay off her house, send her kids to college, and keep her comfortable enough for the rest of her life that she can certainly "relax" and not worry about having driven you out of business and eliminated her own job along with yours.

Why would you want to take that kind of a chance? Now, the BSA wants you to license your illegal software. You know what I'm talking about: the copies of Windows 2000, Microsoft Office, Corel Draw, etc. that you've got from a friend of a friend, because you "really needed it now and it doesn't hurt anybody." Should they receive a call from Edna, the BSA will make sure that you license that software, plus legal fees, plus punitive fees and whatever they can get to make sure that you're not only in line, but you serve as an example to others.

And they are well within their rights to do that. You shouldn't have stolen, you shouldn't be using the software, and since you are, the BSA are legally entitled to enforce the interests of their members. You can't cry about it after the fact. And really they'd rather not prosecute you at all. That takes money and time, and they might not be successful, and much of what should go to the members goes to the lawyers instead. That's why they try so hard to nail you.

But there's a much better solution, which you'll never, ever see them suggest. Most of your office tasks are just as easily done with completely free, completely legal Open Source software. For instance, completely replaces Microsoft Office in my -- and many other -- offices. Likewise, The GIMP replaces Photoshop. The list is nearly endless. In some cases you may be able to replace entire Windows workstations with high-quality open source desktops like Ubuntu or openSUSE Linux. REALLY. And you don't need to worry if some of your users still need commercial products... using Open Source software drastically reduces the amount of money you have to spend on licensing overall. For instance, you can purchase Microsoft Office licenses for only the people who need special features of Office, and distribute free software for the rest.

I'd estimate I've saved thousands simply by switching to Open Source software. I keep a list of software recommendations (based on software I use [PDF]), but a new website called Open Source Alternatives ( is a much broader (and more frequently updated) list. And it's cross-referenced, so you can search for what you use and find out what replaces it. If you've got any eye toward mitigating your risk at all, you'll definitely want to check it out.

So here's how the BSA's ad looks to me:

Worried about unlicensed software in your office?

I am soooo relaxed.

Report illegal software use confidentially.
Uh... what illegal software?

You may be eligible for a reward of up to $1,000,000.00
Guess I'll have to buy a lottery ticket instead. Or maybe work.

Friday, August 10, 2007

The Fat Lady's Singing... SCO Loses Everything

As PJ is reporting on Groklaw, SCO has lost... well, practically everything.

Judge Dale Kimball has ruled on the summary judgment motions in the Novell vs. SCO case. Unsurprisingly, he's ruled that Novell owns the copyrights to Unix and UnixWare. Novell has the right to waive the lawsuits against IBM and Sequent (as it has already done). And SCO owes Novell a truckload of money. Judging by the last SEC filings, it looks to me as though the amount owed exceeds SCO's assets.

IOW, it appears that Darl McBride has successfully ruined his company: he's gone from royal pain-in-the-ass to complete and total failure. Way to go, Darl... Mom would be proud.

There are a couple of areas where SCO can attempt to spin this as a positive thing. Judge Kimball says that SCO can pursue their counter-claim against Novell for whatever bits of post-1996 Unix code that SCO may have added to UnixWare which may have found its way into Suse Linux. This is because the sale of the Unix business to SCO included a clause saying that Novell wouldn't sell a product which is based on the Unix code that directly competes with SCO's offerings, and Linux certainly is a direct competitor. We already know how successful that would be, since SCO has proven their pitiful ineptitude at finding any Unix code at all in Linux in the IBM case. Any attempt at pushing this feeble argument would amount to a puppet show, and SCO doesn't have the money to pursue it.

Oh, and the judge didn't issue an injunction regarding the money owed to Novell, because there's a question of fact regarding exactly how much money that is. Other than a lot. A WHOLE lot.

Will SCO appeal? Of course. They have a snowball's chance in Hell of winning it, though. And it would be difficult to do without any money. SCO's stock (SCOX) has been bouncing between pitiful and pathetic for the last six months and they've narrowly avoided de-listing twice. It spent most of the time between March and May below a dollar. What happens when the few remaining stockholders wake up to the news Monday morning? If you're holding SCO stock now you should be wishing that you'd picked an investment with more staying power... like soap bubbles or mayflies.

What other fallout can we expect? Well, I've personally seen companies yank Linux out of their datacenters in the name of "risk mitigation" with regard to Linux "intellectual property" infringement. As it turns out, these companies have spent the last four years overpaying for IT. They don't have to do that anymore (or they might, just because they've now locked themselves into proprietary crap they never needed). Is it possible that some of these folks will get together and file a class-action suit against SCO for the wasted capital, arguing that SCO knew their IP assertions were bald-faced lies? Could be... it's uncertain whether such a suit would prevail, but wherever there is death you'll find vultures circling. And simply defending against the threat would further drain SCO's depleted coffers.

The judge has asked for the parties' opinions on how the Novell rulings affect the pending motions in the SCO vs. IBM case. As I mentioned above, Novell has the right to waive the lawsuits against IBM and Sequent, and it has done so. Judge Kimball's ruled that they do indeed have that right, so it looks as though the entire SCO vs. IBM lawsuit is moot. Certainly that will be IBM's opinion. Nevertheless, SCO has until 5pm on Aug 31st to find some clever way of arguing that up is down, black is white, and that they should be allowed to continue to attack an impregnable fortress with spitballs. SCO will surely argue that the copyrights don't matter because the case against IBM isn't based on copyrights, but the fact that Novell can unilaterally wave the whole thing away pretty much sticks a fork in it.

So now we get to watch SCO bleed to death. Goodbye Darl. You suck.

OH, and the GREAT news is that the "IP risks" associated with Linux pretty much just evaporated. So, promote Linux, use Linux. Geh in Gesundheit.