Tuesday, March 14, 2006

The Microsoft Dinosaur

Why insulting your customers is not a good way to get them to buy your products

Every time I see those damn Microsoft Office dinosaur ads my blood boils. I paid a lot of money for my new copies of Office97 Professional and Developer's Edition, as well as Office XP Developers Edition. They both work fine on the machines I installed them on. The advertised ones don't work; none of my customers have them either, mainly because their hardware still runs Windows 98SE.
Microsoft was delighted to sell me these products when they were released. Now they want to insult me by saying that they sold me a dinosaur. What a bunch of arrogant, manipulative money grabbers! When did they forget that "the customer is always right"?
I don't recall seeing a "sell by" date on the package. Yet every time I get a fatal error on Access97 I get the wonderful error screen shown below. Perhaps they should put that in their advertising.
Their new ads are just a reworking of the same old tired "latest and greatest" theme that they have been cranking out for years. Frankly, I'm sick of it. It's a pain in the neck installing patches for products; but it's even more painful when obvious problems are no longer patched. Support is part of the deal, and as long as customers are using the product, it should be supported. Not everyone can or wants to upgrade. Please don't insult the ones who don't upgrade and expect them to remain loyal customers.

And don't insult your customers by implying that they hit the wrong button. They didn't decide on the default placement of the buttons, did they?

Programming for Power Failures

Programming in South Africa has had to adjust to a whole new set of ground rules. Not only does the broadband connection disconnect itself every 6 hours, thanks to Telkom, but the power can go out at any moment. This makes for interesting database programming.
I am writing a database program for Men's Clinic that helps them process patient bookings and invoices at the clinic level. To tighten up security we only allowed invoices to be made out for today's date. That's all very well if the power is working, but what do you do if the power went off and you went manual for the rest of the day? How do you allow the clinic people to catch up the invoices on the following day, without preventing them from issuing invoices for today as well? An interesting problem. After all Uninterruptible Power Supplies don't last forever. And petrol generators are fine, provided you can buy petrol. Personally, I'd prefer a diesel generator, because you can run it on cooking oil if diesel isn't available.


Click on the pictures to see the brilliant Madam and Eve cartoons

Cheney and Zuma


South Africa win the greatest match of all

Never mind 426 runs in a day (semi-final of the 1999 World Cup), Australia had just posted a world-record 434 for 4 in a single innings - the first 400-plus total in the history of the game - with Ricky Ponting leading the line with an innings of cultured slogging that realised 164 runs of the highest class from just 105 balls. And yet they still lost - by one wicket, with one ball to spare, and with the Wanderers stadium reverting to the sort of Bullring atmosphere on which it forged its intimidating reputation

Cricinfo - South Africa win the greatest match of all

The End of my AppleScript Lines

Several years ago I worked for Independent Newspapers in Johannesburg. One of my most challenging and successful projects involved placing ads on the editorial pages, and drawing the lines around the ad boxes.
On Friday I was chatting to Mahomed Doola at The Star and discovered to my delight (and horror) that my program is no longer being used, and their entire editorial process in being upgraded and replaced by some really exciting technology.
I was the "resident propellor-head" in the IT Department at the time, and we were using QuarkXPress for page layouts. Every day a dozen or so highly paid sub-editors would waste several hours of their time drawing empty boxes on their pages where the ads should go, and then spending even more time drawing visible lines ("rules") around these boxes to separate the ads from the editorial copy. It was a mindless and boring task, and if it was done in too much of a hurry it made the pages look dreadful.
On top of that, the people in the advertising department who decided where the ads were to go would have to do a long manual task of drawing and labeling the ad boxes on page dummies, and then send a photocopy of the dummy to the sub-editors to draw the ad boxes on their pages.
We solved the ad placement problem with a nifty but expensive program (PlanLinker) from PCS in the UK. It allowed the advertising department to create the boxes directly from the list of ads and their sizes, and this page information was then "checked in" to the editorial system in a way that allowed the editorial people to see the shapes of the ads, and eventually include the ads on the pages, without them doing a whole lot of extra work.
Part of this "checking in" process was automated by means of some AppleScript programs, and it included the program for drawing the lines around the boxes.
The Algorithm
It was so simple once I got it, but it took several days of drawing lines and boxes to figure out what was required. After all, the ad boxes could be stacked on top of one another, or next to one another, or both. As long as they were generally to the bottom and the outside part of the editorial pages, there wasn't much else to go on. The task was to find a way of drawing a line between the "staircase" of ads and the editorial copy. And then there were lines to be drawn between the ads as well.
After a while it dawned on me that irrespective of how complicated the layout of the ads was, there was always a line to be drawn above the ad, unless the ad hit the top of the page. Also, the horizontal line always had to extend out beyond the top of the ad. This distance was always the same: half the gutter width. If the ad was on the outside of the page, then the line didn't need to extend at all, since there was no gutter margin on the outside, only between columns.
So now I had a line above every ad. I soon realized that if there were two ads next to one another of the same height, the lines would touch, giving the appearance of a solid line. Also, I now had horizontal lines between all the ads as well, because the line above an ad at the bottom of the page would work as the line between it and the ad above it.
Using the same logic I could draw a vertical line on the inside of every ad. If the page was a left hand page, i.e. with an even number, this line would be on the right of the ad, and for odd numbered pages on the left. The lines were left out if they extended beyond the page margins.
If I kept the vertical gap between ads the same size as the gutter width, then all the lines would be half that distance away from the ad itself, leaving a nice clean geometry around the ad.
It took a while to learn how to do all of this using AppleScript, and I got ideas and code from a number of very helpful people on the AppleScript email list. It was a wonderful learning experience.
The AppleScript program was in use for around 10 years, which is a long time for a utility like that. It was fun while it lasted.

Monday, March 13, 2006

Tshwane Shows the Broadband Way

Tshwane (formerly Pretoria) is widely considered the leader when it comes to municipal telecoms, and when one looks at their infrastructure and projects it is not difficult to see why.
This municipality has developed an extensive fiber infrastructure and is now starting to build telecoms services on this foundation.
One of the most exciting developments is the Rooiwal Broadband Village project where all the houses in this town have been furnished with a 4 Mbps broadband connection. These connections are 4 times faster than Telkom’s fastest DSL offering, and make use of Broadband over Power Line (BPL) technology.
The traffic is carried over 28 km of Tshwane’s fiber network while the last mile connectivity is provided through the existing power cabling. The full BPL network has a theoretical capacity of up to 200 Mbps.
Charles Kuun, Manager of the Tshwane Digital Hub, says that the project is a great success. He pointed out that users utilize these fast broadband connections for anything from research to entertainment.
This project has proven to be so successful that Tshwane is now preparing for commercial launch in the East of Pretoria. Specifics surrounding this project are not public knowledge yet, but if Rooiwal is anything to go by residents of this city is sure to benefit from the innovation by Kuun and others.
The Tshwane Metropolitan Area Network (MAN) is however not only sticking to fixed networks, and based its developments on wireline, wireless and powerline (PLC, BPL) communications.
Tshwane aims to establish integrated broadband networks creating an effective broadband cloud over the city. They further plan to provide free Internet points and would like every citizen to have an email address and a means to access their mail.
This may seem like a very ambitious aim, but Tshwane is working with various interested parties to ensure its success. With their extensive fiber network and the innovative use of existing technologies it is not far fetched at all.
Many other cities in South Africa are moving in the same direction, and these municipal developments are one avenue which may just prove to be the solution to South Africa’s broadband dilemma.

The wonderful irony is that Telkom's head offices are in Tswane, so it is great to see this happening right under their noses! Also, my former high school is in Tswane, so I'm doubly proud.

MyADSL News

Google Gives Out Gmail Addresses for Free

A simple site command search at Google can give you a list of, currently, 21,000+ gmail addresses to add to your mailing list. The number will just grow as people add googlepages.com sites.
The problem is that google uses the part of your gmail address (before the @ sign) as the subdomain on the googlepages.com site, so fred@gmail.com gets a page called fred.googlepages.com.
This simple search allows you to get a list of all the googlepages.com sites, and a simple search and replace gives you all the gmail addresses belonging to those sites. DUH

read more | digg story

Sunday, March 12, 2006

SA power to greatest win over Australia

South Africa achieved the impossible by chasing down an Australian score of 435 -- the highest score ever chased in one day international cricket history -- to win an astounding match and clinch the series 3-2. South Africa now hold the record for the highest one day international cricket score of 438 ever made. Sorry for you Australia.
The 32 000 spectators who packed the Wanderers had a day to remember, and much to cheer about, as both teams reached their highest totals at nearly nine runs an over.
It was the highest aggregate of runs in any one-day international, and the first time any team had scored more than 400 runs. The crowd were thrilled by fours and sixes a-plenty.
Australia contributed 44 fours and 14 sixes, and South Africa hit 44 fours and 12 sixes.
Chasing a seemingly insurmountable target of 435 to win, South Africa made 438 for nine. They set about their task with a will -- playing the 'brave' cricket skipper Graeme Smith and coach Mickey Arthur have so often talked about.
Boeta Dippenaar was out for one in the second over, bowled by Bracken, but Smith and Gibbs had the crowd screaming with excitement as they raced to a second wicket partnership of 187 -- the highest South African second wicket partnership against Australia, beating the 140 made by Kepler Wessels and Hansie Cronje in Melbourne in 1993/94.
It ended when Smith was caught at mid-wicket by Michael Hussey for 90. He had faced 55 balls, and hit 13 boundaries and two sixes.
AB de Villiers joined Gibbs, and they put on 94 runs off 53 balls before De Villiers was caught by Michael Clarke off Bracken for 14. He had played sensibly, making sure that Gibbs got the strike whenever possible.

Gibbs was out six balls later, caught by Brett Lee off Andrew Symonds for 175 -- his highest score in one-day cricket. It had taken him two hours and 22 minutes, and he had faced 111 balls, hitting 21 boundaries and seven sixes.
Jacques Kallis and Mark Boucher put on 28 runs for the fifth wicket before Kallis was caught and bowled by Symonds for 20 at a run a ball. With 10 overs to go, South Africa needed to score 93 runs to win. Forced to go for the shots, began to lose wickets regularly. Kemp (13) was caught by Damien Martyn off Bracken, and Ricky Ponting caught Johan van der Wath also off Bracken, for 35.
He had faced 18 balls and scored a four and three sixes. Telemachus went out in the 49th over, for 12 off six balls.
When the final over started, South Africa needed seven runs off six balls, with Lee the bowler. Boucher scrambled a run off the first, and Hall hit the next to the boundary. South Africa now needed two runs off four balls.
But Lee grabbed Hall's wicket off his next delivery, when Hall was caught by Clarke for seven. Makhaya Ntini snatched a single off the next ball, and the crowd erupted -- the teams were tied on 434.
Boucher hit the fifth ball for four -- and South Africa had snatched victory from what seemed inevitable defeat. Boucher's boundary gave him his 19th limited overs half century off 43 balls.
All the bowlers were savaged - Mick Lewis had the dubious distinction of conceding the most runs in history -- 110 off his 10 overs. Nathan Bracken, with figures of five for 67, was the most successful bowler in either side.
Australia had been 2-0 down in the series, suffering a record 196-run loss in the second match, before drawing level at 2-2.
'Greatest day of their lives'
"I'm sure everybody here today had one of the greatest days of their lives," Ponting said at the after-match presentation. It was a great game of cricket."
Winning captain Smith admitted it had looked bleak when Australia posted their massive total.
"I think we were a little down in the dressing room at that stage," he said at the post-match presentation.
"But it was an unbelievable wicket, credit to the groundsmen. And what an atmosphere. It's huge. We have got to come back down to earth. We're all over the moon and want to savour the moment."
Boucher hailed the victory.
"It's one of my best moments in cricket so far," he said. "We always knew we'd be up against it. We tried to keep it simple, we knew we had to get a good start and Herschelle and Graeme did fantastically well. It was something special to watch. It's fantastic. I'm lost for words."
"Test cricket is a different ball game but I really enjoyed it tonight and hopefully we can take some of that momentum into the Test series."
Surprisingly, both Gibbs and Ponting were awarded man of the match but Ponting declined it, saying it belonged solely to Gibbs .
Said Gibbs: "Cricket is getting bizarre these days with some of the scores made. We needed something like that from somebody and it happened to be my day today."
Smith, Ponting at a loss for words
The South African and Australian cricket captains struggled to find words to describe the match.
The match saw both teams breaking the world record for the highest scores in international cricket. A total of 872 runs were scored, at a rate of nearly nine an over throughout the match.
"Incredible," said South African skipper Graeme Smith. "We'd struggle to repeat a match like that. I think it compares with the tied Test between Australia and the West Indies at Adelaide as one of the greatest matches in cricket history."
Ponting agreed that it was one of the best one-day matches of all time.
"We had no defence against Smith and (Herschelle) Gibbs. We've talked about Australia scoring more than 400 one day. We did that today, and lost. It is incredible."
Ponting said that while there was always a chance that South Africa could pass Australia's record total of 434, the odds against it were very high.
"We scored that many, so it was possible that they would too - but there was no way on earth that they should have done it."
Ponting, who was jointly named Man of the Match with Gibbs, but declined the honour, saying Gibbs was the deserved winner, added that despite having made his highest score in one-day internationals (ODIs), it was still disappointing to make such a massive score and lose.
"But teams have often had success at running down big scores against us," he said.
He suggested that the advent of 20/20 cricket, as well as a relatively small ground, meant that huge scores were possible.
"We have to get over this very quickly and prepare for the Test series," said Ponting. "South Africa will be buoyed by the result going into the Test series, and there's a very short turnaround period."
Smith said South Africa would probably take Monday as a recovery day and start preparing for the Tests on Tuesday. "We need to get our feet back on the ground," he said. "It's been an emotional rollercoaster the past few days. We came so close in Durban on Friday, and so were pretty down, and then we won today, and won the series."
Gibbs, whose 175 was his highest ODI score, said he had woken up on Sunday morning with a good feeling. "The last time I had that feeling was when I made a hundred against Australia at Edgbaston in the World Cup in 1999. I wish I had that feeling more often."
Asked where he rated Sunday's match, he said he thought it was one step ahead of Edgbaston. Smith said that the team had not had any game plan to score 435.
"You don't lie in bed and imagine making a total like that," he said. "We just knew we had to go out and score quickly. It never really crossed our minds that we could do it. We had to get some momentum going. We were smashing balls all over the place, and then we'd look up at the scoreboard, and we were still 350 behind.
Chasing massive totals like that, you either get quite close, or you get nowhere near."
The captains praised both teams for creating such an exciting match. "The batters did well, but the bowlers didn't." said Ponting.
"I think it's a wicket the batsmen would like to roll up and keep, but the bowlers would like to bury," said Smith.


Mail & Guardian Online | CricInfo Report