Minimizing ASP.NET Code

18 years, 10 months ago
[ Software Development ]

Me too….well now I do…

“Whenever I created a web project in VS.NET 2003 the first thing I would do was delete the global.asax and its code behind, delete the AssemblyInfo.cs file (since it rarely makes sense to version your code behind assembly), open the web.config file and reduce it to a single self-terminating element , and finally rename the generated WebForm1.aspx file to Default.aspx, fixing up the corresponding code behind to match.”

Parking Pimp

18 years, 10 months ago
[ Geek ]

We’ve all made the joke about selling our parking spots when leaving a prime location during a busy time. Apparently these guys didn’t realize it was a joke. Link from SpringWise.

“SpotScout claims to be the world’s first mobile exchange marketplace for parking spots, connecting parking spaces with drivers that are desperately seeking them.”

I picked up some family members from the new terminal at the Toronto airport over the Christmas holidays. The parking garage in the new terminal has sensors over every parking spot. At the end of each parking lane there is a display indicating how many empty spots are in that lane.

Instead of this ‘pay people to post empty parking spots’ junk, what if we incorporate these sensors into the city parking meters? You could then use that information in lot’s of cool ways. Have signs at the end of streets indicating the number of empty spots, have a city webpage accessible from mobile devices showing a map that indicates available spots. The information could also be combined with the meter information to make the whole meter-maid business simpler. Wow, redefining the meter-maid industry, how exciting.

Having said all that I cringe at the idea of living in a town that wired….

Scrums

18 years, 10 months ago
[ Software Development ]

We’ve been toying with aspects of Scrum for a while now with a few of our projects. If you’re picturing a bunch of developers gathered in far too intimate of a group hug then you’re thinking of the wrong scrum.

Someone recently asked me what exactly scrum was. Before I read the above wikipedia explanation I’m going to try to repeat my answer here. So you have eXtreme Programming, or xp, which is a methodology for building software. XP is often described as an agile or lightweight methodology. Methodologies are about how you build software. Scrum is a means of managing, or wrapping a process around, lightweight or agile methodologies.

What are lightweight methodologies? I often describe them as a response to traditional software processes such as the waterfall model. Traditional models try to freeze things. You start at requirements then at some point you freeze them and move onto design. Then you freeze the designs and move onto coding, etc. Sure the phases overlap somewhat but the ideal model is a staged one.

What you’ll quickly find in a traditional model is that it requires a certain level of delusion, or you all simply bs each other. The reality is that nothing is ever frozen, especially for the eight to twelve month release cycles products typically have. Lightweight models are a response to this delusion, or an attempt to bring it forward and deal with it openly.

Here’s what I like about Scrum today:

  • It forces everyone to get real, real fast. The speed, quality and level of information for all stake holders in a software project goes through the roof. This is great, however, it does require attention as not everyone is used to, or wants, this level of information.
  • It offers new levers to business owners. Business owners may be actual business owners or product management or a board. They are the non-technical people that keep poking the techies for releases. Typically the only real levers business owners have at their disposal are cash, features, and dates. A business owner will set a date practically at random as a means of incenting a team to work their ass off to nail that date no matter how reasonable. In scrum the business owner has the product backlog as their main lever.
  • History. Scrum provides great tools to formally track how a particular team tracks over time. I feel they’re attempting to do this in a way that’s reasonable for team members to truly participate in. By truly participate I mean that scrum has attempted to build a model that team members won’t continually try to fudge or subvert. Over time you build a decent representation of how a team tracks and delivers. I’ve gone through every form of post-mortem and followup meetings you can think of and none have had any real benefit to the team members.

Now I’m going to actually read some of those wikipedia links above to find out how wrong I am about all this….

Tough Tech Problems

18 years, 10 months ago
[ Software Development ]

As defined in Solving Tough Problems, problems are tough because they are complex, and that there are three types of complexity: dynamic, generative, and social.

A problem has low dynamic complexity if cause and effect are close together in space and time. In a car engine, for example, causes produce effects that are nearby, immediate, and obvious; and so, why an engine doesn’t run can usually be understood and solved by testing and fixing one piece at a time.

A problem has low generative complexity if its future is familiar and predictable. In a traditional village, for example, the future simply replays the past, and so solutions and rules from the past will work in the future. A problem has high generative complexity if its future is unfamiliar and unpredicatble.

A problem has low social complexity if the people who are part of the problem have common assumptions, values, rationales, and objectives. In a well-functioning team, for example, members look at things similarly, and so a boss or an expert can easily propose a solution that everyone agrees with. A problem has high social complexity if the people involved look at things very differently.

So how does this apply to writing software? A few ideas come to mind.

Reduce dynamic complexity through designing simple, intuitive code and bring cause and effect as close together in code as possible. The goal being to quickly locate the cause (buggy code) when an effect is reported (bug).

Reduce generative complexity by leveraging concepts such as design patterns. Design patterns offer a way to use our past to solve our future patterns.

Reduce social complexity through hiring practices that allow teams to effectively vet new team members. Facilitate and stimulate the social networks within teams and realize how key they are to the success of your business. A lot of environments mistakenly view social events as goofing off when it could be the best money they ever ‘waste’.

What else?

Sweating The Details

18 years, 11 months ago
[ Office Gossip ]

About 5 years ago I returned to playing ice hockey after an almost 15 year hiatus. It was a struggle in the beginning but I’ve been able to improve enough to hold my own and contribute, I think. In learning old skills again and new ones, it quickly became apparent that the important skills are the ones you can’t see, the ones you’re rarely aware of. It’s the subtle minute shift in the angle of your blade, the slight twist of your wrist as you shoot. The overt skills on display are an amalgamation of all the tiny ones you don’t realize you’re doing.

Thinking about this had me reflecting back to consulting. Often times the first objection to change or suggestions of change is that “we already do that” or “we basically do that”. I’m often left feeling like a nitpicker in attempting to explain the subtle differences between what a company’s doing today and what they could be doing tomorrow.

Maybe our work environments are more analogous to sports than even I first thought. It isn’t enough to be able to skate, make a saucer pass, or shoot. At a certain level, every player has those ‘on display’ skills. The differentiators are the subtle things we barely see, hardly think about, and can rarely articulate.

Whining About Usability

18 years, 11 months ago
[ Geek ]

I plugged in a phone I’ve had collecting dust in order to use it’s speaker phone. It’s a nice phone that works well. It’s one of these 390 phones and looks identical to the image below.

The problem is that whoever designed this phone clearly didn’t actually try it. If they had then they would have used the speakerphone for conference calls and they would have used the mute function while on those conference calls. While on one, probably more, of those conference calls, they would have been asked a question by someone on the call. Quickly they’d turn to the phone’s buttons in order to unmute so they can be heard. They would have then hung up on the call. Why? Take a look at the buttons

They placed the mute button beside the speaker button. If you’re using the speaker and it’s muted then that little red light is flashing. At some point in the past we humans were trained to press the button beside the red light that’s flashing. It sort of makes sense. In the rush of a call when you need to respond quickly or a client’s going to think you’re surfing tsn instead of paying attention to the call, you see flashing red light which means muted. You want to unmute so hit that button. Done, dial tone, no con call as you’ve just hung up.

I suppose the issue isn’t really the close proximity of the buttons as much as the flashing red light on the speaker button. In either case I have to explicitly train myself not to hit that damn button beside the flashing red light to unmute. I have to be conscious of it which to me screams of terrible usability, or a dumb user.

Free Music

18 years, 11 months ago
[ General ]

I’ve added a new page to store links to free music I need often. Feel free to help yourself if you’re interested, I’ll keep adding to it over time.

Why i(not)Tunes

18 years, 11 months ago
[ Geek ]

I own a 1/2 GB Ipod shuffle that gets a decent amount of use. The iTunes software and it’s slick integration with the device impressed me from the start. As well, iTunes made the process of ripping and cataloguing my cd’s dirt simple.

What I have not done, and have no intention of doing, is spend one cent at the iTunes store on digital albums, even at the low cost of $9.99. What’s my reasoning?

  • I still listen to cd’s on my stereo often and I can hear the difference between an iTunes downloaded tune and a cd. Try it, turn your stereo up and play the same tune on both formats one after the other.
  • The resulting album is restricted. I can only play it on five authorized computers simultaneously. I’m not sure what that really means but it sounds like a hassle.
  • I can’t translate into other formats. So when the mp999 format comes out next week and I want to listen to this album on it I’m out of luck. I could, of course, convert my iTunes album to an audio cd and then rip it back into the mp999 format, however, that will result in more quality degradation.
  • “An intentional limitation of Fairplay is that it prevents iTunes customers from using the purchased music on any portable digital music player other than the Apple iPod”, yike. Link.

So I can pay $9.99 for an ‘album’ that locks me into Apple products OR I can continue to buy used albums for about the same price and play them wherever I choose, including my iPod.

For the time being I’ll continue to buy my albums used from a locally owned chain called the Beat Goes On. They have wish list functionality that allows me to maintain a list of cd’s I’d like to buy. I receive email notification when a cd I’m after comes into stock in any of their stores. I can then have them ship it to my local shop for me to pick up or have it delivered to my house.

As for iTunes, open up or shrivel into non-existence…..

In Car GPS Rots Yer Brain Too

18 years, 11 months ago
[ Geek ]

First visual studio, now I’ve come to learn that in-car GPS systems also rot yer brain. I spent the first half of this week at a friend’s place who has in-car GPS systems in both his cars. They’re cool. You don’t have to know a thing about where you’re driving, what signs to look for, landmarks, directions, etc. You just punch in where you’d like to go and start driving. A lovely voice tells you when to turn, what to watch for, everything you need to get where you’re headed. Next time I’m somewhere new and renting a car I will inquire how much to add one of these to my rental cost since it makes it so simple to get around in a new town.

It does not, however, do anything to help you learn and understand how to navigate your surroundings. In fact it does quite the opposite. You don’t have to pay any attention at all. You don’t have to watch the signs, you don’t have to look for visual cues, landmarks, anything.

It left me thinking of intellisense and what it does for, and to, developers. They’re both very slick useful tools but you’d be hardpressed to convince me that intellisense makes you a better developer or in-car GPS makes you a better, more aware driver.

Just hope that thing keeps working so you can find your way back home.

Where Bidness is Headed

18 years, 11 months ago
[ Office Gossip ]

In the March issue of FastCompany, they ask 10 of their favourite brains what’s next for business and how to get ready for it. I’m most likely breaking a bunch of rules by posting the quotes here but I never had a black leather jacket as a kid so these are my rebel years. Here are a few quotes I picked out:

“I was told again and again that the basis of hiring is not your skills or experience, but how likable you are. The rationale is that you have to conform, in great detail, down to the shape of your lapel pin. In what kind of team does everyone have to be the same?”, Barbara Ehrenreich.

“Fewer and fewer people will want to be employees of corporations, because corporations don’t have anything to offer. Corporations don’t provide security and provide fewer and fewer benefits….This isn’t globalization, because globalization to me feels big. I think it’s the opposite, it’s villagization – making everything smaller and in some sense more intimate.” , Avram Miller.

“To pull this off, the corporate organization is going to change. No longer will there be a few people at the top, millions in middle management, and very few at the bottom. It’s going to become a lot of people at the top thinking strategy, and a lot of people at the bottom executing it against all these different segments. Sod all in the middle – it’s the end of management.” , Kevin Roberts.

These and many other quotes in this article excite me as we’ve somewhat bet the farm on this at ClearSpace and CreationStep. It isn’t what we do but how we do it and how we chose to build and organize ourselves around the work we do.