Training Day

There's nothing like the joy of sitting in on training.  The ceaseless fight
to suppress yawns and avoiding the temptation of nodding off.  I suppose I
will be tired right out by the end of the day and will easily sleep the night
away.  Hopefully I don't dream about green screen applications.

Published at

Payday Scandle

Will there be another payday scandle?  Will the accountant actually figure out direct deposit to my bank?  Stay tuned for more exciting accounting news.........

Published at

The BIG time crunch

So I've started this new job and even during the interview, I was told that the application being built was slated for a Fall 05 release. Based on what I knew that the program was required to do, I figured that we'd make that date working the minimum daily hours. Today I heard how people were seriously concerned about making the deadline. Hmmmmm.
After hearing that I decide to reminice on the past three weeks productivity and keep an open eye for "little" blackholes for time. Here's this week so far:
<ul>   <li>(Every) Monday  morning meeting on the progress/status of development.  Not much to report I was told, so it should be a short meeting.  2 hrs.</li> </ul> <ul>   <li>8:30am start (every day).  All employees must gather and validate each other on the events that occured in each's life since the end of the previous day.  20 minutes.</li> </ul> <ul>   <li>Today 1:30pm.  2nd developer on project (team of two) must diagnose the physical and social issues surrounding the illness of the  technical writer's daughter.  45 minutes.</li> </ul> Meanwhile, I've done my part in the pursuit of the "looming" deadline by building 4 complicated financial reports and adding functionality to the reporting infrastructure.

One thing is for sure, we will have all the reports done by Fall 05, everyone will feel good about each others personal lives and we will know how to raise a socially balance child, but we won't be able to resize any of the damn windows in the program.

Published at

Prosecuted by another CASE

In my prior job I was know for my willingness to create very advanced TSQL queries.  I have written queries exceeding 10,000 characters in length without any WHERE clause.  I know this because we stored the queries in a database table which had a VARCHAR(8000) column, and I had to change it to be TEXT.  The same query had CASE statements embedded three deep and derived tables embedded three deep, but it was because I need to flatted data in ways the data structure never was intended to.

Now I'm writing simple financial reports (Income Statements, Trial Balances, etc.) and, due to the fact we're using Data Dynamics' Active Reports, I essentially have to format the data at the query level.  This has led to more CASE statements than I've written in my entire career, and I've only been working on these reports for 3 lousy days!

I am fully blaming this on Active Reports and not the data structure, so I will dedicate another posting to a critical comparison between AR and Crystal.

Published at

Fight like the little guy

Shannon Noll Aussie Idol runner-up in 200(3?). I was down there when he sang this on the show and saw it on TV. It's not too often that modern artists send a tingle down my spine, but this did it.
<A href = "http://www.click2music.com.au/streaming?promo=tvc_vid&amp;id=32200">What About Me?</A>


Published at

Punctuality

I got to work five minutes early yesterday morning and found that I was the first person there. This would normally be no problem except that I'm leery of disarming the alarm system since my instruction on doing this was conducted by a person who admitted to consistantly setting it off. With that in mind, and no desire to deal with a security company or the cops, I waited for the next person to arrive. One would think that they would be there very shortly due to the start of the day. Well I was so wrong again. Fifteen minutes later, and only ten minutes late, a couple of people wandered in for the start of work. Better yet, they left work promptly at quitting time.

I still don't understand urban business and work ethic.

Published at

Accountants and Guano. Is there a difference?

Last Friday was my first pay day.   On the first day of my job I spent some time with the company accountant to ensure that the direct deposit of my pay would work without a hitch.  Hell I even double checked this.  Sure enough, my pay doesn't show up in my account.  Turns out that she missed one portion of my account info, subsequently leading to my bank refusing the transfer because it couldn't find the account.

So this morning when I get to work I mention this to her and received the very stern comment that "I asked you to verify the information that I was using and I would assume that you would have taken that information to your bank and had them check it for you."  Well whoop-de-fucking-do to you too.  When the hell am I going to find the time to get to a damn bank when I work during their business hours?  So her solution for determining the error and fixing it for the next time is that I need to spend time on the phone with my bank, get them to tell me what they can and then report it all to her.  Short version of the last sentance; The solution was for me to do her work and tell her how to fix her fuckup.   It's not like I didn't give her a voided cheque for the correct account,  it's not like this was her first time setting up direct deposit, its not like I'm the damn accountant!

In the end I get a paper cheque for my pay, I get the firm assurance that "We'll try this again at the end of the month and see what happens" and I get to find my way, via transit in a new city, to a bank branch to use an ATM I should never have needed to use.

Perhaps you read this and think that I am overly bitter or distraught about this situation.  Let me fill you in on the first pay run at the last company I worked for.  Basically, pay day comes and goes.  I'm new and haven't been given any information on how/when pay days occur.  I wait about 3 days without recieving a cheque at my desk or in my account via direct deposit.  Finally I ask my boss if she could tell me if the cheque is in the mail or if I didn't get one until the next pay run (I'd only been there for 8 days).  About 2 minutes after asking these question I hear her yelling at the top of her lungs that it was completely unacceptable for my pay to be forgotten.  And that is what had happened; the accountant had simply forgotten that I should be paid for working there.

Maybe I should find a new job quickly and the third time will be the charm.  Yeah, accountants will get it right and shit won't stink.

Published at

Installations Crashing the 3rd Party

Once again I'm going to indulge in the systematic and destructive analysis of my new workplace and coworkers.

The 3rd Party......I remember when this was an event that started shortly after the bars closed (the 1st being a pre-bar get together and the 2nd being the bar). Now the 3rd party is a group of intelligent (hopefully) and specialized programmers making things that I, and other application developers, would rather spend $300 dollars on than go through the hassle of creating it.

My new development team coworker (why there is only one is another diatribe entirely) has completely ruled out the use of 3rd party modules or controls for no reason other than the fact that this individual believes that they will make the creation of a stable installation package impossible. Amazingly, shortly after divulging this to me, the same person went on to tell me that they had never once been involved in the development of an installation package for any piece of software. I know that I am not an expert on the development of installation packages, but I have worked on two or three of them. These experiences have shown that, with the use of merge modules when possible and careful development, 3rd party controls are of no concern what-so-ever.

I did what I am quickly becoming good at; Nod my head, acknowledge the concerns, and don't suggest that I have any experience, or desire to learn, in the area in question.

I've always liked jade.

Published at

Relationship Hell

I've been working with the software and the data structure at my new job for a week now and, although some things about the job are nice, today placed me right in the middle of a relationship quagmire. The data structure is ID based, relational and, for the most part, normalized. Today I started writing queries for the first report to be built in my newly created data driven reporting structure. I chose to build a very simple product listing report first to find glaring errors in my new code as quickly as possible.
So this report is three columns of data; code and description fields from one table and a code field from a parent table. I thought that this would be a simple enough query with one join between two tables, but I was oh so very wrong. It turns out that the data architect has decided that the Foreign Key fields should allow NULL values. Because of this, the INNER JOIN syntax normally be used will not return the records with the NULL values in the Foreign Key field. The only way that I'm going to be able to successfully write any query in the application will be to use the LEFT JOIN syntax all of the time.
Why would someone do this, I ask? If a child record has no related record in a parent table, why not create a record, with its own ID, and make it a special record for 'NONE'? Perhaps there are other ways to do this, but certainly using NULL in a Foreign Key field will cause endless grief in the application and, perhaps more-so, in reporting.
Thankfully I found this only one hour before quitting time and I didn't have to fume over it for the entire day. I did however decide to have my own sit-in to protest this design, and I successfully did nothing for that last hour of work.

May Boyce, Codd and Booch punish this data architect daily.

Published at

Week 1 complete

I have successfully completed week one of my new job. The people at the company are very nice, leaving a welcome card and sweets on my desk the first morning and buying me lunch that same day.

I've been placed in the office of purgatory until the desk ordered for me comes in. So I am way off in the back corner of the office far from anyone at all. They're wise planning has the new desk arriving some time next month, so I'll be working by my lonesome for quite some time.

The first two days of work were mostly meetings to learn about the company, the project and the technical style being implemented. On Friday I did start working on some programming stuff.

While I was being shown around the office and sitting through the always dry meetings on company lifestyle, I began to see that the similarities between my previous job and this one ran much deeper than the service. At my previous work we named all of our servers according to a Star Trek theme. This company has their company manual and internal forms (an Away Mission form for business trips) written in that same theme. The server room echo'd of both the old way and the new way at my former job. The room is accessible to all and none of the hardware is under lock and key. The server room also has the exact same make and model of portable air conditioning unit in it, the same patch panels, the same phone wiring harness and, scariest of all, the same use of a piece of plywood, screwed to the wall studs, for mounting all phone, internet and extra wiring. Other things that are scarily similar include the complete disregard for network storage organization, the intentional use of improper network security and server configuration to provide easy access to users, and the dual role of network administrator and support person performed by one individual.

After sitting through 6 hours of technical overview on the new project and its current state, I realized that, although experienced, some of the people on the development team may not be very skilled. For those that are techies, imagine that all windows forms being developed in the application have, at a minimum, two hidden text boxes to pass the database and server names around the application. Maybe I'm over reacting to this, but isn't that what a global variable is supposed to be used for? The data structure and the data access layer of the application are quite good, but the user interface is a disaster. Very few standards have been selected and consistency is non existant. Buttons are different sizes. Sometimes two buttons side-by-side have a space between them, sometimes not.

In three days I have decided that I can not change the way that people want to build their software when I am not employed as an architect. Therefore I will be going to work, doing what is required to be successful at the position, maintaining my high standards for my own work product, and......continuing to look for a different full-time or contract position here in the city.

On that note, since taking this job I have had the opportunity to be placed in 3 different positions in Edmonton or Calgary. I even had one only a few days before Christmas that was a permanent developer position in the city that paid about 25-50% more than this job. I also got a call for a contract position just yesterday. I don't think that I'm long for this job if I've had this kind of contact in the last 3 weeks.

Published at

Work looms large

After five glorious months of reduced stress (and reduced pay cheques) I am officially back in the work force tomorrow.  I'm not overly excited about the company, or the work itself, but perhaps I've judged the book by it's cover.

The similarities that I recognized, when I was talking with my new boss during the interview process, are the largest concern that I have at this point.  This company is at the exact same spot that my previous employer was when I started there 4 years ago.  They are rebuilding a legacy application (green screen) with a new technology.  The company is not very large, subsequently the development team is small, and, on first glance, the "business" aspect of the company is similar.

Hopefully all works out and I'm proven wrong.

Published at