Monday, 23 April 2012

The Access Developer's Dilemma


A Brief History of Time Wasted

In late 1992, Microsoft released  Access 1.0, its first attempt at a desktop database application. for the Windows operating system. My initial excitement was soon tempered by massive disappointment: there was a lot to like, but Access was little more than a toy. In 1993, Microsoft released Version 1.1, primarily to make Access compatible with other Office offerings, but far more significantly, to introduce the ability to write code in Access Basic. This version was chock-filled with bugs, and I recall being torn between the tried-and-true Clipper language, even though it was DOS-bound, and what was clearly the path to the future, Windows. But after about a month of frustration, I tossed Access 1.1 into the junk pile.

Later that same year, Microsoft released Windows 3.1 and along with it, Office 4.3 Pro, a suite of applications including Word, Excel, PowerPoint and Access 2.0. Although not without problems, this version of Access made developers sit up and take notice. Back then, your average hard disk could store about 10 Megabytes of data – laughable by today’s standards, but back then it was a big deal, and even though this ruled out anything that might be considered a serious database, there was plenty of room for the power users who would eventually become paid consultants, writing custom database applications for small business. Back then, it was even possible to regard Microsoft as leading the way for developers – providing a database system easy enough for amateurs to try, and inevitably make mistakes, and paving the way for developers to come in and redesign their amateur efforts. Indeed, a market was born, and before long freelance programmers were trolling for contracts doing custom database development in Access.

In 1995, Microsoft released Windows 95, a huge leap forward: the move to a 32-bit operating system, and a complete revision of the graphical user interface (GUI). Beneath the pretty giftwrap lay something much more powerful and intriguing to developers: the introduction of Visual Basic for Applications (VBA), a game-changer. Both Windows 95 and Office 95 had problems, certainly, and hindsight suggests that Microsoft had finally figured out how to make users pay for beta releases. In 1997, Microsoft released Windows 97 and Access 97. Both were unqualified successes.  With Access 97, it became possible to consider serious database development.  Indeed, “The Access Developers Handbook”, by the soon-to-be-legendary three amigos, Paul Litwin, Ken Getz and Mike Gunderloy, was a huge success, and led the way for many thousands of developers to do some serious programming in VBA.

On the operating system front, Microsoft released Windows 98, the truly lamentable Windows ME, and eventually the much more stable Windows 2000/NT. On the applications front, Microsoft released Office 2000, and with it, Access 2000. If Access 97 was considered a game-changer, the Access team outdid itself with Access 2000. Perhaps the most notable feature, from the viewpoint of professional/serious Access developers, was its integration with SQL Server 2000. Access introduced a new type of file, called Access Development Project (ADP), which provided transparent access to SQL Server databases. At the time, I was learning to program SQL databases, and was satisfied with Enterprise Manager, the GUI used to administer SQL Server databases. I remember with shock and awe how superior Access ADP was over Enterprise Manager. The ADP format gave developers full access to tables, views and stored procedures within SQL Server. 

Thus began my deep dive into the world of SQL databases, from a springboard I was already expert at, Microsoft Access. It was a marriage made in heaven. At the time, I was employed by a very specialized and highly successful travel agency, where the initial application I developed blossomed into a full-fledged enterprise application, used by over 70 employees simultaneously, running four branch offices scattered around the continent, all connecting to a server running Terminal Services and housing a SQL Server database. It was a thing of true beauty, and remains one of my proudest achievements. There were problems, of course, but they were all caused by the success of the application and the company itself. For several years in a row, sales doubled, and I, as the sole designer/developer and database administrator, enjoyed something approximating star-status in the company.

The next release(s), Access 2003 and Access XP, consolidated the gains made by Access 2000, even among the so-called serious database community, which was already using Access as a reporting front end for “serious” databases including SQL Server, Oracle, Sybase and others. Indeed, one of the beauties of using Access in this capacity, besides the Rapid Application Development (RAD) it afforded, was the portability of skills and code. Thanks to ODBC, an Access developer could write a custom front-end application, and change the back end from SQL Server to Oracle or vice-versa simply by changing the connection string.

But then, the Access development path began to lose its way. (Some would say that the very success of Access held back the big-picture game plan of Microsoft – that Access was meant to be a toy, from which serious developers would migrate to more serious and expensive tools such as Visual Basic 6, C++ and eventually, Visual Studio and Visual Studio.NET.)

Access 2007 and 2010 seemed to confirm this perception among developers. Access 2007 introduced a whole new interface (the ribbon) and provided numerous enhancements, almost all of which were aimed at end users and almost none of which addressed the needs of developers. Rumours began to circulate among the Access developers’ communities that Microsoft had semi-officially abandoned Access developers.

Where to now, boss?

Access developers were (and are) faced with a dilemma: there seems to be no future in continued Access development.
  • Microsoft appears to have abandoned this community.
  • The alternative provided by Microsoft, Visual Studio.NET, is by anyone’s standard,  large and complex (perhaps not as large and complex and unwieldy as Java has become, but that is another story). Even with professional training and years of experience programming in other environments, a developer has little to no chance of becoming genuinely productive (e.g. able to bill for hours worked) in less than a year or two.
  • The world is moving rapidly away from desktop applications to web-based apps.
  • If all this were not enough, now the developer is faced with the problem of developing apps for smart phones, tablets, and other new technologies.

There still exist opportunities for Access developers; but no one can deny that the pool is evaporating, and rapidly. As a professional Access/SQL developer who is well-known in the community, I can readily attest to this. Many of my colleagues all over this continent and around the world, report much the same story. Some are lucky enough to be employed in organizations whose managers are patient enough and foresighted enough to finance the further education of their developers. Most Access developers work freelance, however, and time spent learning C# or VB.NET, not to mention programming for the Web and for smart phones, etc., is time spent not earning money to pay the bills.

I know a few developers who have bridged the gap by taking evening courses in C# and/or ASP.NET. It’s a legitimate path and sure beats running on the spot, but the path to billable hours is even longer this way, since it involves only a few hours of learning per week. Still, it’s better than nothing.

Scanning for a New Squeeze

After thirty years of life as a developer, I have experienced a few watershed moments. I began in the world of DOS, first using dBASE II and then moving on to Clipper, with a little BASIC and C tossed into the mix. DOS was my first watershed moment. Before that I had programmed in CP/M, the ill-fated forerunner of DOS.  There’s a famous story about IBM executives planning to meet with Gary Kildall, creator of CP/M, with a deal to buy or license CP/M for inclusion on its forthcoming IBM PC. According to the story, Kildall was too busy flying his plane to meet with the fellows from IBM, who then went to Redmond to meet with Bill Gates. Gates bought the DOS operating system outright for $50,000, and did a deal with IBM giving that company the rights to package DOS on all its PCs, for a per-computer license, a deal that made Microsoft a giant in the software business.

If DOS changed the world of the PC, Clipper changed the world of DOS programming. Ironically, its creator, Brian Russell, was formerly employed at Ashton-Tate, maker of dBASE II, then the dominant PC database. Brian had approached A-T management with his idea of creating a dBASE compiler, but the company saw this as a threat to the sales of dBASE itself, and nixed the idea. How prescient they were! Brian left A-T and joined the fledgling Nantucket Corporation, where he and his team created the first release of Clipper. It changed the world of PC database programming, and stole almost the entire community of dBASE programmers.

Then came the Macintosh (well, first the Lisa), and although I never bought one, it was clear that the paradigm had shifted to graphical computing. Microsoft at last caught up with its initial release of Windows. At the time, I was an acknowledge expert in Clipper programming: I wrote two books about it, plus several monthly magazine columns and several hundred articles on database-related subjects, for various publications. Nantucket Corporation, makers of Clipper, tried unsuccessfully to move into the Windows world with an ambitious product called Visual Objects (later renamed CA-Visual Objects, after Computer Associates acquired Nantucket) – a very ambitious project but ultimately too buggy for serious development, not to mention too great a leap for most Clipper developers.

Other graphical database systems emerged, and I tried most of them without falling in love. I did what I could with Access 2.0, but withheld my full commitment until Access 97. From that point on, I considered myself an Access developer, especially after the release of Access 2000, with its connection to SQL Server and other serious database engines.

Until, that is, Microsoft released Access 2007. I continued to work with it, although most of my clients stuck with Access 2003/XP. But I was determined to learn the new ribbon technology, and grateful that Microsoft had preserved the ADP file format and its direct connection to SQL Server. But I was not alone, by any means, in my queasiness over the future of Access. Many if not most Access developers felt abandoned by Microsoft, and Access 2010 confirmed our misgivings. For one thing, it is riddled with bugs; for another, there is almost nothing to point at that is an obvious benefit to developers. Still worse, the only avenue toward development of web applications lay in a marriage to SharePoint, a very useful product to be sure, but also price-prohibitive for most small businesses, the bedrock of Access developers.

A little while ago, I joined one of the Google+ groups, a community of Access developers, and became an active participant there. Eventually I received an email from Richard Rabins, co-chairman of Alpha Software, makers of a product called Alpha Five, now in version 11. Mr. Rabins approached me, I guess, because thanks to my numerous postings on various Access newsgroups, I have acquired something of a reputation as a seasoned Access+SQL developer. He offered me a free license to Alpha Five v.11, which I accepted.

Since I received my serial number a couple of months ago, I have spent more and more time with Alpha Five v.11. I’m not yet ready to call myself expert, but I have dived headlong into the product and its development language. At this point, I think that I am ready to declare another watershed moment in my career.

In a word, I love Alpha Five v.11. It answers every demand I currently place on a development product:
  • 1.       RAD – in spades. You can do significant things more quickly in Alpha Five than in any other development environment I know.
  • 2.       Programming language – Alpha Five is built on XBasic, a solid programming language which also happens to be cross-platform. Among its virtues are:

a.       Familiarity – XBasic is a lot like VBA, but more powerful and more concise. Access developers will feel comfortable almost immediately. There are differences, of course, such as slightly different names for events and properties, but these are easily handled.
b.      Classes – XBasic implements true classes, as opposed to the tricky, shoddy, half-assed implementation in Access.
c.       Wizards and Genies – Alpha Five comes with numerous wizards to guide the developer through various tasks required to build an application. Genies are akin to super-wizards: code generators that can build complete chunks of an application automatically, based on the structure of the database. Also worth mentioning are Actions. Roughly equivalent to macros in Access, Actions perform tasks without requiring code. However, they can also be converted to XBasic  code for further customization.
  • 3.       Database connections – Alpha Five has its own native database format, but also provides easy connections to Access databases, and ODBC connections to every serious database you’ve ever heard of, and one or two you may not have heard of.
  • 4.       Web development – this is where Alpha Five really shines, and frankly blows the doors off Access (not to mention numerous other platforms). At the outset of a project (or for that matter, anytime during development), the developer can choose whether this project is for the Desktop or the web. This choice affects the Toolbox and the tools it offers. The Desktop toolbox will be most familiar to Access developers; the Web toolbox contains a host of web-specific tools and controls. All this will be new to many Access developers, but not to worry: it will all become familiar very quickly.
  • 5.       Tutorials – here Alpha Five blows the doors off Access. While Access does provide some sample applications, probably the most advanced is a simple Time and Billing application. Alpha Five goes much further, in both quantity and quality. Its sample apps are professionally designed and coded, not only to illustrate language features, but also to perform real-world tasks. One could take the Alpha Sports application, for example, tweak it here and there, and ship it to a client as a finished custom project. The samples are that good. Besides the sample apps, there are also a number of templates for projects such as invoicing.In addition, the Alpha Five web site provides a collection of video walk-through tutorials to help new developers grasp the steps involved in various tasks.
  • 6.       Performance – I’ve tested Alpha Five against Access in several contexts: native/native, Access back ends, and connections to SQL Server and MySQL. In every case, Alpha Five outperforms Access by far.
  • 7.       Runtime – this is a significant concern to Access developers. Microsoft includes a free Runtime package that allows the developer to create an application, then deploy it with the Runtime, such that the end user of the application need not have a copy of Access in order to run the application. Alpha Software’s approach is slightly different. Instead of a Runtime, it provides an Application Server, which is included in the software but not free for distribution. Instead, the Alpha developer purchases an additional license, for a modest fee, and then has the right to distribute Alpha Five applications to an unlimited number of clients.
  • 8.       Community – as Access developers know, the community is a vital component in successful development. Access enjoys several communities where developers can turn when they have development problems or merely “How do I…?”  questions. The Alpha Five web site provides such a community as well.

Summary

After much looking around and experimentation with several of the development products currently available, I’ve made my choice. I’ll continue to develop in Access, not least because I am frequently called back by past clients who are in need of enhancements to previous projects. But from here on in, I’ll be recommending Alpha Five for all new projects, and I am confident that I can present a strong case for it.

This is especially true if the project has any current or future plans for deployment on the web and/or smart phones and tablets. In that case, there is no contest. Access offers nothing. Visual Studio.NET offers plenty, but at significant cost, plus abandonment of existing code, not to mention the significant hurdle of mastering a completely different language. Finally, while Access maintains its ADP connections to serious databases, this seems increasingly like an afterthought, whose inclusion is merely to placate those developers who’ve made the commitment to master it. Alpha Five on the other hand takes obvious pride in its support of serious databases.

I’m sold, in short. I would strongly recommend to every Access developer faced with the same dilemmas as I was, to download the trial version and kick its tires. I’m very confident that they will be very pleased with this offering from Alpha Five Software. For more information and to download the trial version of Alpha Five v. 11, visit http://www.alphasoftware.com/.

One final thing: Other than having been granted a free license to investigate Alpha Five v. 11, I have no relationship whatever with the company. Mr. Rabins has graciously answered some of my questions by email, but beyond that I have no ties to the company. I was not approached to write this piece, and in no way will benefit financially from its publication.

Monday, 16 April 2012

Summit of the Americas: North vs. South

As the Summit of the Americas concluded, it seemed clear that the organization was divided into two camps: Canada and the USA in one, and all other members in the other. Indeed, the division was so obvious that one begins to fear for the life of the organization.

Two issues divide the group:
1. The War on Drugs, and thoughts of legalizing or at least decriminalizing currently-illegal drugs, most notably cocaine and marijuana.
2. The potential admittance of Cuba into the Organization of American States (OAS).

Stances on the first issue come as no surprise. On the second, it's slightly different. The USA is expected to oppose any softening of its embargo, etc., if only to placate the Spanish voters in Florida. Canada, on the other hand, seems determined to play its hypocrisy card: we invest in Cuba, hundreds of thousands of Canadians visit Cuba as tourists, and more. And yet Stephen Harper's government kowtows to the United States regarding membership in the OAS, citing human rights as the main reason, and going so far as to say that when Cuba becomes a democracy, we may reconsider.

Considering the governments in several OAS countries (not to mention trade agreements with China), this stance is laughable at best. It is an embarrassment to the people of Canada, and an embarrassment on the worldwide stage.

Sunday, 15 April 2012

Rethinking the War on Drugs

At the recent (April 10-12) Summit of the Americas in Cartagena, Colombia, several presidents (from Colombia to Mexico) proposed a radical change in thinking about the War on Drugs. After 40 years of failure to win this war -- one might even argue that not even a battle has been won, let alone with was -- it's definitely time for new thinking on the issue.

That new thinking is a proposal to legalize drugs, from top to bottom. That is, to legalize the cultivation of coca plants, their harvesting, and subsequent manufacture of cocaine, all the way to its legal distribution in some sort of regulated market along the lines of the alcohol market.

Prime Minister Stephen Harper and President Barack Obama want no part of this. For my part, I cannot think of a single good reason to oppose legalization, and lots of reasons for it.

First, the War on Drugs has been lost, and despite such efforts as giving billions to South and Central American countries to fight the war with military force, not to mention active participation (Canada for example provides frigates to patrol the oceans near Colombia, Peru and other points of exit).

Second, several South and Central American nations are at serious risk of becoming narco-states. Guatemala is the murder capital of the world. Mexico is no slouch in this department, either.

Third, on both ends of the supply chain, billions and billions of dollars are flowing into the wrong hands, and out of the reach of taxation. Add to this the vast sums expended on police officers, equipment, snitch funds and all the ancillary spin-offs, all of which do virtually nothing to stem the flow of drugs, or their consumption, or the crimes committed by users to finance their habits.

All in all, the current picture makes no sense at all. Unless, of course, we are asking the wrong question. Perhaps the question should be, How does the status quo benefit the US and Canadian governments? Perhaps the easiest answer is that it shores up support among the religious segments of the voting populace. A slightly more cynical answer may be kickbacks, whether direct or in the form of campaign contributions. Another answer might be more sinister: confiscation of shipments leads to subsequent re-sale of same, resulting in funds that cannot be traced back to the governments involved, and thus available to fund off-the-books activities. Early examples of this sort of thing date back to Oliver North's adventures, and further.

In my view, the real problem is that the issue of drug abuse is framed in a context of criminality rather than in a context of health. Imagine the consequences of, say, making it a criminal offence to be poor, or schizophrenic.

Sunday, 8 April 2012

Supreme Court to Rule on Monsanto Ruling

The US Supreme Court is set to rule on a decision by the United States Court of Appeals for the Federal Circuit, in which that court ruled that the doctrine of exhaustion did not cover second-generation genetically altered crops. To make sense of this, a little background may be in order.

In 1994, Monsanto obtained a patent covering a line of "Roundup Ready" crops genetically altered to resist Monsanto's Roundup herbicide. The modification is hereditary, which is to say that 2nd-generation (and subsequent generation) seeds inherit this resistance. To avoid buying new seeds from Monsanto next year, farmers had merely to save some of this year's crop and plant it next year. Monsanto defended against this possibility by forcing purchasers to sign an agreement promising not to replant n-generation seeds: no signature, no beans. However, farmers remained free to sell their crops on the open commodity market; almost all such crops feed either people or livestock.

So far, so good (at least for Monsanto, if not the farmers). However, upon occasion success can bite you in the ass. Monsanto's superbeans quickly dominated the market (94% of all acres in Indiana, for example). And therein lies the rub. Monsanto seeds were so dominant that all a farmer had to do was buy a bunch of commodity soybeans, and most or all of them would be Roundup Ready, not to mention significantly cheaper than the official beans sold by Monsanto.

An Indiana farmer named Vernon Bowman did just that; when Monsanto found out what he was doing, it sued him for patent infringement.

In American law there is a principle known as "patent exhaustion", which holds that a patent holder's rights to a product are "exhausted" when that product is sold to an end user. In a similar case, the Supreme Court strengthened the Patent Exhaustion doctrine in 2008, ruling on a case in which the electronics giant LG was prevented from "double-dipping", for attempting to extract royalties from chipmaker Intel and OEM Quanta, which was using Intel's chips.

One might argue that as far as it goes, Monsanto has a point: Bowman and others could buy seeds from Monsanto or for that matter from the commodity market, then grow a crop for seed, and sell the next generation(s) royalty-free.

The problem with this argument is that it does not go back far enough. All this could have been, and indeed was, predicted when it was originally ruled that life-forms, genetically altered or otherwise, could be patented.

I'm a realist. The barn is burning and tough luck for the horses, natural or genetically altered, therein. It is almost unimaginable that the original patents could now be overturned. Fortunately, this point applies strictly to the United States; the civilized world has taken a longer and deeper view.

In 2011, the United States Court of Appeals for the Federal Circuit ruled that the doctrine of exhaustion did not apply to second-generation crops. Monsanto appealed, and thus the case finds itself in the Supreme Court.

If there's an up-side to all this, it is that even a ruling by the Supreme Court covers only the United States. As mentioned, the rest of the world remains unaffected. As Martha Stewart would say, this is a Good Thing. Farmers in the rest of the world remain free to buy commodity soybeans, transport them to other nations, and reproduce them at will, royalty-free.

However, corporations like Monsanto are nothing if not resilient (not to mention rapacious). Since my predictions regarding this and related situations have proved accurate, my digital crystal ball suggests that the next release of Monsanto soybeans, 3.0, will yield sterile beans; hence, no second-gen, hence no problem.

But turnabout is fair play, so let us imagine that within the current crop of beans there lurks some unforeseen side effect -- say, that the animals and people who consume them suffer loss of eyesight or worse. Now that Monsanto wants to claim patent rights on all generations of the accused beans, the corporation implicitly admits causation not only of those affected by first-gen beans, but also in the cases of those affected by n-gen beans.

Much as I despise the ruling that (at least within the USA) genes (both altered and unaltered, c.f. the patents claimed on the DNA of tribes-people from Brazil and elsewhere) can be patented, then the disseminators of said products are ipso facto liable for any side effects attributed to said products. I see no wiggle-room here: you're in or out. In for a soybean, in for a class-action lawsuit? Or out on both? What shall it be, Monsanto?

Wednesday, 4 April 2012

GOP Candidates: Put the Gloves On

With Rick Santorum refusing to bail out of the race to nominate a Republican candidate to run against Barack Obama, perhaps Canada has a unique contribution to offer. Why not arrange a boxing match between Mitt and Rick?

Two Canadian members of Parliament, MP Justin Trudeau (a Liberal) and Senator Patrick Brazeau (Conservative) did exactly that on March 31, albeit for different reasons, in this case, a charitable cause. $230,000 was raised for the Ottawa Regional Cancer Association.

Besides political opposites, the two men are opposite in just about every other way. Trudeau, son of former Prime Minister Pierre Elliot Trudeau is 6'2" and a lean 175 pounds, and to the manor born. Brazeau is 5'10" and 183 pounds, a First Nations man not at all wealthy. Trudeau is very lean but has the edge in height and reach. Brazeau is stocky and obviously much more muscular, and also has a black belt in karate -- but how much value that holds is moot, given that kicks are not allowed. Their boxing styles are also quite different. Trudeau's style is stick and move, while Brazeau's is all angles and inside body shots.

The match was fought according to Olympic rules -- helmets, 10-ounce gloves, and three rounds. Bookmaker odds gave Brazeau three to one, primarily because in a fight between inexperienced boxers, strength and conditioning tend to win. Bookies aren't always right, and presumably took a bath after the fight was stopped in the third round, with Trudeau awarded a TKO.

Back to the race for the Republican candidacy. Since boxing gloves aren't actually gloves, but rather mitts. Perhaps Mr. Romney could gain some edge from that. Thus far, the race to head the GOP might be described as "gloves off", and a boxing match using Olympic rules might well clean it up. Such a bout would certainly raise a lot more money than the Canadian one. The question remains, to whom to donate the proceeds? Perhaps the winner could choose the receiving charity, or maybe just add the money to his campaign coffers.





Tuesday, 3 April 2012

Canadian Human Trafficking KingPin to be Sentenced Today

Hamilton, Ontario, April 3, 2012 - Today Ferenc Domotor, the alleged kingprin of human trafficking, will learn his fate. He has been sentenced to the longest prison term ever passed for this crime in Canadian history.

Domotor and his younger brother Gyula arrived in Canada in 1988, claiming refugee status. In 2008, when Canada loosened its visa requirements for Hungarian citizens, his brothers, sisters and in-laws joined him.

Then followed a constant flow of Hungarian men from a small town called Papa, recruited by other Domotor family members who lived there. The men were promised good jobs in Canada. They were "housed" in various basements with locked doors and barred windows (both equipped with alarms), sleeping on mattresses, six to a room. The Domotors confiscated their passports and gave them unpaid "jobs" in construction, forcing them to work from 6am to 11pm every day. They were fed only one meal a day and driven to and from their "jobs" in vans owned by the Domotors.The bars and alarms were unnecessary, since the slaves couldn't speak English and had nowhere to go. The men were told they had to pay 600,000 forint (~$2700 Canadian) which was sent to their recruiters in Hungary, plus the cost of their flight. Some of the men worked for more than two years without ever paying down even a fraction of their "debt".

Since last August, a dozen members of the gang have been convicted and sentenced. Last week, Ferenc's younger brother Gyula, described as second in command of the gang, was sentenced to 7 ½ years in prison, so far the longest sentence ever handed out in Canada for human trafficking (more precisely, conspiracy to traffic humans).

Today Ferenc Domotor and his wife will be sentenced. One can only hope that their sentences will set a new record.

I suppose that one could argue that compared to other human trafficking rings, the Domotor gang treated their victims leniently. An untold number of female victims are promised good jobs in Canada, only to find themselves living in worse conditions and working off their "debt" in brothels.

Pondering the question of appropriate sentences, I find myself at a loss. We don't have the death penalty in Canad, but even if we did, it seems to me too lenient.

Addendum: Domotor received a sentence of 9 years. With time already served factored in, he will be released in 16 months.