There's nothing like changing employers (eg. leaving UniSA for the world of contracting) to make you realise there's lots of things you need to (or should) know, either before you start or very soon after.
Each workplace is different - some things will be common (eg. provision of toilets!), but there can be differences or variations.
In no particular order, here are some things that came to mind:
- Where is the light switch? Especially if you are the first to arrive and it's still dark!
- Where are the toilets?
- Are there shower facilities? Essential should you wish to ride to work.
- Speaking of bike riding, is there somewhere you can leave your bike (and smelly bike clothes)? Sheltered and secure would be nice.
- What kind of workstation will you have? How many monitors, processors/cores, RAM, Vista or XP, etc.
- Are tea and coffee provided?
- Is it family friendly - specifically do they accommodate flexible work hours? Handy if you need to pick up or drop off kids.
- What facilities (shops, banking, food) are close by?
- Does a "social" culture exist? Are there morning/afternoon teas, birthday celebrations, team lunches, sporting or interest groups, movie nights, barbecues, etc.
- Do your workmates have a sense of humour? Do they appreciate yours!
- Is occupational health and safety taken seriously? Is the non-obvious boiling water tap in the kitchen appropriately labelled, or is it a scalding accident waiting to happen!
- What is the most common form of communication - face-to-face, email, IM, phone, pigeons? If not face-to-face, how quickly do people respond - immediately, within the hour, next day, etc.
- Are workmates encouraged to give "read" access to their calendars so you can easily find where people are, or is there some other facility (whiteboard, in/out board) used to indicate where someone is.
- Do you know what to do if there's an evacuation or you need first-aid?
- Where is the fax machine and the printer?
- Is there full or restricted access to the Internet? Are there restrictions on using IM, Skype etc.
- Are there extra duties or rosters you are expected to fulfil? Washing dishes, cleaning the fridge, buying the milk.
- Is there a helpdesk? And do they actually help!
- Can you make STD (interstate) or mobile phone calls from your office phone?
- Is it generally safe and secure? Can you leave your wallet on your desk and expect it to be there later.
- Is there an ID card or sign-in process to control physical access?
- Can you work remotely or do they expect you to be physically in the office? If working remotely, what security requirements need to be met to connect into the work network.
- What's the car parking like and how close is it to public transport?
- Where is the stationery cupboard?
Can you think of anything else I've forgotten?
Ashford Hospital have a scheme called "Baby Bliss" where you can transfer to the Adelaide Hilton and finish your hospital stay there. They provide a midwife onsite, but it's only suitable for mothers and babies that are doing really well and don't require other medical attention.
We found out on Saturday that the Doctors were happy for us to take this up, so that night the five of us spent our first night together as a family. The older kids enjoyed the experience - watching the trams and the fountain in Victoria Square from our room, Chinese takeaway and breakfast at the Pancake Kitchen. Narelle particularly enjoyed the room service (which is included for the mother).
Monday morning Narelle and Amelia were able to come home. Narelle is recovering quickly and Amelia is feeding and sleeping really well. She's also doing the other thing that babies do a lot of as well :-)
I don't plan to blog anymore about Amelia at this stage. I prefer to be cautious about publishing details of our kids online (I know there are people out there that would misuse this information). When they're old enough I'll let our kids make that choice themselves.
I'm extremely proud to announce the birth of our third child - Amelia Jane Gardiner. She was born yesterday morning at Ashford Hospital, weighing in at respectable 7lb 4oz (in the old money).
Narelle and Amelia are both doing very well.
Back before ADO.NET, we used good old ADO to do our data access in our ASP pages. To improve performance and avoid SQL injection attacks, it is good practice to use parameterised queries or stored procedures. Usually these are interchangeable but I've noticed today that ADO throws up the following error if you try and set up a return value parameter:
Microsoft OLE DB Provider for SQL Server error '80040e21'
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
For example, the following code gives that error:
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection = conn
Set ParamReturn = Cmd.CreateParameter("Return", adInteger, adParamReturnValue)
Cmd.CommandText = "INSERT INTO table (col1) VALUES (?); RETURN SCOPE_IDENTITY()"
Cmd.CommandType = adCmdText
Cmd.Parameters.Append Cmd.CreateParameter("p1", adInteger, adParamInput, , "value")
I haven't found any solution, other than to use a stored procedure instead. Presumably return values aren't supported for plain parameterised queries, though I haven't seen that documented anywhere (yet).
For a while now I've been using the Sync Kolab extension for Mozilla Thunderbird to synchronise changes to the Thunderbird Address Book.
This works quite well, but it only synchronises with other Thunderbird sessions. What I really wanted was to use the Contacts from GMail and synchronise with that. That way, whether I'm using Thunderbird, or just the GMail web interface, I'll have the same details available for all the people in my contacts list. The problem is that Google hadn't provided an API for accessing the Contacts data, but that all changed last month.
The good news is that Zindus are already working on a new extension for Thunderbird to synchronise with Google Contacts. I plan to try this out very soon.
There's also support for the Contacts API in Google's .NET Client Library, should you wish to use this in a .NET application.