Posts

Showing posts from 2009

Ira Glass on Storytelling

Ira Glass (of "This American Life" fame) has a 4 part VLOG on storytelling . I really enjoy listening to Ira when I have the opportunity and he has had some compelling stories. My personal revelation is that I should look more to people I respect and study them. As someone who never formally studied creative writing or storytelling, it was interesting that the mechanics of building a story outlined by Ira were more natural and easy to follow than the myriad of rules found in various English composition books I've read. I believe this the difference between trying to define a simple set of rules on how to master the mechanics of doing something as opposed to learning to bend your mend into the shape of a master of the art. A further revelation is that I realize that I am very often reading books about subjects written by people who aren't necessarily skillful or even successful at that particular subject. As an example, when reading about some very successful writ

The elves leave middle earth

I just stumbled across a great article about the difficult transition from a startup into a more sustainable business. The elves leave middle earth I'm currently working in a place that is going through this change in the IT organization. Right now, we have a mixed team of heros and good performers. A key problem I'm having is that one of the managers is having a tremendously difficult time even fathoming the difference between these two modes. As a former hero coder, he spends his time fiddling around with code and inventing new "cool" requirements and almost zero time even thinking about how to keep the team performing. This has the predictable side effect of the team faltering and thrashing while this person sits around and bemoans how slow and confused the team is. Where I'm going is that if you're going to decide to change modes, you need to make sure you have a management team that is able to function in that mode. If it's necessary to move folk

ATI drivers on Karmic Koala

I set out to upgrade my older laptop to ubuntu 9.10 and I knew was going to have problems. Historically, the video card in this thing was a royal pain in the butt and just never seemed to work quite right. I loaded the OS, logged in, and was rewarded with a jumpy/twitchy user experience. I started researching and found a thread about some tweaks a few folks made to make things better. It turns out this didn't work for me, but a minor tweak to the tweak fixed me up. Notably, I downloaded the radeonhd driver from synaptic, changed the xorg.conf (created above) to use radeonhd instead of radeon, then removed the bit that seems to have been autodetected by X11 for thier hardware. This seems to have fixed my problem (for now). In addition, I can run the compiz visual effects (yeah expo). Here is my config: Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer&q

Bad code gone wild

I've been writing software for quite some time ( first computer ) and have seen a lot of strange stuff.One thing I realized is that there are fundamentally two types of bad programmers. #1 bad programmers that gets better. #2 bad programmer that don't. I can tell you I'm a #1: I routinely do things that are not optimal and "could have been done a better way", but don't beat myself up about. It is what it is and as long as the code "gets the job done", I'm OK with that. In addition, I'm OK with developers writing occasionally bad (wrong/suboptimal) stuff because I believe most folks can learn and get better. To this end, I found this amusing Bad Code Offsets But occasionally I run across a #2: There are people who do things in broken and difficult manners and no amount of exposure to "better ways of doing things" will yield fruit. These folks, once they find "a way", it becomes magically "the only way" and

Ubuntu Cafe

I just read some news about If microsoft, Linux, and OSX were cafe's I'm wondering... would people pay a few bucks to hang out with some linux (Ubuntu?) folks to help them fix their windows boxes so they run well? I know a lot of people who don't care which OS their running as long as things "work" and don't break. The latest few ubuntu releases sure seem like good candidates, I wonder if you just charged a cover charge to "non technical folks" and used that money to pay the rent as well as diet coke for the "technical folks" if you could make a business out of this. They techno weenies can run around being the gurus and helping folks out and the other folks can get super customized machines. Could even maybe even set up virtual windows machines on them so quicken and other non-wine software works. Interesting idea, not sure I have the business chops to make it happen. I know we've been running linux here for almost 2 years and the

Crazy autogenerated email signatures

I was just rereading a few posts from many moons ago (yeah, like 6 years) and realized that my employer at the time was postpending a crazy addendum to every one of my email messages. I really wonder how many people read this thing and exactly how legally applicable it is since the messages are now archived all over the dang internet. As an example from 2003: http://www.servlets.com/archive/servlet/ReadMsg?msgId=411933&listName=taglibs-user Perhaps this thread from a few months before that caused the company to start applying the extra stuff to the message: http://mail-archives.apache.org/mod_mbox/struts-user/200312.mbox/%3CC29830220D2FA74BA88CB5C62C946B32C0AF03@uskihsvpex05.kih.kmart.com%3E !Doh!

Sometimes you need to break the rules

In honor of veteran's day I thought I post a "war story" to illustrate point. As a buck sergeant in the US Army many moons ago (1995), I was deployed to Hungary in support of IFOR to enforce the military portion of the Dayton agreement. At some point, I was forward deployed with a team mate to go to all of the personnel service detachments and set up their digital communication links back to germany (and subsequently the US). While standing around on the tarmac in preparation to get on a plane heading to Tuzla, a few of the other soldiers grabbed their ammo and packed it into the middle of their 'A' bag. I thought nothing of it, but the guy I was with walked over and asked what they where doing. It turns out the Air Force did not want us flying with ammo and they wanted us to give their ammo to them. These other soldiers (old school combat arms guys) where NOT about to give their ammo to some tech sergeant who may or may not remember to give it back, so they

dd-wrt on a linksys router.

I have a couple of old linksys wrt54g routers lying around. They stopped working 100% over the years and I just bought another one instead of trying to fix the one I had. Surfing the internet I stumbled across a linux firmware image for them that allowed you to reconfigure them to do some wicked cool stuff http://www.dd-wrt.com/site/index . Since I just donated an old laptop (without a wireless adapter) to my son and I've been wanting a way to get my old ps2 hooked up the the wireless router, this looked like just the trick. I downloaded the firmware images, flashed the router, and suddenly I had a little linux router I could configure and tweak to my heart's content. I could do really cool stuff like connect wirelessly from my router to another wireless router and bridge the networks together. This means my ps2 upstairs can now connect to my old linksys and it will forward all the traffic to my new wireless access point downstairs (sweet!). It also allowed me to bump up

Building a custom debian package

We run debian (or ubuntu) as our platform of choice, and largely this is great. If we want software we just apt-get install the package and we're ready to go. The downside is, however, that occasionally a package won't exist (or only an older one will exist). In my case I wanted tomcat 6 on lenny. Previously what we would do is each server install would require a set of instructions to follow (untar foo into bar, symlink this or that, etc). This led to a situation where we had 4 different ways our various server where set up. In order to make this "better", I wanted to build a .deb to make the install/removal/upgrade process easier. I could have done the "right" thing and build the proper package from the source, but it turns out it is relatively simple to build your own .deb binary, so I did this instead. I used these instructions http://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/ After about 4 hours (there were some false starts)

opennms install on ubuntu

We currently user nagios for network monitoring, but it has a buttload of crazy config files to even remotely work correctly. As an alternative I decided to give opennms a try to see if there wan easier way to keep track of thing. Note, my home network is probably more complicated that many small businesses as I've got around 10-12 computers/printers/wireless bridges/media servers/etc running at any given time and I have android, linux, windows, Mac all connected at various times. The reasons for trying opennms where: #1 free (as in both speech and beer) #2 it purportedly supports autodiscovery (please work!) #3 it's java based (no shell scripts??) So I installed via synaptic, and promptly dicovered that it requires postgres out of the box. I additionally had a couple of "gotchas", which I'll document here. Off the bat, I tried to start via sudo /etc/init.d/opnenms start and it immediately complained and said I needed to do some extra setup steps. Let

Requirements are not necessarily required

In the grand tradition of being difficult, I'm rediscovering an antipattern that has killed projects in the past. I'll call it "too specific requirements". The symptoms are stacks and reams of requirements that you MUST implement, even if there are better ways to solve the apparent problem. Case in point: We have a rock solid requirement to build a user preference management screen. Unfortunately, most of the preferences we need to collect are (IMHO) better collected and maintained in situ. As an example, one requirement is to "enable the user to select their default payment method". Of the hundreds of possible solutions, the requirement implies that we should have a special screen where users can find this option, select it, then never see it again when checking out their items. This sounds great on paper, but I'm struck by the notion that a user would EVER know or think to go to some other screen (preferences? My Profile? not sure what to call

Think like a genius

Questia has an interesting article about "how to think like a genius" http://www.questianewsletter.com/newsletter/volume-5-issue-5/index.htm?CRID=nullCRnull&OFFID=newsletter20091004l#bigidea . I'd have to say this is spot-on and a good Adding my own thoughts to the above, I've noticed that I rarely do new or innovative things by "trying", I'm more innovative when exploring interesting side effects. I would go further to say that lucky people are simply the ones who can creatively extract value from more situations than other people. I often hear people sharing their misfortunes with me and quite often they have a negative spin on things that happened to me that I thought where golden opportunities, but they simply saw as obstacles. Which reminds me of a story... A gentleman farmer at the turn of the century was being overrun by rabbits and went into town looking for an expert marksman to get rid of the pests. On his way, he passed a farm with doz

The hazards of microbenchmarks

I recently had lunch with my team and had the dubious fortune of sitting across the table from Mr Knowitall. As we recently installed SONAR, he mentioned his surprise at our "critical performance" issues, namely that we're using a + b to concatenate strings instead of StringBuilder in a few dozen places. I dismissed this as "not really a critical problem", which spawned a heated discussion about the merits of using StringBuilder over normal string concatenation in Java. He ended up issuing a direct challenge that Stringbuilder is 25% faster than string concatenation. He also stated that I could build a test harness and see for myself and bet that if he was right I would buy lunch... Aside from kicking myself for getting into a ridiculously pointless argument that I've had am million times before (he also tried to drag me into the "you better check .isdebugenabled() before calling .debug() in log4j because otherwise you're taking a performance hit, b

Hill climbing problem with your career

Chris Dixon's has an interesting post on hill climbing as it relates to career development. In short, his basic premise is to imagine your career is a 3d surface and your goal is to get as high on this surface as possible. He then outlines a couple of algorithms to do this. In explaining some trivial solutions I was struck by a common problem in people who work for a living. We are creatures of habit and we love the known. In addition, the known pulls at us due to it's immediacy, after all, it's right HERE, right NOW, I'm 100% certain of what it is. If I where to start venturing out into the unknown, I better have a reasonally high expectation of something positive happening. If I'm going into the unknown AND I'm fairly sure I'm going to have a negative outcome, it takes an inhuman (maybe vulcan) amount of logical reasoning to act counter to that intuition. Put another way, I believe the reality of life is that this 3d surface metaphor is further com

The Curse of Knowledge

I'm currently listening to an intro to psycology course lecture series and during a lecture on intelligence, the speaker mentioned "the curse of knowledge" (it's lecture 12 in this series ocw Brain and Cognitive Sciences . This is the problem caused by a difficulty in seeing the perspective of someone who DOESN'T know it. This means that when I'm describing something to you, I inherently assume you know what I know. I have to consciously stop and think to try and figure out what you may or may not know and develop an idea about how to present what I know in a manner that you will be able to understand. It turns out that this is often difficult, especially if you have a LOT of knowledge about a specific subject. That is not to say it's impossible to see things from the ignorant party's perspective, but it requires a conscious effort to change perspective. I see this all the time and it is particularly evident where I'm working right now. We hav

Elusive software requirements

Those who have been following know that I moved to a new position about a month ago. I took over as a development lead for a project that was "just about ready" to go live. In speaking with the guys in charge, there was some concern because it seemed like some apparently simple changes where causing HUGE pushback from the development team. In addition, the application actually didn't even work by ANY measure... oh yeah, everybody could get a little tiny piece of it to work on their machine, but there's a whole other story about how we couldn't even actually build the project without having first built the project.... So I've spent an enormous amount of time (weeks) navigating the murky waters of "requirements" looking for the iceberg that caused this hole in our development boat. At first, I was told thing like "well, the requirements keep changing", and "well, things are kinda fluid, we just gotta be flexible". In addition,

Upgrading Linux ATI drivers on ubuntu

OK, normally I don't do tech stuff in my blog, but this has been a long standing frustration that, now that it's fixed, I feel the need to share. Background: A year or so ago I bought a fairly inexpensive laptop from Tiger direct. It was a toshiba satellite A215-S740 and only cost around $600. This is a fairly decent machine and I intended to use it for work. It came preinstalled with Vista, but I typically run Linux (ubuntu to be exact). I thought I'd run vista for a while and see how I liked it, tired after two days of the constant interrogation. I felt like Vista was an overly agressive Gestapo agent... so I installed Ubuntu (ahhh, much better). My first problem, however was that the built in ATI driver did not support 3d. At the time I was playing with building 3d visualizations of our systems and I REALLY needed 3d (because software 3d was way too slow). I found the ati proprietary drivers, installed them, and everything seemed OK acceptable, but not quite Grea

Transition from two guys in a garage to multinational company

There is an interesting difference between how folks do things when its "two guys in a garage" and "a really big multinational company". The first thing I would say is that you can run a company of either size the same way. The second thing I would say is that you CANNOT run a company of either size the same way EFFECTIVELY. If you are a working in a web based software startup with 16 people and you have 2 developers, 4 project managers, 6 vice presidents, a CIO, CTO, CFO, and CEO... you are destined for failure (if you don't know why, I bet your title had the word "Chief" in it). On the other hand, you have an established company with 1600 employees, 24 well known brands, a B2B application that does a billion dollars a year in sales, you might need a couple of managers who try to keep things organized. You really don't need 40 developers all "doing their own thing" with little rhyme nor reason. I've been on both ends of this ove

Cakes, Onions, and Ogres have layers, are you sure your code needs them?

Anybody write java code out there? Anybody have a data access layer? How about a business layer? How about a service layer? Why? I've heard all manner of crazy answers like: It makes my code more flexible. I can dynamically swap out components for one layer or another. I need to keep things isolated so that a problem in one layer don't impact the other. Convince me, because I'm just not sold at this point. I went through a number of projects with this fad back in the 2001-2005 timeframe and none of the theoretical benefits never seemed to emerge...

Project insanity

I've been rereading my journal (not blog) and realized that every year, for the last 3 years, I've been engaged in a crazy "meet the date at all costs" project that ultimately ended up being canceled around the March to July timeframe. This year was no exception and I raised red flags, drew charts, rang warning bells, blew whistles, rang gongs, frankly I think I did everything but set myself of fire and for some reason... we continued to mindlessly tool along using an outright crazy set of expensive tools to "deliver" a project that was totally behind schedule, didn't do what we wanted, and frankly was one of the most ridiculously avoidable failures I've had the misfortune to be involved with. Mind you I'm sure it ended up "working" and probably wouldn't be canceled this year because it had good buy-in from senior management, it's just we did it the hard and expensive way and relied on heroics of individual people instead of

I met me today

The strangest thing happened today... I met myself at lunch. Or rather, I met someone who sounded a lot like me. You see, I just started a new job and I went out to lunch with few of my new team members. Part of the lunch digressed into a bit of a bitch session about stupid crap at work. It was kinda nice to have folks be so upfront and just vent instead of dodging around the issue and playing little word games to try and see if I would finally understand what they really meant. Someone just said "I think so and so is a dumbass" and that was that. No "well, you know (make up little story that is hopefully a metaphor I would understand) and then proceed to allude to this fact over the next 30 minutes, it was just flat out and out "so and so is a dumbass". I like it... I'm not saying that this person was right or wrong, it's my first day, how could I know? But what I like is that I don't need to guess what that person thinks. While I supposed t

What is development time?

I'm responding to a recent email chain where I made the statement "this will only take 8 hours of development time" and stopped. It occurred to me that we had already spent 20+ man hours of meetings to decide if we should do this particular thing, how we should do it, and who should do it. If we had simply said "do it" we would have saved 18 hours labor... or even better, could have developed 3 alternative solutions and spent a couple hours deciding which one was best. It's interesting though because in the chain of meetings, emails, and other administrative things, when I sat down and looked, there where only two people who actually had "work" to do. I define "work" is defined as the act of transforming an idea into a useful piece of software. Everyone else was simply there to "help" get the work done. When I start looking back at my problems estimating... it isn't really that developers and technical people are bad at

Broken Design

I've noticed an interested effect on corporate portals or extranets. They are often set up so that external access is allowed, but only certain applications/links actually work. This leads to a situation where you either #1 always VPN in (often redundant and useless) or #2 randomly have links break that will not work for you until you VPN in. A better solution might be to make the links visually different if they only work internally and perhaps even put a little broken symbol next to it. This would be best if it only showed up when you are navigating to the site from outside.

Difference between strategy and tactics

What is the difference between a strategy and a tactic? As far as I can tell, the commonly accepted difference is scope. A strategy is typically cross functional and wide and a tactic is smaller and narrower with higher detail. Anyone else have better ideas?

Leadership styles

As a person who ends up being a de-facto leader on any team I'm on, I often am stuck trying to subtly nudge the "real" leaders into thinking about the act of leadership. I have the advantage in this regard in that I've participated in hundreds of hours of leadership training over the years and have had a lot of experience working with teams to get things going. A quick primer that I think is very instructive can be found here . So if you're a leader and your team is doing CRAZY things and they aren't happy and you aren't happy and you aren't getting the results for the organization that you require.... My first statement is "yes it's YOUR fault" My second statement is read this again My third statement is: adjust your leadership style to fit the situation. Do NOT treat 30 year old software developers like children, because they will begin to act like them. This should be no surprise. In addition, make sure you attend any leadership

Sharpening the saw

I follow coding horror and recent read an interesting piece titled " sharpening the saw ". This resonated with me and I felt compelled to expound on the concept a little. In brief, sharpening the saw refers to the notion that working harder with a dull saw is not as effective as sharpening the saw, then cutting the wood. Obviously this is a generalization, but it alludes to a problem I see all the time and I honestly like the metaphor. Leaders in software development organizations need to build an understanding about the importance of keeping their developers on the cutting edge. A developer using vi or notepad to write software is wasting quite a few brain cells on things that a modern IDE can do. In addition, a developer who only uses COBOL and has done so for 20 years is having their brain turned into a solid rock that will eventually be unable to produce anything helpful (note to COBOL programmers, this applies to java, fortran, ANY development language/tool) I know,

The ulitmate software development tool

I find it amazing that I work for a company that sells thousands of different hand tools, but we still seem to thing there is "one ultimate software development tool" and waste time trying to force professional developers to use a single tool to develop software. Why is this? What is it about developing software that makes people think you really only need one tool to do it? Why is it obvious to everyone EXCEPT the software developers that Rational Application Developer is the "ultimate tool" for the job and is all anyone would ever need? I'm to the point where I want to suggest a solution used by many auto repair shops.... Give all the developers an annual stipend to purchase the tools they think they want to use and be done with trying to figure out and enforce the "standard" tool.

The journey is the destination

The other day someone was asking me a bunch of questions and they where getting exasperated because they didn't know ANYTHING about what I was talking about. They asked something like: What's JSON? HTTP? Grails? Bytecode? JVM? How do I know how to find out what I need to know? How do YOU know all this stuff? Did you document any of this? What class should I take? I responded with a link to http://google.com and http://www.wikipedia.org (which, BTW was not well received). The fact of the matter is, I know a lot of people who think they really want to know things, but they have poor learning skills. They are of the mindset that they can learn something and then be done learning it. In today's world more than ever this is really just not practical. For example, if you knew everything there was to know about web development two years ago and stopped there, by most measures you are pretty out of date (I'd say you were a dinosaur, but I'm an extremest). The rate

Lazy Man's web hosting

I recently took over as the "IT Guy" for a local organization I volunteer for. As a guy who spends a lot of time working on web development, I seemed to be a good fit for the job. The website was basically a bunch of static files with a little bit of javascripty rollovers thrown in for good measure. My mandate was to try and bring the site into the 21st century with things like: blogging, email notification, user forums, group calendar, and other features that would make things more interactive. At first I figured I'd just write some stuff myself, but then I started looking around. Twitter (microblog + sms notification), Google (calendar, online word processing), and Facebook (just about everything else) provide a bunch of these things for free. When put together, these give a lot of functionality for little more than the time to set up a few accounts and link the various pages together. Now the site is MUCH more interactive, and we actually have no real "code&q

Cultural regression

I work on a development team that for the last year or so was making a lot of progress toward being effective at #1 delivering useful software, but #2 responding to stimulus with the appropriate level of response. At this point, however, we've fully regressed to our previous state of overreacting to very small stimuli. A small configuration change to a server and we act as if we've discovered the Russians (no offense to anyone from there) have launched their entire nuclear arsenal at our office building. Any small hiccup results in finger pointing, conference calls, and multiple teams running off to the excuse factory to build something to explain why something went wrong. Heaven help the poor sap who tries to actually fix or avoid the problem, he will be beaten down with a litany of things that SOUND really bad and scary, but in fact have little or no real impact. I believe this is happening because folks are fearful of their jobs and want to give the impression that they a

Agile Enterprise Architecture

I've been reading with great interest many things about enterprise architecture. It seems that in our organisation, traditionally at least, there is little thought about the structure of the business as it relates to information management. While it appears there has been great thought in restructuring the organisation around strategic objectives, we seem to always forget that the information needed to obtain these objectives is critically important and the technology teams to manage that information should be structured and aligned in the same or similar way. This is really interesting to me because it seems to reflect a profound ignorance of the value that a technology organisation can provide. http://www.agilearchitect.org/agile/index.asp http://www.agilearchitect.org/agile/principles.htm

Top Down Management

Simply doing what the boss says even though you know it's stupid is irresponsible. I know many people who do a lot of stupid stuff at work and am constantly amazed at how often completely competent and intelligent people will do insane things just because the boss said so. It probably shouldn't surprise me, after all, history is replete with examples where a charismatic leader inspired millions of people to do really, REALLY bad things. It just stuns me that, in a corporate environment, people will wander off and do really stupid things without even letting the boss know it's stupid. I think this is, in part, a problem in technology organizations because it is not necessarily a meritocracy, but the the people "in the trenches" like to think that it is. After all, how inspired are you going to be if, after 23 years on the job, you're at the top technical position in the company, and the are still 5 layers of managers between you and the top. It's as if

Right to privacy

First off, I am not a lawyer (IANAL) so this is not legal advice and hell, it might even be wrong. I recently got involved (read opened my big mouth) in a discussion about RFID in the context of providing extra security for individual financial transactions. A point was made that the security of this scheme is suspect because, after all, they make wallets that block RFID scanners. My response was that I wasn't sure this was a real threat to security or privacy, or a perceived one. I was attempting to illustrate these "RFID proof" wallets could likely be a gimmick by some huckster playing up the fears of the populace. The response I got quoted the fourth amendment and I promptly got a little confused. I'm always a little uneasy when people mistakenly think the constitution grants them some explicit right to privacy. From my limited perspective, the point of the constitution is to limit the powers of government over the people, not to dictate what an individual ca

The Human Factor

Jeff Atwood in Coding Horror mentions in his blog that: The key word here is "fun". When you interact with other people online .. * sending an email to a mailing list * posting on a discussion forum * chatting on IRC * revising a Wiki entry * entering a blog comment .. like it or not, you're participating in the world's largest MMORPG. Lurking is always free. Those that choose to go beyond lurking, to add some tiny bit of content to the web, do it because they find it enjoyable. On some level, they're having fun Enjoyability of a user experience, even for a back office application is important. More than that, most people do what they do because at some level they enjoy it. If you structure your applications internally so that "doing the best thing for the business" increases the level of enjoyment at work, you're on the road to success. Obviously, this can be taken to an extreme, but let's take a recent example. We recent

Some Folks are Unreachable

We have a perennial debate at work (going on 3 years now) about the "proper" and official Source Code Control tool in our company. Originally it was a crappy tool called CCC Harvest (yeah, sue me, it sucks I can't say it any other way), we then had a brief renaissance and used CVS (not great, but a big productivity boost!), then moved to Clearcase (shoot me now, it has a lot of potential and it theoretically GREAT, but in practice sucks almost as bad as Harvest), then began the migration to SVN (whopee, next step Hg!). Unfortunately, every step of the way has been met with irreconcilable folks in the change management area who seem to think that developers are simply a whiny bunch of prima donnas who are trying to rob the company blind. I say this because I keep hearing about the "superman" exploit as a reason we should use Clearcase. In case you don't know, the superman exploit is where a clever developer sneaks code in to steal money by taking money tha

ALERT! EMERGENCY FIX REQUIRED!!!

I'm taking a vacation day today. I woke up at 5:00 to take my daughter to school (trip to six flags), then went downstairs to put some finishing touches on some html I was fiddling around with to help with some new screens. While doing this a developer on my team started IM'ing me in a panic about a production problem that they where going to do an emergency deploy to fix. I attempted to calmly ask her to please explain the exact situation to me, but it came out more like "ARE YOU F'ING JOKING!? TELL ME YOU AREN'T SERIOUS!, WHAT THE HELL?". Whoops, no more coffee for me, my bad. So then I opened my email inbox and discovered no less than a dozen emails about about how the day before there was some sort of error that cropped up based on a specific data condition and stopped an extract process dead in it's tracks. For some reason, this software has run without exception for 2 months and suddenly yesterday at 5:00pm this data condition started to happen. W

Meetings gone bad

Below is a mostly fictional schedule that mimics a pattern I see in my office (names and places are fictional, just illustrating a pattern). 8:00am-9:15am Daily Status meeting (room B342) - In attendance: Susan, Bob, Bill, Steven, Mike. Review where we are in the project... Bill is going to fix bug 123 Steven is going to set up server, Mike needs to review the Spec doc and make recommendations, Susan needs to catch up on emails. 9:00am-10:00am Project Planning meeting (room B231) - In attendance: Susan, Bob, Bill, Steven, Mike (all late), and Jim. Plan the work for this week... Bill is going to fix bug 123 Steven is going to set up server, Mike needs to review the Spec doc and make recommendations, Susan needs to catch up on emails. Jim needs Mike to get with him and explain how to use the new Foobernator component. Mike agrees to do it in the afternoon. 10:00am-11:00am Requirements Review Meeting (room B243) - In attendance: Susan, Bob, Bill, Steven, Jim. Review the requireme

Commander's intent

This is an enabling concept and should be a key component of effective military (or business) doctrine. If every commander in the military had to ask the boss what they where supposed to do when they encountered an unspecified problem, how effective would they be? Imagine the Tank Commander on halting his tank and radioing to the platoon leader "hey LT, there's a building in my way, what should I do?" and then the platoon leader radioing to the company commander... all the way up to the president. Wouldn't be a very effective fighting force would it? The idea of "Commander's intent" is that it relies on subordinates having an understanding of what the overall mission is and how they fit into it. It specifically frees subordinates to act in accordance with their understanding of what they are being asked to accomplish. In essence, the commander formally recognizes that specific details are the responsibility of the lower echelon and it the the lower

Kmart.com has a stretchy layout now!

Update from previous blog post about retailers and their non-widescreen compatible layouts. I was commenting on how nobody seemed to get how to properly design a web page so it could be stretchy... kmart.com has done it! Congratulations guys! I also like the new experience, it really looks nice. I will say the left nav is a little disconcerting. I was initially confused when I clicked on the department and the popup disappeared and showed the details down below. It took a few seconds to understand what the heck actually happened.

Do the right thing...

I recently sat down with a group of technical people and I made a statement that now haunts me. The statement was: "If a developer doesn't know exactly what they are supposed to do, they should just GUESS what they think should be done and move on. " Once the words left my lips, a technical team lead at the table paled and began to argue about how that statement was totally incorrect. I was puzzled for a moment, but then realised this person probably thought I was implying that they should not EVER go back and ask what should be done. In addition, I think they heard me imply that developers shouldn't ever ask questions in general. This was not really what I intended to communicate and in retrospect, my choice of words was unfortunate. To clarify, I obviously think people should ask questions, they should openly challenge requirements that are vague, ambiguous, or contradictory. More importantly, they should be free to use their best judgement in the absence of sp

Buying a new keyboard via Bricks and Clicks

OK, I've had it with my old clunkly Dynex keyboard. Normally my typing speed is somewhere up around 80+ wpm, but with this keyboard it sinks down to around 70wpm... that's over 10% and just not acceptable when I'm knee deep trying to get ideas out of my head and into a computer before they disappear. So I thought what I'd do is go online and see which local retailers have my product, and, more importantly, which one's had my product in stock in my local store. The only reason I would go to a Brick and Mortar site for electronics is because either: I want it NOW!! it's so expensive/heavy that I want to make sure I have a real person to yell at if something goes wrong Off the top of my head I know I picked these stores due to their proximity and my inclination that they may have what I'm looking for. Best Buy (800lb gorilla).. I have a bias toward them because it is very close to my house and I know they have keyboards I can test drive. Wal Mart (close by

Motif ES 8 and linux

Last year (or maybe two years ago) I purchased a Yamaha ES8 workstation. It's been a great tool, although I just started using it last week after about 4-5 months of disuse. One thing I've been wanting to do was start editing/mixing and otherwise integrating the workstation with my PC. The big problem is that I run Ubuntu linux at home. On the yamaha site, their software appears only for windows and Mac. Since I a big geek at heart I thought I'd see how far I can get anyway. For my first step, I thought I'd plug the Motif into the USB port and see what happened... Well, nothing. lsusb didn't even return it as a device. However, dmesg reported a new device. [67560.034283] usb 2-2: new full speed USB device using ohci_hcd and address 2 [67562.707240] usb 2-2: configuration #1 chosen from 1 choice [67562.803313] usbcore: registered new interface driver snd-usb-audio So, just for grins, I restarted the ES with the USB already connected. This seemed to allow the

Big three retail web stores

Image
First off, let me confess, I am employed by Sears Holdings Company, so my evaluation might have some bias. I have tried very hard to be as unbiased (for OR against) as possible. That having been said, one thing that really bothers me is how many large retailers with an online presence continuously fail to understand basic things like web design. As a quick and unscientific measure, I thought I'd review a big box retail sites and give a quick once over. The selections are based on my personal preferences and have no real scientific backing. Let's use the following sites: Wal-Mart Sears (obviously) Target To make it real, I'm actually going to try and buy some new socks. It's winter here in Chicago and my last pair of Smartwool socks now has a hole in it. Again, not scientific, pretty practical. First off, the 800lb gorrilla of retail. One thing that blows me away is the huge waste of real estate for anyone with a wide-screen monitor. If you look at this image,