Micro-Managing and Stifling Creativity and Initiative

February 2nd, 2010

I've worked in a lot of different circumstances, and while I can function in just about any of them, there are some that certainly make it harder to excel and take personal initiative. Look at the military - it's not about personal initiative in the chain of command. It's about following orders, and while there may be room for personal interpretation in the execution of the orders, the fact that they are orders makes it pretty clear that the person following them is not expected to take responsibility for all of the consequences of the thought and planning that lead up to those orders - after all... he was given them.

Take another extreme, the entrepreneur. He's on his own. All decisions are his, all consequences are his. He's it. If there's a problem in the execution, or planning, or anything, he's all there is, and will live or die by those decisions.

When in corporate life, I've found that many times people want to believe they are in a military system ('...just follow my orders...') when what they might really need is a little more of the personal creativity and initiative that comes from some sense of ownership in the process.

No doubt - there are times that unpleasant things have to be done. They need to be done, and hopefully, the management will see that their role in this is just as much as those that might ultimately end up executing these unpleasant tasks. I've seen this handled very well, and I've seen it handled very poorly. I've seen the "boss" be there... after hours... walking around getting pizza and helping keep folks drinks filled and running to the printer for output. It's not a lot, but it shows that the manager believes he's part of this group and will be there pitching in however he can.

I've seen folks hand out the assignments and then walk away. Period.

One of the most frustrating situations I've been in lately was micro-management in a culture whose primary tenets include the entrepreneurial culture of self-empowerment. It was a classic case of the manager not "getting the memo" on how he needed to handle assignments and responsibilities in the larger scope of the organization.

It's hard to feel that it's going to be worth you going the extra mile, or coming up with a unique and interesting way to solve a problem when there's very little chance you'll get this done before management is over your shoulder asking you to explain this approach, and to compare it to this idea they had "last night". It's possible, that this manager is really good at the job, but most often times, that's not the case. It's possible that this employee is really playing off the reservation too much, but most often, that's not the case, either.

What I've found is that it's a misplaced sense of self-worth, or value to the company. A new manager will often think they need to be "hands-on" to help "their people" get the job done. But the opposite is often far closer to the ideal solution: back off... let the people come to him with questions, problems, clarify points... all those things that a only a manager can do. An employee typically doesn't need help doing their job, they need help getting their job done within the organization.

This is the "paper-pushing" that most managers hate. Well... guess what guys? That's what you're supposed to do! You're supposed to make each member of your team's like a little better. A little less full of paperwork and crud. That's your "value add" to the organization. They don't need you to type for them... or design for them. They need you to be their voice in the organization - their advocate.

And I guarantee that there's nothing that will crush creativity and initiative more than you, the manager, standing over their shoulder and asking them to explain every last detail of their work. If you wanted to know that badly, then grab a chair, check-out the code, and start coding yourself. But if that's not what you wanted to do, then realize that what you wanted is what you got. Accept it and live with it - or change, that's up to you.

I am not a manager now for exactly that reason. I enjoy the doing not the managing of the doers. I can do it, but it's just not as fun. So I choose not to. My choice. My consequences.

Just wish more managers understood this as well.

Interesting Differences of Opinion on Flash

February 2nd, 2010

FlashPlayer.png

Like a lot of the Mac Faithful, I've been watching the discussions about Flash on the iPhone, and now the iPad, with interest and a little bit of a foot in both camps. There's a strictly technical viewpoint to think about, and then there's the reality when multi-billion dollar companies get involved.

From a technical standpoint, Wil Shipley said it best in this series of tweets:

Honestly, I don't understand Flash-haters. It's a content type. It's prevalent. The iPhone and iPad should understand it.

Want to know what we did at Omni when there wasn't a flash player for Rhapsody? WE WROTE OUR OWN FLASH PLAYER. It's not that hard.

Apple: Get off your ass and write a minimal Flash player. Everyone else: Stop acting like not being able to see video is cool.

And yet, the counter argument is valid as well: that anything controlled by one company (Adobe) can't be a real "standard" for the web as it's possible that it could be modified/licensed/changed by the company for their own commercial goals, and that's not something that should be supported and encouraged.

Wil is right - Apple could solve all this by putting in a Flash player into QuickTime. But then is that really in Apple's best (commercial) interests? Probably not. Then when Adobe changes, Apple has to change to keep "compatible". That is putting Apple in a constant game of catch-up. Not a great place to be. And then there's the legal angle. Say they did this, and then Adobe came after them. It's Adobe's property, after all, and while there's an open source Flex compiler, there's a lot that's missing from that project as well.

It's a battle of Titans, and we're pawns in this game. They are far more interested in control than they are in the customers. If Apple really wanted to make folks happy they'd work with Adobe to make Flash supported in QuickTime. Easy. But that means someone has to "flinch" first. Apple? Not likely. Adobe? Can't see that, either. But it would be pretty easy to clear this up.

On the other hand, it wouldn't bother me a bit of Flash became a niche player. Sure, there will be folks that will use it, but again, if it's below 80%, then it's just another plugin system. There will have to be others supported by the developers. Like YouTube's HTML5 video. Things like this will move in to create open alternatives to Flash.

So it wouldn't be horrible if the stand-off continued and HTML5, and it's successors, made Flash something less than a defacto standard. But then again, it's just a content type, after all... just support it, Apple... Or Perian... Someone.

VLC 1.0.5 is Out – Still no 64-bit Version Available

February 2nd, 2010

Well... VLC 1.0.5 is out and because of a lack of Mac developers, there's no 64-bit version of it available. This means that HandBrake - which now sees itself as a media converter and not a DVD ripper, running in 64-bit mode can't load the libdvdcss.2.dylib that's in VLC, to decode the DVD. Sure, there's FairMount - again in 32-bit mode, but that's just the same problem. It looks to /Applications/VLC.app/ for the file, and if it can't load it, then it, too, bails.

So it seems that no matter what I do, the version and build of VLC is the key. If it's 64-bits, then it's OK for HandBrake and FairMount. If it's not, I can still use FairMount 32-bit to unlock the DVD, and the 64-bit version of HandBrake to convert it, but we're still dependent on the build of VLC. And as long as it's 32-bit, there's really no reason to use the 64-bit HandBrake. I don't rip that many DVDs, and when I do, I just want something that runs.

It's disappointing that they create HandBrake the way they do... removing the critical file, but that's life. It's their choice. For now, I'm running HandBrake 32-bit with VLC 32-bit because that's all they have. And it works.

Maybe someday there will be a 64-bit VLC, and then I can move to 64-bit HandBrake.

MacSpice 2.10.23 is Out

February 2nd, 2010

Still a EE geek at heart, it does my heart good to see that MacSpice 2.10.23 is out, and still kicking. It's not going to win any Apple Design Awards for the UI, but the graphs work, and are clear, clean, and legible. The numbers are SPICE and spot-on. It's hard to complain about the app. It's something that could use a nice face-lift, but it's still great to see that they're working on the engine, and making it better. Fantastic!

iTunes 9.0.3 is Out on Software Update

February 2nd, 2010

This morning I noticed that iTunes 9.0.3 was released to Software Updates, and this time it wasn't about a new device - it was about fixes to features. Imagine that! The changes aren't dramatic, but really annoying - like not respecting the "save password" for purchases, these are things that people complain about day after day.

I haven't really hit any of the listed issues, but I'm glad to see that they aren't treating iTunes like nothing more than a delivery vehicle for their content. Make it better, guys... we'll all love you for it.

Wonderful Inspiration for a Nasty Problem

January 29th, 2010

I have been working today to try and solve a problem that a new datasource to the main web app I've been working on since I arrived at the Shop. All the other data sources I've had to use sent me a complete, consistent, state in one packet. This meant that I was able to put the data into multiple database tables with foreign keys and have the 'acquired time' be a link from one table to another. This made it easy to see what arrived when. But the latest data source is more like an event-driven system, and it's not being so considerate.

This new guy sends packets of information at each level - and they are totally dissociated from one another. It's like they are destined for cells in a spreadsheet, where the user is supposed to know that the goal is the most recent data, even if it's not directly comparable and consistent.

For instance, there are about a dozen groups, and each group has from less than a dozen to upwards of 75 symbols in it. Each of these pieces of information is arriving at different times, and there's no guaranteed consistency between them. This includes the elements of the group and the group totals. It's meant to be "the best I know, with the least bandwidth". I can see the reason for the design, but it's very, very different from what we have for the remainder of the data sources. And this is causing me grief.

No longer can I look at the arrival time of the group totals, and know that this represents the arrival time of all the elements in the group. Nope... they have their own arrival times. So in order to get the complete state of this data source, the SQL to fetch it out has become far more complex, and time-consuming. It was really getting to be annoying.

And then a co-worker said something that made it all click. "Just buffer it up".

Wonderfully simple. I don't know why I didn't think of it before. Well... probably because I was thinking of processing the data as it arrived, and we can't do that. What we can do is to take the data as it arrives, buffer it saving the arrival time as the 'generation time', and then when the group totals packet arrives, use that as the 'acquired time', and save it as well as all it's components to the database.

This makes it possible to see the individual arrival times (generation time), as well as link the data all together with the 'acquired time'. It made the "shotgun" data source fit into the existing mold that I'd created for the other data sources. Sure it was simple, but it was something that hadn't occurred to be, and I was better for having listened to him and understood how to synchronize things up.

In the end, I took about an hour to fix things up and it is working wonderfully. Very neat.

Slugging it Out in the Trenches…

January 28th, 2010

For the last two days I've been busy just slugging it out in the trenches. Nothing fun, nothing exciting, just lots of drudge work that needed to be done, and I'm faster at doing it than anyone else, so I might as well just shut up, suck it up, get my head down and push through it.

Nothing exciting and glamorous about the last two days. Nothing.

Lots and Lots of Little UI Changes

January 26th, 2010

WebDevel.jpg

For the last two days I've been hip-deep in a ton of little UI changes and additions to my web app. I can understand the reasons for the changes - it's the fist time they have actually sat down and thought about it for more than 2 seconds. When they did, and started to think about what they really wanted, they had some changes. Unfortunately, it was a lot harder to do this all a week (or more) after the initial creation of the page(s), but I suppose better late than never, eh?

There were things like re-arranging the columns in a table, and because of the nature of the Google Visualization Table, you can't re-arrange the columns in the view - they're fixed. So until they add this feature, I'm stuck putting the data in the right order before it gets to the client. Not horrible, but when it hits several pages, it's just a little time-consuming.

I also had requests for a few new fields. Nothing major, but putting it on four different pages meant a lot of little updates and making sure to try and pull together as much code as possible so that it's not copy-n-paste reuse. It's the easiest way to add the same thing in several places, but it would lead to a mess later on. I'll probably do a bit of work tomorrow to try and coalesce this even more. It's getting to be big.

In the end, I got the changes made and emails sent to clients so they knew the fields were there. Good enough.

Getting Apple Aluminum Keyboard Working with Linux

January 25th, 2010

Over the weekend, I stopped by the Apple Store in Naperville to pick up two of their small aluminum keyboards to use with two machines at work that used to share a keyboard/mouse with a switch-box, but last week were "split" so that I needed two keyboards in a pretty small desk.

Apple Keyboard - Apple Store (U.S.)

For this desk, I need to get rid of the numeric keyboards to save the space. Just have to.

So the question is "How do I make it work with linux?"

Thankfully, xmodmap is going to do everything we need, and all I need to do is to get the keycodes from the keyboard and put them into the .Xmodmap file that I've already got to swap CapsLock and Ctrl.

Open up a terminal and type:

  $ xev

What you'll see is a new window with every X event getting printed to the standard out. Lots of information there, but in addition, you'll see every key press and release - and therein you can find the keycodes.

What I found was the following:

Key Keycode
L-Apple 115
L-Option 64
L-Ctrl 37
R-Apple 116
R-Option 113

From this I was able to create the .Xmodmap that made the "Apple" keys act as "Alt" keys (their default appears to be to act as "Windows" keys) so it's easier to do what I need:

  !
  ! Swap Caps_Lock and Control_L
  !
  remove Lock = Caps_Lock
  remove Control = Control_L
  keysym Control_L = Caps_Lock
  keysym Caps_Lock = Control_L
  add Lock = Caps_Lock
  add Control = Control_L

  !
  ! Make the Apple keys Alt keys
  !
  keycode 115 = Alt_L Meta_L
  keycode 116 = Alt_R Meta_R
  add mod1 = Alt_L Meta_L Alt_R Meta_R

I may try to map some of the function keys to PgUp and PgDn keys, as those would be nice, but for now, it's enough this morning to get the Alt keys working on the new keyboards as that's how I switch between workspaces - which is essential.

I really like the additional desk space... that's a real plus. Just a little more fiddling with the location of things, and I should be settled in with the new hardware.

Unison 2.0.3 is Out

January 25th, 2010

This morning I noticed that the Panic guys released Unison 2.0.3 with a short but important list of changes for this release.

I've had a chance to really put it through it's (reading) paces, and I have to agree with myself (a beta tester) that it's a really nice improvement over 1.x, but there's a few little cosmetic changes I'd make, and have mentioned to them in emails or bug reports. No show-stoppers, but still things I'd like to see changed.