Thursday, November 27, 2008

IT is not like upgrading a car, like designing a house

I would contend that IT problems tend to be organisational problems rather than technology problems. Upgrading your IT is not like upgrading your car, where you just get better performance from your wheels, accelerator and brake. Rather, upgrading your IT is like designing a house. Yes, new houses are often built from better components, but you still need good design that meets your particular needs. To some extent you can buy off the plan, but the result is never as good as working closely with the architect.

Thursday, November 13, 2008

Book Meme

INSTRUCTIONS:

* Grab the nearest book.
* Open it to page 56.
* Find the fifth sentence.
* Post the text of the sentence in your journal along with these instructions.
* Don’t dig for your favorite book, the cool book, or the intellectual one: pick the CLOSEST.

"Not only is the flowering of global science and technology not an exclusively Western-led phenomenon, there were major global advances in the world that involved extensive international encounters away from Europe".

This week finds me reading "Identity and Violence" by Amartya Sen (subtitled "The Illusion of Destiny"). Last week would have found me reading Terry Pratchett, which probably would have made for better blogvertainment...

Cheers,
-T

Wednesday, November 12, 2008

Mashup idea: library catalague with book reviews

I'd like to see a really good book review site that could talk to my local library catalogue system, so that I could check out what highly-reviewed books my library currently has available for loan, and perhaps even use it at the basis for purchasing requests. Just another way that Things Could be Better! :)

-T

Thursday, November 6, 2008

Pythonista, pythoneer... pythonite

Another noun for describing a python afficionado. See http://www.wordinfo.info/words/index/info/view_unit/1096 .

As in socialite, canaanite.

Also related to the rare substance Pythonium, the pure essence of Python in mineral form. Pythonite is a substance created from Pythonium. Consuming Pythonite (or refined Pythonium) can lead to greatly enhanced productivity. Hence the somewhat ambiguous term Pythonite may refer either to a Python afficionado or the mineral substance formed when Pythonium is present in the natural environment.

Can react energetically with Perlite despite its proximity on the programmatic table of elements.

-T

Wednesday, November 5, 2008

More on soft exceptions

I had a real-world problem just now which I chose to tackle using soft exceptions. I have a series of rules which transform a data object. Depending on the state of the data object, not all the rules are applicable. Also, depending on the rule, it may or may not be critical to have the rule applied to the data object.

While pursuing another task, I caused an exception inside a method which applied one of these rules. Rather than simply track back the exception and add more handling to the code, I decided to *also* wrap this rule in a soft exception handler. In operations, it would be far better to simply not apply the rule than to cease processing and crash, yet the rule logic is written such that any error causes a program fault.

Ideally, I would implement the soft exception handling using a logger level which could be applied application-wide, but that is a bigger task than I wanted to tackle in 10 minutes!

So, I wrote:


exceptionMode = "Soft"

try:
originalState = object.state
// Apply rule logic

except:
object.state = originalState

if exceptionMode == "Soft":
print "NEW WARNING -- generated in MyClass.methodName
print "Methodname failed. Original state is being used."
traceback.print_exc()
print "END WARNING"

else:
raise

return successFlag


This worked beautifully! I can check the code in with soft exceptions turned on, so that in operations any bugs here will only result in a rule failure, not a complete process failure. However, I still have access to the full stack trace through logging and can also set the exception mode to "Hard" (or anything that's not "Soft") and have 'brittle' behaviour for testing.

Score 1 for soft exceptions!

Clearly, it would be ideal to log instead of print. It would be good to have have the following logging controls:
* Hard or soft exception handling
* A logging level which would actually bring up user warning dialogs
* A variety of logging detail levels

Cheers,
-T

Monday, November 3, 2008

Meme: Top Five Software Possibilities

Here's a quick meme... List the top five things that (you believe) could be feasibly achieved with a software R&D investment in the order of $30 million. Please list a time frame for any particularly big ideas. They could be your top five moneymakers, top five in terms of benefit for society, or anything -- it's YOUR top five :)

1. Flawless text-to-speech rendering. Could be done in four years, will take 15 otherwise.
2. Driverless cars. Could be done in six years, will take 40 otherwise.
3. Complete automation of the tax system. Maybe six years?
4. Creation of fully anonymous, publicly available medical research datasets.
5. Create an artificial mind. Could be done in ten years, but may never be done.

What are your top five?

-Tennessee

Sunday, November 2, 2008

My project: GAE-JSON

URL: http://code.google.com/p/gae-json/

The project is really not ready for public consumption, but I have noticed another project called gae-json-rest which is turning up on Google search. So that others can find my project by searching for it, I just needed to create a couple of links to it so that it will be available. Not, of course, that I'm being competitive -- but if I don't put some links up then there will be a lot of confused visitors to the gae-json-rest project!

If anyone feels very enthusiastic about the project, there *are* a couple of functional examples which anyone could install on their system, but they will need some guidance first. By the time OSDC08 comes around, however, I intend to have turned this around into something which is really genuinely user-friendly. I should add to the list of my goals:
* Create a hosted demo
* Put together a wizard / walkthrough
* Create some documentation

However, goals at the moment will still be those relating to functionality...

-Tennessee