Blog

Sudoku Challenges

Anyone into Sudoku? Personally, I don't get on well with the normal Sudoku, but at http://sudoku.maxant.co.uk there are lots of different puzzle sizes (e.g. 2x2 and 2x3 which are dead quick to play) - and it records your times so you can challenge your mates too. So - can anyone beat 1 minute 36 seconds for this one? http://sudoku.maxant.co.uk/index.jsp?puzzleUID=114  

Read more

No More Coding?

This week has been a bit of a fast track when it comes to training. As well as spending two days on a SAP XI (Exchange Infrastructure / EAI) training workshop, I have had some time to check out JBoss SEAM. The SAP XI stuff relates to the Client needing to upgrade their existing EAI platform (eGate) to a newer version. As it will eventually involve recoding of all interfaces, due to no backward compatability, they are taking the opportunity to look at other platforms. And since 80% of their systems are SAP based, XI seems to the the natural and logical solution. So the workshop I attented was aimed at gaining a high level understanding of the product. It's sold as something related to J2EE, but in my opinion isn't really related to J2EE. Sure it lives inside a J2EE app server, but as far as the developer is concerned, all they do is create a toolbox of objects (data structures, mapping rules, business processes, etc). And this is all done graphically! Then they hook it all together and configure it. OK - I haven't done anything hands on, nor seen anything complex done, but I am sure that does involve writing a bit of Java at some stage. Out of interest, mappings are done using XSLT, which is run on the data structures which are defined as XML docs. I also spent time looking at JBoss SEAM, which is a project that combines your database, Hibernate (ORM), Ant…

Read more

Performance Problems with sending data 1000 miles

Well, its not a bank holiday in Switzerland, so while you are all having fun in the sun or spending your day in the pub as is traditional for the May bank holidays, I'm sitting here working on an interesting performance problem. We are trying to transfer 200,000 rows of data from SAP in Lausanne to MS SQL Server in the Ukraine (1000 miles away?). Its averaging 0.5 seconds per row and so will complete in roughly 27 hours. That causes the customer a few problems because its scheduled for 3am and has to be complete by 6am... The techy implementation is to use JDBC to do an insert/update statement depending upon if the row already exists, so we are actually doing several JDBC calls per row of data. Originally we thought that the bandwidth to the Ukraine together with a crackily/dodgy/unreliable phone line was the problem, but a quick calculation for the 1MB ADSL line that services the Ukrainian network, showed that it should be transferring in the range of several gigabytes in 27 hours, not a measly 25 megabytes... So along came our DB expert who suggested that calling a stored proc would be better because it would involve sending less bytes of data (the call to a stored proc does not name the columns being updated) as well as be optimised by the engine. Furthermore, it could do the check to see if the row already exists, reducing the amount of calls we had to do. The…

Read more

Oldest non-recorded bug?

Can anyone beat this? This morning I get in to find an email from a customer relating to a change we did for them. He is complaining that the quantities in the EDI file that we send to a business partner are wrong. I investigate and surely enough, the code uses the wrong index - it's always zero, not the loop index. But strangely we didn't change that code. So I checked source control, and its always been like that. In fact, there's a comment a few lines up which a developer added in April 2003 to say he was adding this code and the indexes needed checking... So amazingly this has been in production for 3 years. It's an interface between the client and Woolworths in Australia - and apparently its one of the most business critical interfaces that the EAI team deals with, processing millions of dollars worth of orders each day... So you can see how important EAI is here... Anyone have a bug that was discovered later?

Read more

DT, EMV and NPR

I remember reading a while ago, a discussion about making the decision to build a complex peice of code now which contains more functionality than is required, compared to building a simple version now and having to pay more in the future to add that extra functionality (cost in future is higher because of inflation, having to remember what your code is about, paying for the time where the business is on hold waiting for the new functionality, etc). I sadly can't remember where I read it, but it didn't give too much info so I wasn't able to do such a calculation on my own. Then yesterday I was in a meeting where we discussed about how the version of eGate we are using is only supported on Windows 2000, and MS is about to stop supporting that. So should we move to the next version of eGate and to Windows 2003, or should we stay as we are and take the risk that if a bug occurs on Windows 2000, that we won't be supported by MS... Well, I got out my book called "The 10 Day MBA" which I bought a few years back and started to look into the problem. It turns out that there are several tools, namely "Decision Theory (DT)", "Net Present Value (NPV)" and "Expected Monetary Value (EMV)"... The solution goes like this: 1) Draw a tree diagram with all the decisions on it. In this example, we have the following (sorry for…

Read more

Influence and Persuation

Did anyone see Derren Brown's 'The Heist' on C4 just after Christmas? For those that didn't, he set up some middle managers by pretending to be coaching them with seminars, experiments, etc. What he was actually doing was kind of brain washing them to think it was acceptable to rob a security van. The last thing he did was to set them up to be walking down a street all alone, going past a security van. 3 out of 4 of them pulled out their toy gun and robbed the van! It was very impressive - and got me and some mates talking about how it was done. We ended up looking on Google and Amazon, and I'm now the proud owner of two books on influence and the power of persuasion. So if find that after having a drink with me, you are robbing banks and strangely putting the money into a Swiss bank account, that might be why :-) OK - most of the things in the books are about how to sell stuff to people, or avoid being sold crap. I'm trying to work out how to use the techniques in software managment... The good thing about the books are that they are backed by scientific research. For example, if you wanted to jump to the front of a line of people photocopying, by saying "excuse me, can i jump to the front" you would only have a 60% success rate. If you change that to "excuse…

Read more

Time Usage

An IBM colleague has been keeping track of time usage by his developers (off shore) over the last week. He found it surprising that only 50% of the time was actually used for development. The rest of the time was take up by communications, knowledge transfer (basically ramp up of new developers), maintainance issues (dealing with customers on the phone doing second level support), etc. Having read Peopleware: Productive Projects and Teams, by Tom DeMarco & Timothy Lister, (December 1999, ISBN 0932633439) I wasn't that surprised. It explains why I've always found that doubling an estimate magically makes it accurate. My IBM colleague is going to continue to monitor for a few weeks, so if the results change, I will let you know!

Read more