Archive for October, 2011

Finally Figured Out Nasty TBB/Uninitialized/Locking Bug

Friday, October 21st, 2011

bug.gif

Today my co-worker and I finally figured out the last, nasty bug in the Greek Engine that I've been working on for quite a while, and it's brought to a close a stage in my life that brings with it a lot more questions than answers. I've been working on this project for about six months, and while that's not very long for a project of this type, it's a long time to be getting a lot of grief from upper management about the time this project is taking, and the fact that it's not already in production.

I'm no idiot, I know that the finance industry is focused on What have you done for me today?, but when I'm asked to build something like this Greek Engine, and it's clear that it's not a four week project, then it's tough to sit here and take the accusations of incompetence and neglect when what I'm building is for the benefit of the name callers. I'm thrown back to the Little Red Hen: Who will help me back the bread?

In the end, it doesn't really matter because I did this for me, and not for them. I choose to not deliver crap, and they are the hapless beneficiaries of my morality. It's not something I'm necessarily proud of, but it's what I've come to see as the way things often are. I make a choice, and for the most part, there are detractors, and many of those detractors are in fact beneficiaries of my work. I do the work under their critical and harassing eye, word, and act, and in the end, they are the ultimate winners in this game.

Which, of course, isn't true at all, is it? They don't really win, because they don't have the ability to do what I've done, and they probably don't even have the ability to maintain the work I've started. But they benefit because they get to use the software I've written, and as long as I'm willing to allow them to play their sad, little role, they believe themselves to be my master.

But they aren't.

And it's not even close.

But today I've finished the last major problem on this project. It's now going to be a bunch of little features that are pretty easy to put in the code. Nothing major, and there's no real performance issues to deal with. It's pretty much done. I can sit back and look at the work I've done and smile. It's amazing work, really. I never thought it'd come together in six months, but it has. That's an impressive delivery schedule in my book.

And that's the only one that matters.

Google Chrome dev 16.0.912.4 is Out

Friday, October 21st, 2011

This morning I saw that Google Chrome dev 16.0.912.4 was out, and includes the new V8 engine 3.6.6.5 as well as quite a few nice Mac improvements including OpenGL. It's getting faster on the redraw, that's for sure, so I'm happy about that. Keep them coming, guys!

Finally Found Colloquy Developers on FreeNode

Thursday, October 20th, 2011

Colloquy.jpg

Today I finally found the Colloquy developers on FreeNode (IRC) because I wanted to start working on getting the latest Growl 1.3 working with Colloquy. I've spent a little of the last several days looking at the other Mac OS X IRC clients, and while there are a few that look OK, there's nothing that's as well-targeted for my needs as Colloquy. I looked at Textual IRC Client, and while it was reasonably minimal, it didn't have the configurability in the themes to make it really what I wanted. Basically, I want a small but readable IRC window that I can have up all the time to monitor all the development group chats that I monitor as part of what I consider to be "important to my life in the trenches". So if I can't change the font, or vertical spacing, it's possible that the client isn't going to be something I'm really interested in.

Thankfully, Textual IRC Client is available as a trial download, so I was able to try it without having to buy it on the Mac App Store. The same goes for the other one I seriously looked at - Linkinus. I have to say that this was a little closer to my liking, but again, there's no way for me to make a theme for it, and if that were the case, I'd have bought it.

It's got all I need - and to be fair, Textual IRC Client had most of what I needed, but in both, it's the visual representation that fell short. Neither seemed to have the ability to configure the theme to the level I wanted to get a view that would fit into what I had with Colloquy.

Growl 1.3

After all, the only real problem with Colloquy is the Growl 1.3 integration. Also, it seems that the updates for Colloquy have been few and far between, and with Lion, there are a lot of new features that probably need to be addressed. But on the whole, it's not a lot of changes.

So I set out to find the developers of Colloquy and see if I could get the code and work in the Growl 1.3 support. What I found was that Colloquy (#colloquy) and Growl (#growl) are on FreeNode, and that one of the Colloquy developers has already integrated the Growl 1.3 beta Framework, and he's just waiting for the Framework to be released. Wow. Sweet deal! This really help, as all I have to do is watch the chats for the release of the Growl 1.3 Framework and then the Colloquy guys will drop a new version, and I'll have everything I need.

Great news. Can't wait for the new releases.

In an Insane Society, the Sane Man Must Appear Insane

Wednesday, October 19th, 2011

This morning I'm reminded of the quote from Star Trek series, the Mirror, Mirror episode where Kirk, Bones, Scotty, and Uhura are in a transporter accident and are sent to an alternate universe where the Federation is evil and plundering everything in their path:

In an insane society, the sane man must appear insane.

It was quoted in a movie as well, but the title of that movie escapes me this morning. Suffice it to say that I feel like that sane man in an insane society right now.

I was talking to a high-level manager at The Shop the other day, and they were facing a difficult decision: confront their own people with their lack of skills, or come up with a "story" to tell them that makes it not their fault, but the fault of others, and arrive at the same place. But it isn't really the same place, is it? In one case, the person has to come face-to-face with the fact that they aren't really doing the job they think they are doing. This is hard. It's emotional, and it might possibly even get ugly. But it's the truth.

In the other case, the person not doing their job is allowed to believe they are and able to blame someone else for the situation. That's not the same place at all, is it? Nope.

But it saves this manager the effort of having to confront these under-performing individuals. And for this manager, it seems, that's a win for them, and that seems to be the best thing to do. Sad, yes. For it's the manager's job to actually manage people. Not tell them stories. Not blame others. What is going to happen if some day the truth gets out? Not good, I can assure you. Not good at all.

And it's like this all over this place.

About six months ago, a co-worker was getting sick of the work, and I don't blame him. He started looking. I told my manager/partner about this several times over the next six months, and then yesterday he informed us all he was leaving. No surprise to me, but a huge surprise to those not listening to me. Significant loss to the firm, but they all acted shocked. I'd been telling them this was going to happen for months, and they have the nerve to act shocked.

Crazy.

Over and over this place seems to be making the most short-sighted, ill-informed decisions possible. It's almost like they want to pick the wrong decision. More often than not, they are successful in that goal, and their choice is a spectacular failure. But the real question that I keep coming back to is simple: What am I going to do about it?

I can sit here, complain/document/laugh at the insanity, I can leave and laugh all the way to my next position. I can stay and try to fix things - knowing full well that the odds of that are long - at best. What can I really do?

I'm not a partner here. I'm not even a senior manager. Heck, I'm not even a manager. I'm a coder. What can I really do? Really?

Well… I guess the only thing I can do, is either stay and do my job to the best of my ability in a completely insane environment, or I can leave. I've already asked - several times, to move our little group of two, off this floor - maybe even out of this building - just to get away from the insanity. But it's falling on deaf ears. I'm sure as much as they think I'm a pain in the neck, they feel far better with me "right here" as opposed to anyplace else.

And then I can leave.

Don't want to leave. Really don't want to, but I don't see a lot of options. I'm really having a hard time dealing with this insanity, and that's what it's really going to take to "fit in" here - become one of the inmates in this asylum. Not quite sure that's where I want to be. Would you?

Just don't know.

Trust Me, Talk to Me, or Fire Me

Monday, October 17th, 2011

I've been having a tough day for a Monday - not that all days aren't tough, but this one is really getting on me for a lot of reasons. It's probably all about childhood - isn't everything? But this morning I was really in no mood to listen to people essentially question my honesty. If I'm new at a job, and you don't trust me - and believe me, I can certainly understand that, then don't give me responsibilities that are outside your comfort zone. Make the trust and comfort of the task and the person match.

As I do more things for you, and prove myself over the course of many projects and many months, then you can either increase that trust - or decrease it as the case may be. But at no time should you as a manager feel like you have no control over the situation. You are the manager, after all. If you're uncomfortable, ask questions until you are comfortable enough to make decisions. If you never get to that place, then you have, by default, made a decision - that you can't trust me. Then I need to go. Period.

But if you talk to me and I am able to make you feel comfortable about the work, or the time or whatever it is that's bothering you, then we both come out ahead - you for asking the questions to get the understanding necessary to extend the trust, and me for taking the time to do the same. It's a win-win every single time. If I can't answer your questions, then your fears were founded, and if I can't make you feel better, then I need to be cut back - managed more closely, or even let go.

All this I'm very comfortable with, because I've been on the other side of the management table as well. It's not easy to walk the fine line of managing and allowing creative people room to invent and create. But it's all about trust. Nothing more, nothing less. If I trust you, then whatever it is that you do for me, good or bad, I'll trust that it's the very best you could have done, and no amount of second-guessing is needed. Things happen, and this is one of those times.

But if I don't trust you, then even if it's on-time, maybe you padded the times and had some of this done already. No trust means that I can't believe a good outcome even when it's a genuinely good outcome.

What's bothering me today is the fact that I feel I'm existing in an atmosphere of a near complete lack of trust. It's not something that someone will come up and talk to me about - it's about the setting of near crazy expectations of the work I have been assigned to do, and how those expectations have made it so that I simply can't be believed. If the project I'm on should have taken two man-years, there's no way I can say that now without people thinking it's just "excuses time" by me. I made the horribly niece assumption that people would know what it is they asked of me, and adjust accordingly. But they didn't.

My mistake.

I'm going to finish this project, and when it's all done and delivered, and everyone is happy, I'm going to talk to those in power and have a frank discussion about the promises made, promises broken, and these expectations. All will be taken into account in what we choose to do going forward.

Google Chrome dev 16.0.904.0 is Out

Tuesday, October 11th, 2011

This morning I saw that Google Chrome dev 16.0.904.0 was out, and there were not a boatload of happy folks about it. Seems there's a recurring theme of not working with twitter.com, and there's a good number of folks that are plenty miffed about it. They changed quite a few things, and it riled the masses. So it goes, hopefully, they'll have it figured out soon.

OK, PostgreSQL 9.1 is just COOL!

Monday, October 10th, 2011

PostgreSQL.jpg

OK, so I ran into what I thought was a bug in a user-defined PostgreSQL function regarding the holiday date for today. It's a Bank Holiday, but it's not a Market Holiday. I was able to prove this and fix it (temporarily) by changing the status of today's date:

  UPDATE calendar
  SET bank_holiday=TRUE
  WHERE calendar_date='2011-10-10';

and then the function I was counting on for telling me if today is a holiday started working.

So I knew the problem. But how to fix it? Well… it wasn't clear from the psql command-line how to do just that. I did a lot of googling to try and find out how to list functions, create functions, etc., and in the end, as luck would have it, PostgreSQL itself had the answer: \ef get_market_hours_for_date

The format is 'e' for edit, and 'f' for function, and then the name. If you just have the '\e', then it pops out into your EDITOR of choice for the last SQL command that was executed. If you give it the 'f' and a name, it'll pop you into your EDITOR and then let you edit the function.

Very nice!

These are the kinds of tools I'd expect from a commercial vendor, but I suppose, this is also what I'd want if I were working on PostgreSQL databases all day. I'm just really surprised and happy that these developers are thinking along the same lines. It's a great feeling to use such a fantastic database for my work - Mac and linux. It's nice to see the progress in time as well. It's really coming along.

iPhone 4S – Already a Success

Friday, October 7th, 2011

Already this morning we're seeing the success of the iPhone 4S. At 3:30 am CST I tried to order one, and the AT&T connection was CRUSHED by the volume. Apple's site was fine, but AT&T was dead. So Apple did the very Apple thing - gave me a reservation number and told me that they'd get back to me with an email to complete the transaction as soon as AT&T was back up. Classy. Always.

So now it's 9:13 am CST, and I'm seeing tweets like these:

iPhone4S Launch Tweets

which tells me two things: first, I ordered at the right time, and second: Steve was right. Grace, Beauty, Elegance, are all things people want. The talk of the App Store review process is gone… AntennaGate is gone… what's really left is one man's vision of what a phone should be.

I'm still reeling from the news, but this makes me feel like things are going to be OK.

Once Again, an Important Realization

Thursday, October 6th, 2011

This morning, as I was getting ready, I realized that I was really worrying far too much about what was happening at work. In a technology all-hands meeting yesterday, the CTO presented the status and plans for a bunch of projects that are happening in the group. In fact, I think he hit on everyone that's more than a couple of days long - it was pretty exhaustive. So when I heard there that several projects didn't include the work I was doing - even though I was told my work was critical to these efforts, I got upset. Really upset.

If I'm working 13 hour days for this project, and it's not critical, what am I killing myself for? What's the rush? Why work so hard? No, I was told that this work I was doing was fundamentally important to the effort, and what's why I've been working this way. In short, I've been a Good Team Player - internalizing the external needs of the Team even though they are painful for me.

But in the show this morning I realized that there's no reason for any of this worry and concern. I'm giving it everything I can, and if it's not enough, then they need to replace me. If they think I'm doing a decent job, then I think things are just fine. After all, this is the place where it's expected that everyone be extraordinary (got this in my last review).

So I realized in the shower that there's no reason to get upset. I've been angry at management for quite a while, and in the end, the fact that they haven't fired me, or moved me onto a different project, means that they must think I'm "meeting expectations", and by their own definition, delivering extraordinary results.

I know they don't think this, but I'm tired that once again it seems that I've forgotten the most important lesson of working in a group - do your best, and if that's not good enough, then it's time to move on.

I'm ready to make them make that call.

Steve Jobs 1955-2011

Thursday, October 6th, 2011

I spent a lot of this morning already thinking about the passing of Steve Jobs yesterday. I have to say, I've shed more than a few tears because of all the people I didn't know, he was the one that seemed to inspire me, and others, to do some amazing work. I secretly wished I'd be able to move to California, work at Apple, and run into him someday. But that's not to be, and I'm the one that's missing out.

There have been, and will continue to be, I'm sure, tons of thoughts and expressions about the man, and what he's meant for others and the industry as a whole. I can't provide any heartwarming or comical stories about his dedication to the company, it's products, it's people, but I spent all morning reading those by people who could. He was quite literally one in a lifetime.

My world is a little darker because he's left. I'm going to do my best to try and turn up my own light to compensate.