Saturday I visited club ESP after a very long absence from anything that resembles a proper dance music club. I was really impressed on my re-visit to ESP. Although there weren’t many people, the music was truly phenomenal. None of that cheesy, exaggerated Hard Trance/House tunes. We were mesmerized with beautiful, elegant, and energetic melodic/uplifting Trance music. Really breathtaking stuff like Forbidden Colours from True Form, Your Loving Arms (Andrew Bennett Mix) from Karen Overton, Offbeat from Arctic Quest, Direct Dizko (Sander Van Doorn Remix) from Club Scene Investigators, Neno Itome (Stoneface & Terminal Remix) from Marksun & Brian, and a huge favorite of me, Amsterdam Super8 & Tab Remix from Luminary.
I was expecting rushed remixes of pop songs and cheap synth riffs played to a mindless crowd of people so high you might just as well loop samples from a roadworks scene. Instead I found a more mature crowd with an appreciation of beautiful Trance, and DJs that were there for the love of playing it, and not to get an ego boost.
ESP will host the Irish duo Agnelli and Nelson on the 15th of June. They truly are legends in the Trance music landscape, responsible for numerous top-notch hits and remixes like Big Sky (probably one of the greatest tracks in Trance music history), Shivver, Holding Onto Nothing, Everyday, and loads more. It’s sure to be one of the best parties of the year. Now that I’m convinced the rest of the ESP DJs won’t mess it up by playing common Trancifyed pop remixes, I’ll definitely make an effort to go.
Oh-yes, one last thing before I go: I’ve got a crate of +-80 vinyls of mostly uplifting-melodic Trance, electronica-Techno, and some House/Progressive House tunes to give away - FOR FREE. Let me know if you’re interested. Okay, that’s it for now. Looking to see you all at the Agenlli and Nelson jol.
C# Source Analysis And Client .NET
May 28, 2008
Microsoft Source Analysis for C#
If you code in C#, you definitely would want to have a look at this. It’s been used by Microsoft internally for as long as I know. Previously called Stylecop. Get it here.
Microsoft .NET Client Profile Assemblies
Because we mainly work in .NET and we have to keep lugging a large .NET framework around to install at clients (if they don’t have it). Microsoft has released a .NET Framework client profile that’s about 26mb and that is optimized for client .NET applications. Get it here.
Don’t Miss Another Edition Of ZA Tech Show
May 20, 2008
If you haven’t already heard of ZA Tech Show, now is the time. It’s an extremely cool podcast of the latest Tech Talk in South Africa.
SharePoint 2007 Administration Toolkit
May 14, 2008
The Microsoft SharePoint Administration Toolkit contains functionality to help administrate and manage Office SharePoint Server 2007 and Windows SharePoint Services version 3.0.
This toolkit contains two new functions - the ability to perform bulk operations (Move, Lock, and Delete) on site collections and a Stsadm operation to update alert emails after a Web application has changed URLs.
Get it here.
Time Diversification Of An Investment Portfolio
April 27, 2008
A very important diversification and portfolio structuring technique is to arrange your portfolio into different expected maturity classes. The broad underlying rule is that those investments with a longer expected maturity date are less risky. This will help the investor to balance his portfolio and risks between higher risk short trades, with fast profits (and equally fast losses), and longer term trades, that allow more freedom to wait for the appropriate moment to trade for maximum profit.
Stanlib recently determined that in any calendar year there is a 27% chance to lose money on the stock exchange. The picture is significantly different over a four year period, where the chance for a loss is almost next to nothing. Therefore by allowing yourself more time to identify the best time to buy or sell a share, you can reduce your risks significantly. Although you might have a slow growth rate for the first three to five years, you are positioned to achieve excellent returns outperforming inflation.
I divide my portfolio into the following expected maturity periods: 1 or less years, 3 years, 5 years, and 10 or more years. On the JSE Exxaro is a share that trades well between the R110 to R125 range as a short term trade. It’s also a very good buy for the longer term.
So next time you invest in equities ask yourself into which risk/time category the share falls, and whether you can commit to a five year period to reduce your chance of a loss.
Mac OS X Common Admin Tasks
April 12, 2008
What follows here is a list of tasks that I perform from time to time on Mac OS X. I do not do a lot of Mac OS X (Darwin) administration, but every now and then I do the odd MySQL or Apache installation and configuration. Many times when tuning these types of server applications and services, I typically encounter a few scenarios not considered in the installation guide. It is at these times that I am forced to venture on my own into the world of system administration. The problem is that I do not do it enough to remember all the typical shell commands, and workarounds, or maybe I just have a very poor memory from all the coffee that I have been drinking over the years. Either way it often results in me having to rediscover, again, how to do certain things in the Mac shell. This short list solves that by serving as a quick reference.
Maybe it will be of use to other novice system administrators.
User And Group Administration
- Add a user to a group in the bash shell on Mac OS X
To make a user part of a group in the bash shell, type:
sudo dscl . -append /groups/[groupName] GroupMembership [userName]To check whether the user was successfully added to the group, reopen a new shell and use the groups command to check which groups the user is part of.
That’s it, for now. Feel free to send me your Mac OS X admin tips and tricks, and I’ll gladly to add them to the list.
Invest In Silver Bullion In South Africa
March 30, 2008
A private South African investment firm, Shinobido Corporation, bought some silver bullion from Gold Reef City Mint. I highly recommend any investor to at least keep some of his portfolio in physical assets such as silver or gold, bullion or coins. Gold Reef City Mint also sells Kruger Rands, and a range of collector and investor coins, such as old coins containing a high level of sterling silver. Personally I try to stay away from these coins as it is (1) difficult to determine exactly how much silver they contain, and (2) the investor pays a premium for the collectors value of the coin. These factors make them less liquid investments, with higher transaction costs. It can also be a pain to transport and store a few thousand Rand’s worth of old silver coins.
Silver bullion is therefore the perfect solution to these problems, except maybe the storage part, depending on how much you’re planning to buy. Storing silver bullion bars to the value of R100,000 can be problematic. Storing your bullion bars at different sites, is highly recommended. Should an issue arise at one of the sites, a part of your investment is still secure.
Contact Gold Reef City Mint at +27 11 496 1405, or e-mail them at grcmint at iafrica.com.
Orion Causing Losses At Accenture and JSE
March 5, 2008
With great interest I read about Accenture’s failed Orion project for the Johannesburg Stock Exchange (JSE). Apparently it’s not that the project is a failure in the sense that the deliverables are of poor quality, but the project is now more than 2 years late, from an original estimate of 2 years, with no end in sight. This mistake will cost Accenture R75m in penalty fees. Freda Evans, the JSE’s Chief Financial Officer (CFO), said that Accenture will take over management of project Orion, and take the project to finish. Orion was supposed to produce 16 systems from the integration of 42.
Project Orion started in June 2004 and was supposed to finish early 2006, but is now way over time and budget. Interesting to note is that according to Business Day journalist, Renee Bonochris, Orion’s delay is not affecting the JSE’s profitability. How was this conclusion reached? Just like any investment the sponsor pays a certain amount for the project asset, and expects certain cash inflows or benefits to accrue after a certain period.
Surely the late delivery of these benefits will diminish their value? Unless Orion wasn’t of a strategic importance, we might agree with Renee. But the R75m penalty price tag suggests otherwise.
Another reporter from the Business Day, Colin Anthony, revealed that the project was a fixed-price contract (or at least the construction and deployment phase). According to him the JSE might “be able to salvage itself” from the part failure of Orion.
This brings me to the following points:
- How did Accenture estimate that reducing the JSE’s systems by 62% is going to take only 2 years? This seems like an extremely optimistic estimation. I do not know how big and complex these systems are, but from my experience just integrating two or three average systems with homogeneous technology is a moderately formidable task, that can easily take 5-10 months.Just integrating 23 systems from the same organizational unit would pose a number of administrative challenges. If they are owned by different departments, and worse different organizations, I can already see a huge administrative burden, with a very unpredictable and probably uncontrollable impact on the project.

- The danger of fixed-price projects. If you fix the price of a contract, you have to be extremely sure about the amount of work to be done, and very importantly the things that could go wrong. I don’t think I have ever worked on a project where at least one thing didn’t go according to plan. So the question is really did you think about the potential impact on the project, and how are you going to handle it if it does go wrong.Also if you have an inconsistent customer, that isn’t keeping to his end of the fixed-price contract by randomly changing his requirements, you are in for a rough ride.I am not against fixed-price projects per se. But I am definitely a believer in the incremental and phased approach to projects. This reduces risks on both sides, and provides clear exit points for the project. Estimating for only the current increment is bound to be more accurate because it’s not far into the future, and you have the experience of past increments to guide you. Initially it might look like the project is going to take longer to complete, but I believe that anyone going for a straight run of the project is fooling themselves. If something goes wrong, the whole project is at risk.
Scott Amber, IBM Agile Development Practice Lead, has the following to say about fixed price contracts: “Well, contractual negotiations are difficult no matter what you do. So we need to recognize that. But there’s fixed price, you know, there’s some realities, you know, the clients force us to do this. But at the end of the day fixed price isn’t good for anybody involved. It actually increases your risk. It forces you to do a lot of up front work that doesn’t help you at all and actually decreases your efficiency. So it’s just bad news. Yes, you can do, you know, agilists can do fixed price along with traditionalists: we can do the same sort of thing, we’re going to do a little bit too much work up front and we’re going to…you know, we’ll make up a number just like the traditionalists do.
The main difference is that we’ll be honest about it and we’ll say, you know what? This isn’t such a good number, and if you insist on an exact number we’re going to pad the bid. And so that’s just the realities. There’s no magic.”

- The JSE might have ‘protected’ themselves by inserting a R75m penalty fee into the contract. But did they really completely protect themselves? At this stage they still don’t know when the project will be completed. Getting the new contractors and Accenture project management up to speed will add to the project’s delay. If it takes too long, the new system might become outdated, technology and feature wise, before its even completed. And who wants to work on a project that’s 2 years behind schedule, and now the current developers have to work under immense pressure and bear the brunt of others’ mistakes?
I believe strongly that when it comes to software development there should be a partnership between the customer and the vendor. Inherently the nature of software development is very unpredictable. Accepting this fact, and working together to minimize its effect is the best approach. Merely adding a penalty fee to the contract might reduce the impact of a failed project, but you are still going to have a failed project. No-one wins from a failed project. There are just big losers and smaller losers, but everyone is still a loser.
Google Web Toolkit’s (GWT) Fake Long
February 24, 2008
I ran into a cunning Google Web Toolkit JavaScript problem, related to the Java long data type. I was using long for my objects’ identities, that are persisted to db4o. On the server side the objects’ identities had the correct values. When I returned the object as a serialized XML string, the value was also correct. But as soon as I tried to directly use long, the value was always one less, than the actual value it was meant to be.
Before I decided on long for my object identities, I had a gut feeling that JavaScript might not support this data type. Turns out my original suspicion was valid: “Intrinsic types byte, char, short, int, long, float, double, Object, String, and
arrays are supported. However, there is no 64-bit integral type in JavaScript, so variables of type long are mapped onto JavaScript double-precision floating point values. To ensure maximum consistency between hosted mode and web mode, we recommend that you use int variables.”
It probably would be a good idea if the GWT compiler reported any long types as warnings. There’s no point having a long that doesn’t really work. It just opens the opportunity for problems like this one.
Free E-Book: Introducing Microsoft LINQ
February 15, 2008
The complete book “Introducing Microsoft LINQ”, is available as a free e-book/pdf download. Thank you very much Microsoft! Some chapters from “Introducing Microsoft ASP.NET AJAX”, and “Introducing Microsoft Silverlight 1.0″ can also be downloaded.