Daily Archives: October 14, 2011

Everyone had his book, some old skool developers still do

RIP Ritchie, I will never forget reading and referencing your book back at the beginning of my career before the internet was what it is today.

My commute is 18 miles each way, but there is no shower in the office

This post was born out of a comment on a blog post by cyclinginheels

My commute is 18 miles each way, but there is no shower in the office!
So I had to make a decision, drive 50 minutes and hate 40 minutes of the journey or cycle for 1hr 15 minutes and love (almost) every minute of the journey (but work around the lack of shower issue).
Well, I chose to do my hobby 10 times a week and I’ve never looked back.

No shower means unfortunately the best I can do is a sink basin wash, change into work clothes and shoes, re-apply deodorant and style my hair.
I find changing clothes does a lot for my personal hygiene as cycling clothes breathe well and absorb the sweat away from my skin, sweat drying on the skin is what makes us sweaty, therefore I’m not that sweaty after a wash and a change of clothes.

Hairy arm pits retain sweat too, so if you aren’t a regular arm pit shaver then maybe try it and see if that helps too. If you are a man reading this then don’t be shy, try it you smelly coward 🙂

The wash is naturally more involved on horrid wet and dirty days, but that’s fine, I’m not wearing my work clothes, I don’t need to protect them from rain, so I don’t wear sweaty waterproofs either. My feelings on waterproofs are that they make me feel hot, sweaty and unhappy. I see others cycling slowly in waterproofs trying (but not succeeding) to not overheat. I’m in my cycling shorts and short-sleeved jersey and not really bothered by it, yes, I get to work wet, no more than had I been wearing waterproofs though. Waterproofs work for short cool weather rides in my opinion, but I avoid them at any temperature. Also breathable waterproofs are not really that breathable and rely on humidity differences, when wet on the outside you’ve got no chance, sweaty on the inside, even less chance.

Another key to arriving in comfort is to not overdress, on cooler days, start off feeling cold and you will soon warm up. At 6 degrees celsius I will still start and end my ride in shorts and t-shirt! If I started off wearing anything more I’d be stripping it off 2 miles down the road due to overheating. Arm and leg warmers can help, but I find them a bit too much of a faff.

When my cycle commute was 22 miles each way I did have use of a shower, that was nice, I do miss that, but it’s not a deal breaker.

My cycle commute setup part 1

First up, I love my bar bag, it contains a lot of useful stuff for easy access in bad weather (so I don’t have to open my office pannier bag and get my clothes wet or dirty). I hope to cover the contents in detail in part 2, but for now the interesting things to point out are the ice cream tubs (I don’t endorce that flavour ice cream, coconut is my favourite!). The tubs keep things together, there are three tubs in total. The top one does pop open from time to time, so I do want to source a better tub for the top one, yet another TODO 🙂

The cycle compute isn’t setup correctly, it serves more as a clock than anything else, but it is useful having a clock at times. The pink rag (typical, I take a photo when it’s pink, my rags are normally black or white, honest) is very useful for wiping oil from fingers, wiping hands after emergency maintenance or wiping poo off – it happens!
Ding, ding! A bell is sometimes useful, but not that often as I’m normally braking hard rather than dinging the bell.
The bar bag has many uses including a place for my mp3 player as I’ve killed many expensive mp3 players on wet days, so keeping it in the bar bag has saved it from sweat and water and is recommended! Also the mp3 player I currently have is worth a mention, the Sony Walkman B Series, it has recovered after lots of sweat and abuse, so it gets my vote. As for headphones I strongly advise only buying from a real retailer (e.g. Dixons) to ensure you avoid the fakes out there. I currently use the Sennheiser CX 300-II Precision and they are pretty good for the money.
Also the bar bag is a good place to store a battery for my Airbike Everlight SL1:

Of note in that photo is the light bracket 🙂 Bicycle light bracket DIY
Since my backup bike is kitted out in the same way (same rack, rear light brackets, bar bag mount) I am ready to use either bike when required. The only minor difference is the light bracket, that one is using an accessory bar:

Other than my lights, my mirror is by far the best piece of safety kit that I have, I feel naked on a bike without a mirror. Cateye do very good rear lights and mirrors.

The grips (though not pictured very well) are Ergon GP1, these add extra comfort for longer commutes and rides.
A bike bottle cage is useful, 1 litre fruit squash or pop bottles fit well and can be recycled when they get horrible, shop bought ones require careful cleaning to keep the bacterial down. Smaller 500ml bottles go in the cycling t-shirt cargo pocket instead.
On the back rack go the pannier bag and bike locks – d-locks can be strapped on with a toe clip strap, I think this is a top tip, others might not. If attached correctly it won’t wobble or move.

This photo also shows two, yes TWO, cateye lights, I believe this is the best option, see my other post about them.

Hopefully part 2 will follow in future!

Oracle: ODP.NET is the devil

Well, those were my words yesterday.
The errors Oracle was throwing up were:
ORA-06550: line X, column X: PLS-00224: object 'X' must be of type function or array to be used this way
and
ORA-06550: line X, column X: PLS-00382: expression is of wrong type
followed by
ORA-06550: line X, column X: PL/SQL: ORA-00904: : invalid identifier
No matter what I did I had these problems, these errors were just annoyingly vague and did not help at all, Oracle might as well have just said, “ERROR”.

I noticed if I had one too many parameters I got the error:
ORA-06550: line X, column X: PLS-00382: expression is of wrong type
which made no sense as they were all Varchar2 fields and the parameters were too (well, one was a PLSQLAssociativeArray).

Today I found out why I was getting such odd behaviour that I couldn’t for the life of me figure it out.
First port of call is to check your command is correct and you have the parameter names correct.
Secondly, are sure of that are you binding parameters in order or by name? The default is to bind by order (BindByName = false). This was my mistake and I needed to set:
cmd.BindByName = true;
where cmd is my OracleCommand object.

Best of luck and I hope I remember to read this post next time.