Sound advice - altblog

Tales from the homeworld

My current feeds

Sat, 2004-Jul-17

Welcome, Andrae

I keep my own list of the planet humbug bloggers' rss feeds in my liferea configuration, so I missed the introduction of Andrae's blog to the community (or was he always there in the first place?). Andrae is an interesting fellow with a hobby of understanding some of the fundamentals of computer science.

By way of a welcome, I thought I'd respond to a few of his posts:

Impressive rant: Hrrmm... the context quoted here is basically saying that C++ is bad because it allows class authors to protect their data. I don't find it particularly impressive. I think that code and data structures behind an API should be able to change over time without recoding the entire system. The form of object-orientation that lead to the development C++ was centred around earlier practice of "Abstract data types". The idea was that the fewer pieces of code that knew the specifics of the data structure, the less places you'd have to stuff things up. Object orientation of the C++-world kind is built around the idea that you can push this forward a couple more levels. The article does make some good points, for example the idea that you have to recompile your entire system because you've changed some part of an object that doesn't form part of the public API, but instead is a private data structure does feel like the result of premature optimisation. I guess that's why the use of privates classes is encouraged. <shrug/> Actually, I guess you are more-or-less right. Classes with a lot of private data shouldn't really exist in a true object-oriented system, and the language should support a reasonable notation for separating the two so that the private bit is really really private. Perhaps C++ could do this better. As it is, the use of private data in this way is a kind of still-born shortcut for it.

What do you do for a living?: I say "you know how a rail system has a central control system to turn on and off the power, and monitor the air conditioning, and possibly even exert some control over the trains?" "Yeah..." "Well, I make software to go into that central control room." "Ahhh...." "So I'm not just a useless abstract software person" "No?" "Yeah, I'm really kind of like a civil engineer..." "Yeah, and my father is the pope."

UML Editors: I personally use visio with the UML templates found here. They support UML2, which is a big improvement in many areas over the 1.x series of UML and don't try to be a sucky development environment.

Happy blogging Andrae, and thanks for the OO & relational CS theory links

Sat, 2004-Jul-17

My political compass

I've just taken this test, and here are my results:
Economic Left/Right: -0.25
Social Libertarian/Authoritarian: -3.28

Naturally, I take this mean that I'm a brainwashed fool who takes on the political and social views that are pushed on me by the education programs constantly foisted on individuals within my society

Sat, 2004-Jul-17

Catch-up 17 July 2004


I've been extremely busy with work over the last few weeks so haven't put eny blog entries forwards. I'm sure that my many (ahem) fans will have been disappointed and I hope I can make it up to them now.

Firstly, I'd like to endorse the views of Greg Black on the French Grand Prix this year at Magny-Cours. It was a magnificent race where an agile strategy and great driver won out over a technical advantage. Things almost got interesting at the English Grand Prix this Sunday just gone, but wasn't nearly as exciting.

Things in my life are interesting. I recieved my bribe from the howard government in the form of a tax cut. The tax cut coincides with the annual salary review of the company I work for, so I have a few more dollars in my pocket this financial year.

That will end in November. Last November my wife and I bought a house in Wynnum West with a loan that included a twelve-month honeymoon interest rate. We've been pushing pretty hard financially, and are on target to get the loan down to AU$250k for when the real rates kick in. Being on 5.25% is pretty good in Australia at the moment, and when the real rate comes into play we'll be looking at around 7.5%. I don't think we'll be able to make nearly as much progress after that point.

The good news is that even if we drop back to only the regular repayments we've already cut the loan down to about 20 years from an original figure of 30 years.

Michelle had a bit of a medical issue recently. What was originally diagnosed as a miscarriage turned out to be a chunk of uterine lining coming loose instead of breaking down and dripping out as it usually does during that time of the month. We certainly weren't trying for children at the time and there don't seem to have been any perminant emotional scars from the early mis-diagnosis.

We're on schedule to start trying maybe in another 18 months. It would be nice to do so when the home loan didn't feature so strongly in our respective psyches and accounts :)

A response to a recent blog entry by Martin Pool: I don't know if this works in gcc, but under Sun's Forte compilers you can prevent warnings on unused parameters by removing the parameter name from your function implementation, eg:
from foo.h: int bar(int baz); from foo.c: #include "foo.h" int bar(int /* baz */) { ... } You can't use an unnamed parameter, so QED.

Hmm... interesting. I've just tried this out. If you run it through the C++ front-end of gcc my version works fine, but the C frontend rejects it. Oh well.

Sat, 2004-Jul-17

If we really lived in a capatalistic political system

Our political system is rife with corporate interference. Corporations and individuals donate money to our political parties in order to gain sway when issues that affect them are discussed and decided on. Politicians should represent the people, not just the shareholders of major companies, so what is the solution?

Let's think about political parties as businesses. They set out to make money so that they can have influence and they set out to have influence so they can make money... at least for the country... or something. Anyway.

If a political party is a business, it will ultimately serve whoever gives it money. The people, therefore, should essentially be the only source of income for political parties.

My naieve understanding of the current political system is that we currently give political parties money in accordance with the number of vote they get. This is obviously not enough, because political donations are a reality and skew our whole sense of politics

"What's the solution? Let them keep the surplus! What's that? Let them keep the surplus? The budget surplus? Yes! The budget surplus!"

Political parties should be able to fund themselves from the money they save the people. They should control the tax rates and ensure that they put enough margin in for themselves to make a profit, but also have a reason to push for increased productivity and lower costs.

"That's crazy", you say... and I say "Oh, let them pay for the deficit too".

Yes, I'm a crazy man, but this is something I have to write. It's been bugging me for a while. If we believe in a capitalist system we should apply the same to our politics. Existing govenment infrastructure should be privatised and used for outsourcing to the govenrment business that vie for our "four year contracts" to set our law and to provide our services.

Whenever an election rolls around, the competing political parties must prepare tender documents for their role in governing the Australian people. The tender includes a statement of the tax they intend to collect over the period, and the services they intend to provide for the money. If voted into office, a binding contract exists that the government must satisfy. Based on the taxes and services the Austrlian people will select between the companies.

To avoid having one party or the other starved while out of office, I suggest a system where we tender for different government functions. There would be one tender for defence, and another for health. One tender for education and another for environmental management. Each would be individually tendered for and won with a mix of contracts awarded to different political parties. On the ballot form we'd have something like this:

Tax collection:
Voters for the first time would have control over a direct link between their tax and rates and their services. Because of the increased control, voters might even become more interested in politics and take note of how the amounts change from year to year.

In the end, you have a bunch of subcontracting organisations who run various major services in Australia and real power in the hands of the people. The final element is the group of people who enforce the contracts and set the basic conditions which contractors must abide by... a kind of micro-government. This role, too, might be dealt with in the same way where the people put more money into this group when they have distrust for the other arms of government and less money in when their trust level increases.

That's my second blog entry for the day, and tangent from my usual musings. I hope I've said something to make someone think a little more about how government itself works and should work

Sun, 2004-Jul-04

The French grand prix at Magny-Cours

It's shaping up to be an interesting race tonight at Magny-Cours, to be aired on channel ten at 10:30 Brisbane time. There is only a 1.1 second gap between the qualifying positions at the front of the grid and position 12 where Australian Mark Webber starts the race, yet a full .3 of a second of that is made up between first and second positions.

Spain and Renaut's Fernando Alonso heads up the grid ahead of series leader Michael Schumacher of Germany and Ferrari. Michael's teammate in a nearly identical ferrari is stuck down in tenth position. That's our old favourite Rubens Barrichello of Brazil. In his defence, he was unable to participate in pre-qualifying due to hydrolic problems.

The big news of this race and the previous race in America is the fate of Michael's brother Ralf Schumacher.

After a 300km/h impact with a concrete barrier Ralf was originally cleared by race doctors of Indianapolis and transported to his Germany for observation. It was only there that doctors discovered multiple fractures in the 29-year-old's back that may have prevented him being transported at all if they had been discrovered earlier. In addition to the scare it has put into Ralf, his teammates at Williams, and his many fans, his broken back guarantees he stays out of formaula 1 for between two and three months.

Replacing Ralf at the wheel this week will be Spain's Marc Gene who is in a respectable eigth place on the grid.

The race in Indianapolis was a bit of a mechnical bloodbath. Webber with his new engine suffered a terminal oil leak and was unable to finish the race, but was in good company. Only nine runners made it to the finish line. According to the race results, we had two engine failures, two gearbox failures, one disqualification to Juan Pablo Montoya for failing to clear the grid quickly enough when his car failed to start and he made a mad dash to his backup car, and an amazing six contestents out due to accidents. Many of the accidents were related to debris on the road from earlier incidents.

One of the things that makes the french grand prix interesting is the new cars or vehicle modification that tend to come out about this time of year. By this time most teams have gathered sufficient data to begin some major changes in their push towards end of season glory.

Magny-Cours is a 70 lap race with plenty of ways to run it. It's a favourite of drivers and we'll hopefully see some really interesting pit strategy. The narrrow separation of the top 12 drivers may indicate that the front runners are carrying more fuel than usual, or may indicate that advances have been made by some of the mid-level teams. Watching this unravel will be one of the thrills of this race.