Damon Payne: Hand waving software architect

103db signal to noise ratio at < .03% total harmonic distortion
Solution Architect, software developer, geek
Damon Payne at Blogged
2009 Microsoft MVP - Client App Dev
2007 Microsoft MVP - Solution Architecture
 Saturday, February 27, 2010

If you’ve ran into me at a community event lately you may have caught me saying something along the lines of working too many hours.  You no doubt felt bad for me and wished you could do something, anything, to help me in my predicament.  Most of the time your sympathy came in the form of beer, which is greatly appreciated.  However if you really want to contribute to the Save Damon Foundation you should come and work for me!

Ok, bad jokes aside, we are hiring for my team.  We currently have offices in Waukesha (WI), Nashville, and Atlanta, although people have worked remotely from all over the place in the past.

What would you be working on?  A large family of applications with terabytes of data.  Our current process and technology mix looks something like this:

  • Asp.net
  • jQuery
  • WCF
  • All Microsoft application stack
  • Team System
  • Scrum
  • Silverlight 3
  • Silverlight 4
  • MEF
  • Unity
  • PRISM
  • AbunchofotherstuffIcanthinkofrightnow

Leave me a comment or contact me for more details.



Saturday, February 27, 2010 2:13:21 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, February 14, 2010

Starting tomorrow I’ll be attending the 2010 Global MVP Summit in the Seattle area.

After working way too hard since, well, pretty much since July of 2009, I will be taking some me time.  Not everyone would consider this kind of event a break but for me this is as exciting as an exotic vacation.  Of course I can’t talk about anything that’s going on during this week, so to the untrained eye following me on twitter it may appear that I am merely goofing off and drinking beer for five days.  In the past I have always found events like this to be a mix of actual learning value and chance to take one’s self out of the daily grind of deadlines and features to gain perspective and recharge.  While I expect this to be the most learning-heavy event I’ve ever attended I’ve also really never needed to recharge as badly as I do right now.  Between the actual session content, putting faces with virtual names, and the organized social events it looks like sleep is going to be hard to come by.  This means my recently worsening insomnia may prove to be a valuable (well, OK, tolerable) asset.

Work and personal factors have kept me from writing much for the past month (since December, really) so I have three personal technical goals for this week as well.  I hope to have time to hack on some personal items as well.

I’ll be using the twitter tag #mvp10.  Here’s to a great geek holiday.

MVP2010 | Personal | Rant | Silverlight | WPF


Sunday, February 14, 2010 2:24:08 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [4]  |  Trackback
 Thursday, February 12, 2009

Despite the obvious advantages of approaches like Scrum, deadlines are a fact of life in the business world.  There are what I consider “artificial deadlines” and “real” deadlines.  If a sales person and a client agree, in a vacuum, that Feature X needs to be done by March 27th, that is probably an artificial deadline.  Where did this date come from?  Is it even possible for Feature X to be done at all, let alone in this time frame?  “Real” deadlines involve some real-world event happening which is going to happen whether you’re ready to take advantage of it or not.  Silverlight must be able to stream video before the Olympics.  The industry trade show happens on this certain date.  We will run out of operating cash on this date.  These are real world events that present a risk or opportunity; they will come and go even if Feature X never happens.  I know of no hard and fast rules for separating real deadlines from artificial ones, but there’s often a certain “taste” to the artificial ones.

Regardless of the real-ness of a deadline, committing to one should not be taken lightly.  Even if there is no real business consequence for missing a date, it affects your credibility.  Consultants who lose credibility have a hard time earning long term success.  Employees who lose credibility get “tuned out” by their co workers over time.  Products that lose credibility sit on the shelf/lot/floor.  Companies who lose credibility have a hard time earning and keeping customers.

Nonetheless, sometimes a deadline that you’ve agreed to simply cannot be met for any number of reasons.  This is often OK, but I try (not always successfully) to follow one simple rule I learned 9 years ago from a much more senior consultant:

You can only push a deadline out by an amount of time equal to {Deadline} minus {Today}.

For example: if the deadline is in a month I could conceivably push it out another month without looking like a moron.  If the deadline is in a week I could ask for another week.  If the deadline is 2 days I could ask for two more days, or partially deliver, or pull some heroic hours and get it done anyway.

This isn’t an arbitrary statement, we can see how this makes sense.  Consider a situation where the deadline is 5 business days away and you ask for two more months.  Did you leave the biggest risk or uncertainty for last?  How intelligent was that?  Did you do a poor job of discovering what needed to be done?  Did you over-promise on how quickly you could deliver a solution?  Did you agree to various scope changes without any concession on timeline?

To put it differently, we can propose a way to calculate the magnitude of the planning/managing/over-committing/qualifying mistake.

let maxPushbackDays = deadlineDate – today; // give us a number of days

let pushbackDaysRequested = someNumber; //How much more time are we actually asking for?

let mistakeQuotient = pushbackDaysRequested / maxPushbackDays; //Give us a quotient

Here’s some simple math that gives us an arbitrary number.  If my maximum sensible amount of time I can postpone delivery is precisely equal to what I ask for, I get a “mistake quotient” of 1.0.  If something is due in two days and I ask for two more business weeks, I get a much higher mistake quotient of 5.0.  If something is due in 10 business days and I ask for 3 more days, I get a mistake quotient of .3.  Missing a deadline is never good, but it may help to think about things in a quantitative manor in order to plan what you’re going to say and how you’re going to say it. At an MQ of .3 you might only need to say “If you look at it this way, it’s really not that bad, we’ve discovered this misconception early enough to correct scope and deadline now…” whereas at 5.0 you might need to have a very compelling story indeed.

Of course, with “real” deadlines it’s different.  If the Olympics come and go and you didn’t take advantage of the opportunity, what then?

Back to basics: If you’re going to be late, it’s best to let it be known as soon as possible so there’s time to react.



Thursday, February 12, 2009 3:00:02 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Wednesday, December 31, 2008

It's had to believe it's been more than two weeks since I last posted, especially since there's so much going on in DamonLand.

 

Professional

Today was my last day at CarSpot, a place I'll really miss.  I've been consulting most of my career and mostly had shorter assignments - always ready to ride off into the sunset and tackle the next challenge.  My time with CarSpot both as a consultant and full-time employee represents my longest and most serious commitment to any business venture.   I grew a lot during these years, and I met a lot of great folks I hope to keep in contact with.  I've never seen such a large group of people all of whom were loving their job and work environment and so loathe to split the team up.  I met some fabulous folks at our parent company, AutoTrader.com, and I hope they stay in touch too.  I owe several of them a tour of my wine collection and some hearing loss in my home theater.

It's somewhat hard to get business of any kind done during this time of year with all the vacations and such going on; but I expect next week to be fairly busy. I'll be co-working from various locations in downtown Milwaukee, Brookfield, and Delafield next week if anyone is interested in meeting up.  Watch Twitter.

As for what I'm doing next, I will only say at this point that my Round 1 and 2 meetings are mostly done and that I have several things I'm excited about.

The Argentum Tela design surface project is going well, the currently working article [19] is about Undo/Redo support and Commands in Silverlight and is somewhat complicated but also a lot of fun. 

I'm also working on an entry for the Silverlight Write and Win contest.  I was going to just write some new articles and submit AGT in its current state but I thought that was kinda cheap and would require slight re-work to fit the contest rules.  My submission will be in the vein of Visual Tools though and I think it's pretty slick.  We'll see what the judges think.

I also have some other things to keep me busy, potentially related to my next steps: some heavy Entity Framework development coupled with a bunch of Dependency Injection refactoring, a purpose for HandWaver.com, coming up to speed on SharePoint, and other refactoring of side-project code and article writing.

 

Personal

We had an awesome christmas.  On christmas eve I shoveled snow for hours on end, on christmas day I cooked boeuff ala mode (French style pot roast in red wine sauce) which is at minimum a four hour task.  My daughter, who is incredibly awesome and creative (especially considering she's 5), got her daddy a true chef's hat as a gift.  Pictures of this will be coming as soon as my kitchen is presentable enough to take photographs in.

It's New Year's Eve and I'm sick as hell and so is my son.  This has ultimately resulted in us staying in tonight, I'm about to make a nice dinner for my wife and I to be followed by Champagne and some Kabinet style Riesling - I expect I'll be crashing right after the ball drops.  I love Champagne.  I often use Champagne, considered by many to be a special-occasion-only drink, to celebrate (wait for it) my love of Champagne.

Despite having a brand new house I find myself running around caulking little cracks here and there to keep the house warm.  It has snowed an outrageous amount this winter, and since I have been too stubborn to buy a snow thrower as of yet I've lost a non-trivial amount of weight through shoveling it all.  My neighbors, who totally rock, occasionally have pity on me and help me out when things get really rough.

Jen and I met seven years ago tonight!  My totally awesome Queen among Wives and I now have two kids and we're looking forward to a great 2009.  We consider New Year's Eve to be our real anniversary despite getting married on June 9th.  We met at a dinner party I threw involving me cooking and serving Champagne.  Some things never change!



Wednesday, December 31, 2008 9:32:06 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, December 02, 2008

The Terski got me into Seth Godin maybe a month ago.  Good stuff.  Marketing and Excellence in Business are becoming increasingly relevant to those who wish to get beyond Code Monkey status.  Not that there's anything wrong with being a code monkey.

While discussing one of Seth's recent posts with a co-worker, he made the simple observation that

"There's something wrong with the old school."

There's something wrong with the old school.  No shit.  He was talking about the music industry.  The auto manufacturers come to mind too.  So does the entire Real Estate industry.  So do a lot of things.

It should be pretty obvious to any reader that I'm in favor of laissez faire capitalism, and yet for a while I've been meaning to write something on what is wrong with business in America right now.  No, it's not greed.  It's not that there's not enough regulation.  It's not that there's not enough skilled workers in America.

Our corporate culture is in some ways broken.  I think there is a lack of vision, an out of touch quality, a laziness and a weakness in the leadership of many of America's big businesses.  In the past 20 years, more and more of us look at Dilbert and our first reaction is not to laugh, but to see reflections of our own work day in the pointy haired boss.

Out of Touch to the point of insanity

I'm still driving my Subaru WRX that I got in 2001.  It's a great car.  By the end of 2002, Subaru was importing around 10,000 of these per year.  This car is very Japanese, it's a 2.0 liter turbo-charged all wheel drive four door that's fun to drive and practical enough for me; I get around 27mpg.  Detroit's answer to the WRX and to the Lancer Evolution and the other cars that followed was more or less that Americans don't want cars like this.  Americans want Corvettes and Mustangs and SUVs.  Yet, the WRX, the WRX STi, the Lancer Evolution, the Nissan GT-R, and others show that Americans clearly do want cars like this.  The Ironic Icing on the Cake of Incompetency is that if you look at the overseas offerings from companies like Ford you'll find (wait for it) things like an all wheel drive turbo-charged car that sure looks fun to drive.

Instead of thinking and doing, Detroit spends their time and money lobbying the government to take choices away from you, to making sure the law protects them from having to change with the times and with consumers' wants.  Our engineers and workers are great, our leadership is killing us.

The music industry couldn't be more out of touch.  I don't think I even need to expand this point?

Status Quo vs. Innovation

As Seth pointed out in the already referenced story, a business with a strong brand will ultimately find itself with two choices.  It can use this brand to build the Next Big Thing or it can do its best to keep the Next Big Thing from happening.  Think about how hard the Music and Movie "content" industry has fought digital distribution.  Their price for losing this battle is that Apple Computers, of all people, is considered by many insiders to be "calling the shots in the music industry".

My favorite example in this realm is the Real Estate industry.  If you've ever bought or sold a house you probably have a vague notion that there is this thing called an MLS (Multiple Listing System) and this group called the National Association of Realtors.  Getting your home on the MLS means that if there's a buyer for your home, they'll find it.  You pay a 6% commission for this service.  Some brokers will work harder than others to sell your house, but you're really paying a fee to get into the MLS. 

From my point of view, the National Association of Realtors has spent most of their time in the past 20 years protecting this 6% commission model under the ostensible banner of "protecting consumers".  They even got laws passed in some states making it a legal fact that brokers had to charge a 6% commission.  Then Buyers Agents came along, representing the home buyer in this important transaction and they wanted part of the commission.  Then The Internet came along and companies sprang up who would charge a much smaller fee (less than $1,000) to get your home into the MLS (the most valuable thing a seller can do) but leaving you to do the work of actually showing your house to sellers.  The NAR and many local MLS franchises went to work outlawing the operations of these companies in order to protect the Old Guard and had a degree of success until the DOJ got involved. 

The net worth of most Americans is tied up in the value of their homes.  Suppose you have no debts and no assets but you managed to put 20% down on a $300,000 home.  Your net worth would be $60,000.  Commission on selling the home would be $18,000, or nearly a third of your net worth.  Despite how infrequently you sell your home, why would you want to give a significant portion of your net worth to brokers if there's a good alternative?

The Realtors had a captive and grateful audience.  They could have become the Internet Real Estate solution for brokers.  Instead, they tried to stuff the genie back into the bottle, they tried to hinder the online business models of their members in order to protect the status quo.  Brokers instead had to go outside the MLS, they had to pay technology companies to build their websites, to build the systems they use to communicate with their buyers and sellers, the systems that show homes on Google Base and other content aggregators.  The MLSs left this money on the table, and now they've lost it forever and they can expect to see themselves slowly decline in relevance.

Culture of Fear and Stagnation

There is an underlying current of fear and stagnation in many American businesses, especially the larger ones.  Managers and executives do not take risks.  They don't learn new things.  They spend their days solidifying their own power.  They have to force their employees to be at their desks between 8am and 4pm rather than advocate virtual offices because otherwise they'd have no idea how much work their employees were doing!  Your manager probably does not reward risk taking because their manager probably does not reward their risk taking and all the way up to the top.

Chances are your manager has been in his or her job longer than you, and they've got a career path to protect.  How much of the upper management at your company has been there longer than five years?  Longer than ten?  Is the company you work for providing incentive for and rewarding good behavior or are they rewarding people who Do Their Time and erect walls around their Empire?  When was the last time you saw an announcement go out in your company saying "Damon took a risk and he failed, but ultimately it was a good risk that could have payed off big for this firm" ?  You've probably never heard that at work.  You've probably at some time worked for a business that claims to to desire one kind of behavior but clearly rewards the opposite.

If your manager is new, are they shaking things up, bringing in new ideas and processes?  Or are they tripping over themselves in their hurry to appease the old guard?  How many of the policies you're supposed to be following at work are there because your manager/company is a afraid of being spied on, afraid of competition, afraid of being sued, afraid of having to change.

Does your manager reward smart risk?  Do they do the right thing even if it means putting their empire at risk?  Do they trust you to do your job once you've proven trust-worthy?  Do they try to give you what you need to be successful?  Be sure to tell them you notice.

What's the Answer?

None of this is to say that young people have all the answers, that "thinking outside the box" is always what's called for, or that all of our corporate leadership are frightened little empire builders.  My own manager is almost too future-looking sometimes.

Companies and individuals, big and small, are shaking things up.  Apple is forcing the music industry to change.  Tesla Motors is close to proving Detroit wrong.  Southwest is growing while other airlines flounder.  Despite ever-increasing regulation and taxes, America is still the most free nation in the world and that means opportunity.  What can you do?

  • Don't do business with dinosaurs if you can help it.  Don't reward bad behavior.  When something new comes along that shows that someone "gets it", do business with them instead if you can. 
  • Don't break the law or act unethically.  On some level, I think we all know that intellectual property is still property.  It costs millions of dollars to make a movie, so don't pirate them.  When breaking the law is your protest, the response is all too often more laws and less freedom.
  • Don't work for dinosaurs.  This might be the hardest one to follow, and will in fact not be a real option to many of us.  Still, if you're a top performer, chances are you can work elsewhere even in the worst economy.  Work for someone who gets it, or start your own business.
  • Encourage those who show good leadership when you see it in action.  Some Project Managers are only able to walk around and ask you what the percent complete on a task is.  When you encounter the ones who are really providing guidance and removing barriers so the project gets done make sure they know you get it.

Shake things up.  Do better.  Succeed.  There's something wrong with the old school.



Tuesday, December 02, 2008 8:22:31 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Friday, November 14, 2008

This article on Engadget HD today greatly amused me.

Research finds that people still heart physical discs, greatly prefer Blu-ray to streaming

While the "HD streaming rulez!one11!1!" bandwagon was quickly filling up after Netflix announced that it would be bringing such a service to the Xbox 360, the numbers just don't substantiate the claims that physical discs are doomed anytime soon. Sure, for the budding technophile, streaming is just the next great thing, but for the average joe / jane, the tried and true disc still holds a great deal of importance. A recent study by market research firm SmithGeiger found that out of over 2,000 surveyed, "HDTV owners familiar with Blu-ray favor the format over downloading and streaming by a margin of nearly 10-to-1, with about 70% of respondents citing the fact that there's a physical disc to keep as a key factor in their decision to buy Blu-ray." It also found that 96% of BD users were "familiar with downloading and streaming services, but that two-thirds believe watching a movie on Blu-ray is a better overall entertainment experience." Sure, BD has its flaws, but not having to re-rent an HD film after a remarkably short 24-hour window sure is nice, huh?

No kidding.  The cries that physical media was dead reached their highest volume as it became clear that Blu-Ray was going to win over HD-DVD.  The people making these claims were either:

  1. Analysts who must not watch many movies at home (ergo are relatively clueless on these dynamics)
  2. HD-DVD supporters/fanboys trying a little et tu coque to ease the pain of their loss by saying BD's days were numbered as well.
  3. HD-DVD supporters with huge vested interests in media streaming
  4. Random outfits not necessarily associated with HD-DVD, but with huge vested interests in media streaming

Media streaming has such a long way to go it's not even funny.  I am certain that we'll get there, but consider the following facts and anecdotes:

  1. I have yet to see a streaming solution that offers basic DVD features: chapter selection, audio selection, special features, multiple audio streams, multiple subtitle options.  This takes bandwidth and increases technical complexity of this delivery mechanism.
  2. Ditto #1 but for the advanced interactive features of Blu-Ray: online features, PiP, advanced programmability, etc.
  3. Quality.  Last time I checked HD Cable bitrates top out at around 9mb/s for audio plus video.  Right now this is overwhelmingly Dolby Digital and MPEG-2, with some outfits moving to MPEG-4 for better video compression.  While not bad compared to normal TV, this is a far cry from the 40+ mb/s I have on numerous Blu-Ray discs or even the relatively lean 18+ mb/s on say the King Kong HD-DVD encode.  Some people will not be able to tell the difference, and some won't care, but a lot of people do.  If you have a sound system you care.  The larger the TV you have, the more you'll be able to notice the flaws.
  4. Delivery.  While some people have the option of 10mb/s U-Verse, 18mb/s cable, or 150mb/s fiber in their home, that is still a relatively small # of people and not increasing very fast.  A lot more folks are still slumming it with 3mb/s or 5mb/s cable because they either can't get or won't pay for the faster options.  Where I live, 1.5mb/s DSL is my best option.  I could literally get a Blu-Ray from Amazon.com with 2-day shipping before I could download even half of a high quality movie.

The convenience of just instantly grabbing a movie over the PSN or Netflix, or even queuing it up while I make dinner has appeal.  I will not, however, pay money to watch something of less than DVD quality in my home theater on my 106" screen.  Those of you who will, enjoy your mediocre entertainment! 



Friday, November 14, 2008 4:19:51 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Tuesday, September 09, 2008

http://rss.slashdot.org/~r/Slashdot/slashdot/~3/bPjNCxSc91M/article.pl

 

Read that, let it soak in, smile.  I have blogged about this before but I can't help giggling to myself.  I assume all the people who screamed for Microsoft to be fined, broken up, shackled with special restrictions (they have to run a lot of their plans by the DOJ), and forced to give up intellectual property such as Active Directory protocols to their competitors (IP that cost billions to develop) will now be screaming for the same thing to happen to Google.  Oh, and Apple is not far behind.  Apple has a great hit on their hands with iTunes, but they are being given an ultimatum in the EU to lower prices or face a full antitrust investigation. 

 

In case you're not following the irony, let me spell it out for you: Business B tries to compete with Business A in a free marketplace and ultimately is not as successful as they'd like to be.  Four main categories of options remain to Business B.  They can give up.  They can keep trying.  They can resort to illegal measures like kidnapping, blackmailing, and extortion.  But why resort to illegal measures when the legal measures are just as forceful, just as damaging, but perfectly above the board.  If Business A is big enough and Business B can find enough malcontents to help with legal funds, they can lobby the government to open an Antitrust suit.  No one states this better than Mr. Zuck in his DotNetRocks interview concerning the politics surrounding the OOXML debacle.  I urge you to give it a listen here: http://www.dotnetrocks.com/default.aspx?showNum=335

 

As Jonathan puts it, there are only three ways you can get yourself into Anitrust trouble in the US and the EU. As luck would have it, you must merely follow all three of these rules at once and you are safe:

  1. Do not charge the same price as your competitors. This is Collusion and harms consumers.
  2. Do not charge less than your competitors.  This is Dumping and harms consumers.
  3. Do not charge more than your competitors.  This is Monopoly Rent and harms consumers.

Why would antitrust law involve a set of rules that are mutually excluisve and impossible to follow?  If you feel the intent of Uncle Sam is to "protect consumers" this is impossible to reconcile except perhaps by assuming the law is broken and not meeting its intent.  The law is not broken, and is precisely filling its intent. Without these laws, the bureaucrats would have a hard time marketing their sales as Thugs for Hire, but I'll come back to that.

 

Assuming a business wished to avoid Monopoly status at all costs, how might they go about this?  Are there objective measurements they can follow to avoid obtaining a certain market share?  Are there maximum profit margins they must seek to remain below?  There are, in many states, minimum margins certain businesses must observe.  A contractor in Wisconsin who marks up materials less than 6% will find themselves in court.  I suppose this is to protect consumers from the mental anguish resulting in determining how to spend that extra money?  Imagine that perfectly objective metrics existed for determining at what point Monopoly status is gained.  The business in question has only poor choices.  The business can opt to wait for the other shoe to fall, knowing that at any time their shareholders' wealth will be drained into legal defense.  The business can engage in self destructive behavior hoping to lose market share; if the business is a C-corp the agents are legally forbidden to do this and will find themselves in court.  Fingally, the business can start lobbying!  How might a Monopoly notification from our government look, anyway?

Congratulations, you're a monopoly!

The United States government congratulates you on your achievements.  Please be aware that starting today, you are forbidden to run your business in the same fashion that got you here.   Enclosed, please find campaign donation envelopes for the major political parties.

 

 

Google and Yahoo should not be investigated; Apple should not be investigated; Microsoft should not have been investigated.  There are already comprehensive fraud laws at the State and Federal level to protect consumers.  Beyond this, a business can only come to market dominance through a series of voluntary exchanges with clients and partners.  It is only the government, and not businesses, that can establish artificial barriers to competition.  Business owners have a right to their property.  Government power brokers will seize any excuse to violate or threaten to violate that right in order to furthur their own agendas.  Google, Apple, and Yahoo! are finding out that if you cannot pay the government Protection Money through the lobbyists, those that did open up their pockets will soon have access to all your hard work - either as it becomes public record entered into evidence at trial or forcibly taken from you by a binding judgement.  Just remember that by your willingness to infringe on the rights of others, you opened the door for the desecration of your own rights. 

 

I don't expect to hear public outrage against Google and Yahoo! ; only unpopular businesses receive this treatment.

 

Following the original Microsoft antitrust trials,  Bill Gates is famously quoted as saying "I should have spent more time in Washington".  This is to say, he feels he should have spent more time participating in lobbying and favor purchasing and less time running his business.  The power brokers in Washington wouldn't have it any other way.



Tuesday, September 09, 2008 2:07:15 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, August 01, 2008

I was listening to the most recent Thirsty Developer, http://thirstydeveloper.com/2008/07/26/TheThirstyDeveloper28SCRUMAndAgileInTheEnterprise.aspx.  Sean is a great guy and I'm glad Larry and Dave were able to connect with him.  One thing I found interesting is that they mention using Scrum for things other than software development projects.  It is indeed a generic principle based on empirical process management.  Scrum is a simple idea, like most powerful ideas.  At CarSpot, we are (more or less) using Scrum for our inter-departmental communication as well as software development.  The various managers meet with their teams in a brief, daily standup, and at 2:00pm we have a Scrum of Scrums where department managers/directors talk about what's going on and are able to air any complaints about the service they're getting from other departments.  We are using ScrumWorks at this time, but I'm thinking we can create something that suits our needs better.

In addition, my family operates on Scrum.  You may have noticed that I'm fairly fond of my toys.  A lot of married men that I talk to claim they would never be "allowed" to have such things.  They use terms like "SWMBO", She Who Must Be Obeyed.  Really?  Honestly, you guys are either:

  1. Spineless.
  2. Broke.
  3. Pretending to be spineless by saying its your wife and not your better judgement keeping you from blowing tons of money on things you really know you shouldn't have.  You think by displacing this acetism to your spouse you appear more manly to your peers.  In fact you appear to be spineless and your friends feel sorry for you, thinking you must not be happy in your relationship.
  4. You don't really value your own happiness.

In my family, we have a Family Backlog.  Just like in Scrum, everything goes on there, no matter what.  Nothing is a "no", just a low priority.  I don't think my Tesla Roadster will be on a Sprint any time soon.  Still, it's a great way to communicate and feel things out.  No one feels slighted because there is a known order of what we're working on, and we can have ridiculous things as long as we respect the fact that we take turns and do what makes sense.  My wife will be getting her own diving gear and curtains in the whole house following my recent speaker purchases.  Nothing is listed as being for "us", unless its really for US.  I don't know how many times a friend or coworker has complained that they can't get a new TV because the bedroom set was for "them".  These men could care less about a new bedroom set, they want an HDTV dammit.  This system works for us, everyone is happy, and the backlog can be reprioritized as our needs and wishes change.  Besides being a fair system, I'm lucky enough to be married to a great woman who really cares about my happiness and - get this - doesn't think she knows better than me what will make me happy.  So men, put your new Corvette on your family backlog and be aware you may wind up funding a total kitchen makeover directly before or after it.  If families really want to be fair with limited resources, to really do the things that are important to the family and to each individual therein, you could do a lot worse than Scrum.



Friday, August 01, 2008 12:41:24 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, June 18, 2008

It looks like blogged.com has labled me "great".  I'll take it!

Damon Payne at Blogged



Wednesday, June 18, 2008 10:45:26 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, June 10, 2008

Larry Clarkin called me out in a question on software development going around the blogosphere.  Here are my answers.

How old were you when you started programming?

I was 11, we were living in a town of 600 people in southern Missouri.  I was very into arcade games and the few games we had for the PC which was an 8086.  My father, a very technical man but very cheap at the time, was loathe to shell out for a new video game.  At some point in a stroke of intuition, I realized those guys must create these games somehow. 

Damon: “Dad, if I can’t have a new game, I’ll make one.  How do those guys do that?”

Dad: “Oh, that’s with programming languages son”

Damon: “Do we have any of that?”

Dad: “Here’s the GW-Basic book that came with the PC”

I did the basic infinite loop printing my name, then learned the power of GOSUB and created a subroutine that would draw a spaceship and a subroutine that would shoot lightning bolts out of said spaceship.   I didn’t understand anything about how game worlds were animated though, the “tick” concept, and though that every on-screen object must be a Thread or something.  I left it alone until years later, living in Waukesha, my Dad brought home a Turbo Pascal compiler for our massively powerful 386. 

What was your first language?

GW-Basic, later Pascal

What was the first real program you wrote?

Well, the spaceship game was vaporware so I can’t say that one, but I did briefly experiment with audio on the 8086.  There was some kind of PlaySound(frequency, duration) function in GW-Basic, and I thought I’d need to write music for my eventual spaceship game.  I painstakingly assigned every letter of the alphabet a frequency inside a subroutine and checked the key stroke to see what letter was pressed.  I would type out various things that are not fit to print here in an attempt to see what words and phrases might make cool game music.  This program worked and met the intended scope.

What languages have you used since you started programming?

GW-Basic, Pascal, C, C++, Dephi, Q-Basic, Java, Javascript, VB.NET, C#

What was your first professional programming gig?

My internship of my Junior year in college ended up lasting through my Senior year, so nearly a year.  I was a C++ developer at Great Lakes Higher Education Corporation.  We were doing code on DB2 and Solaris of the kind JSP developers would soon become familiar with.

If you knew then what you know now, would have started programming?

Absoultely.  There’s few other things I could picture myself doing.  That sounds like a good blog post “What would you do if you couldn’t create software?”

If there is one thing you learned along the way that you would tell new developers, what would it be?

I would tell them to take an interpersonal communication class, or to spend some time as a real professional consultant.  Many early times in my career I got in trouble, or nearly got in trouble, by being cocky or not recognizing when situations were politically charged.  Even if you just want to write code, you must be aware of these things.

What’s the most fun you’ve ever had programming?

There are lots of small things along the way where things were fun for 6 months or so, but when I think about times I was most looking forward to going to work, it was actually (and I can’t believe I’m saying this) a project I did at Assurant health.  They forced me to use VB.Net which I hate, they gave us slow computers with mandatory virus scanning, and the schedule required heroics and a lot of cleaning up bad offshore code.  However, I had some excellent people to work with that I still stay in contact with years later.  I am now a client of The Clarkinator.  DeMilde, Terski, VanDyke, and others: it was a good time.

Who am I calling out?

Aaron Staves

David Snopek

Dan Vanderboom

Matt Terski



Tuesday, June 10, 2008 10:21:17 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, April 16, 2008

I couldn't leave this one alone:

http://www.scienceblog.com/cms/world039s-oldest-living-tree-discovered-sweden-15937.html

The first thing I thought of when I saw this, sadly, was not "wow, what an awesome discovery!" but "Wait, isn't the world only 6,000 years old?".  As much as it would be a tragedy to harm these trees, I think we ought to take a core sample and count the rings on the trees.  What would surely follow is the sound of one thousand "thuds" as the creationists trip over themselves to refute the fact that the age of trees can be determined by counting rings.  Or, as my friend put it "The devil planted that tree to confuse us and test our faith."

Johnny Appleseed was the antichrist.



Wednesday, April 16, 2008 1:38:38 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback

I had the most frustrating dasBlog issue over the past couple of days:

I suddenly found myself unable to post anything on my blog.  This coincidentally happened at the exact same time my hosting provider had me try a web.config change to alleviate some session/viewstate issues I was having.  I would try to make a post, get no errors, and be returned to the front page and see that my post was missing.  Referral logs were strangely missing, and the dasBlog event log was also strangely empty.  The only thing I could get a vague error message from was trying to post a comment.

Apparently, my "Anonymous Asp.Net user" had suddenly hit its disk-space quota.  I don't know if this quota was created recently or not.  It seems odd indeed that dasBlog would cruise along and never report an error when it's out of disk space.  I wonder if this is something dasBlog is doing or something that's happening because of the hosting environment?



Wednesday, April 16, 2008 11:39:55 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, March 30, 2008

A small part in my decision to make the leap to Vista 64 was Scott Hanselman's findings upon building his home office and a new workstation therein: moving to 64bit was a non issue.  I wish I could report the same.

My first issue was with installation.  With certain hardware configurations Vista x64 will crash with 4gb of RAM installed until a hotfix is applied.  My understanding of the state of the 64bit world is this: the current 64bit processors are not entirely 64bit.  They have 64 bit registers and some 64 bit instructions.  To the average PC hotrodder or developer the preceived benefit is the ability to use 4gb of RAM instead of 2gb.  I installed the hotfix, got my 4gb of RAM working, and set about playing the Sweeny Todd soundtrack whilst I decided what order to install things in...

The drivers for my X-Fi sound card installed, I started Windows Media Player.  Windows Media Player crashes the first time I start it 100% of the time.  Vista Sp1 and a horde of updates has not fixed this.  Since the X-Fi is probably the most popular aftermarket sound card in the known universe at this time this ought to to work.  It may have nothing to do with sound drivers at all.  The 2nd or 3rd time I launch WMP it will work happily forever.

My graphics card is a PNY GeForce 8800GT series.  It clearly lables itself as having both 32 and 64 bit drivers on the driver disc.  I experienced an new Vista phenomenon with this product: installing the drivers using the OEM program declared that no changes were made to the system.  I pointed Vista at the .inf file on the disc for x64 and Vista basically said its own driver ("Standard VGA Port", yeah right) was better and refused to take the OEM drivers.  Only the Nvidia unified driver install would work.  Odd...

My next stage is to get my various messenger programs up and running so I can chat whilst I wait on things to intall.  MSN messenger is objectively the best messenging experience by far so that went worst, no issues there.  I have used Pidigin for AIM (most CarSpot folks and some friends are on AIM) since having crashtastic experiences with Trillian and an absolutely astounding clusterfuck with the actual AIM product ruining a Vista install; it would seem AOL is the reigning champ for the national heavyweight Invasive Install Championships.  Pidgin has similar behavior as WMP, it will crash and then run perfectly for as long as the machine is up.

My Blu-Ray drive was working fine as a Serial ATA DVD drive.  Folks, installations of things like Office 2007 are actually quite painless with something better than an IDE CD drive.  This alone is worth the extra expense.  Still, it came with software that can play Blu-Ray and there are nights (like tonight) where I'd like to watch a movie on my 1080p monitor while some long-running tasks scroll by on my ancient 19" CRT.  My first attempts at getting Blu-Ray playback working met with failure.  The install process (damn you Pioneer) demanded ridiculously old and specific versions of DirectX that were clearly not going to happen on Vista 64.  Some combination of Windows Update and SP1 magically fixed this, so I watched Blood Diamond on Blu-Ray while logs scrolled by tonight. 

My last two 64bit issues dealt with actual software development.  Visual Studio and the like installed and ran fine except for one issue so infuriating I have a dent in my forehead: copying an ASP.net solution from one machine to another suddenly started claiming that "{MyCustomThinger} RoleProvider has already been added", and commenting this part of Web.config out certainly allows the site to run.  As expected, putting this web.config with the role provider commented out on any other machine (including my development laptop and the two servers where the site actually lies) crashes because of course the configuration is incorrect.  I still can't explain this one.  The next issue was the most time consuming.

MySQL comes in 32 and 64 bit flavors for Windows.  I needed MySQL for one of my development efforts.  MySQL x64 does not like Vista x64.  In fact, the slightly out of date platform notes on their site claims Vista x64 is not supported, but there are enough success stories out there suggesting this is just a CYA that I gave it a whirl anyway.  MySQL 64bit would not run, claimin a "side by side configuration" was incorrect.  OK, knowing very litting about anything this sounds like some sort of thunking layer issue, so I'll try the 32bit version.  Same error.  What does Google say?  Google says that the Application Manifest in the server configuration process is broken for 64bit windows.  The MySQL forums claim that only a program called Reshack can fix this.  The problem with Reshack is that it runs on 32bit platforms only.  For those who don't know: the various Icons, embedded resources, and execution manifests for a Windows .exe get compiled into a special section of a windows PE and programs like Reshack can read/write this area without doing anything to the code itself.  I eventually found a Delphi program posted by a company in the UK that would work for me.  Having had some bad experience with libraries without a strong name that I am missing the code to recompile, I was glad MySQL doesn't attempt to use authenticode signatures with their releases.  I changed the Vista application manifest XML to the appropriate "requireAdministrator" and I was finally off and running.

The last issue I experienced this weekend was with some code I "inherited".  It uses Microsoft Jet ODBC to treat a file as a "data source", access the file rows using DataReader constructs, and sort the contents in a DataGrid.  This code bombed when I ran it.  Google tells me that Jet does not exist for x64.  I had planned on rewriting this code anyway but wasn't up to the task tonight, so I kept looking.  .NET programs are usually targetted to "any CPU" by default, but Google told me changing the target specifically to x86 would allow some extra Thunking Magic to happen, and as soon as I did this I was back on my way with Jet magically found now.

After these experiments, I'm definately going to test all of my production code to make sure I haven't done anything that won't work with 64bit editions of Windows or the .NET framework.  I also need to take it upon myself to do some research: what does 64bit do for me and for Joe Consumer besides 4gb of RAM on Vista?

.NET | ASP.NET | Rant


Sunday, March 30, 2008 1:17:26 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Wednesday, March 26, 2008
yay

It would appear the new workstation is stable now, after flashing the BIOS and other tomfoolery. 

Despite being "overkill" in terms of hardware, it still takes for freaking ever to install things in Vista, Live Messenger being the worst offender by far.  Now I need to reorganize my office, set up the extra monitors and speakers, and go about intalling my various development tools.  I should have a very productive weekend.



Wednesday, March 26, 2008 10:34:20 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback

Yesterday when I got home I plugged the new mobo in, and wonder of wonders it would post.

Last night I had birthing classes, had to go get our daughter from Grandma's after than, so at 11pm I sat down to finish building the workstation.  Vista kept treating me to bluescreen/stop errors after copying files.  Doing some research I found that many motherboards + Vista64 have an issue booting with 4gb of ram installed, so I eventually took some RAM out and got windows installed.  There was a hotfix for this issue but I kept having hard lockups in Vista.  Long story short: I flashed the BIOS after about 4 Vista lockups, Vista insisted on using it's "standard VGA driver" instead  of the Vista 64 driver that came with my 8800 GT.  I'll have to see tonight if Vista is happy with the new BIOS and/or the NVIDIA unified drivers when I try that. 

Stupid computers...



Wednesday, March 26, 2008 9:35:46 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Saturday, March 22, 2008

I am now one NewEgg hat and $50 better off than I was the other day, but my replacement part still has not shipped.  So much for having it overnighted to me.  In addition to the claimed system glitches that kept this from shipping when it was supposed to, their systems showed on Friday that the part was boxed but no tracking number had made it out yet.  This morning, I find an email notification that my $$ has been refunded for the part.  I'm not sure if this is additional goodwill or another mistake, but I'll have to wait until Monday to find out.



Saturday, March 22, 2008 5:21:52 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, March 20, 2008

So, I set about to RMA my motherboard on Wedesday.  To make a long story short, they gave me a UPS shipping lable and the transit times plus their RMA processing time put the round trip at something like 3 weeks for me.  This is complete BS since by then my window to return/exchange the other parts will be gone.  I shouldn't have to wait a month for something I bought to be made right.  I called NewEgg's customer support to explain this to them, and lo and behold without the slightest bit of resistance they agree to overnight me a new one without making me wait on the whole RMA Process.  I left them a strongly positive note at Reseller ratings and I should be in Quad Core Heaven Friday night or Saturday.

There's an important item to not here.  A DOA Asus motherboard is not the fault of NewEgg, but I am more directly their customer than a customer of Asus.  A company cannot directly pin their customer's satisfaction on the performance of their own vendors.  A layer of indirection is needed.



Thursday, March 20, 2008 11:02:03 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, March 18, 2008

It would appear, at least on my machine, that I can add "No script debugging" to my list of IE8 complaints.  Despite making the necessary Internet Options changes I can't hit breakpoints in javascript in VS2008 any longer.  It's a beta browser and I don't really need this feature, but be warned.



Tuesday, March 18, 2008 9:19:01 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, March 16, 2008

I found this "atheist prayer" via Friendly Atheist.  I enjoy Friendly Atheist, but I wanted to point out an issue with this post.

"Our brains, which art in our heads, treasured be thy names. Thy reasoning come. The best you can do be done on earth as it is. Give us this day new insight to resolve conflicts and ease pain. And lead us not into supernatural explanations, deliver us from denial of logic. For thine is the kingdom of reason, and even though thy powers are limited, and you’re not always glorious, you are the best evolutionary adaptation we have for helping this earth now and forever and ever. So be it. "

I suppose this is meant as harmless humor, and I probably wouldn't flip out if it had been entitled the Atheist Credo or something similar.  Let's not kid ourselves though.  Equivocation is one of the main ways the un-religious are attacked today.  Sam Harris absolutely called this one right.  To call the extreme skepticism of the possibility of the existance of a god on the same plane as faith is one of the more popular parlor tricks of the faithful today.  To call acceptance of empirical evidence a "kind of faith" turns my FlipOut dial up to 11.  The faithful are having enough of a hayday with ridiculous equivocation arguments as it is.  Do we really need to add ammunition by creating secular versions of old catechisms?  I think not.

Main Entry:
1prayer Listen to the pronunciation of 1prayer
Pronunciation:
\ˈprer\
Function:
noun
Usage:
often attributive
Etymology:
Middle English, from Anglo-French priere, praiere, preiere, from Medieval Latin precaria, from Latin, feminine of precarius obtained by entreaty, from prec-, prex
Date:
14th century
1 a (1): an address (as a petition) to God or a god in word or thought <said a prayer for the success of the voyage>
 
Yeah, I think I'll abstain from using this term even in jest, lest it be misconstrued.


Sunday, March 16, 2008 6:06:29 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, March 14, 2008

http://www.ps3fanboy.com/2008/03/14/microsoft-predicts-blu-ray-irrelevance-in-12-18-months/

This is ludicrous talking head speak for the vast overwhelming majority of the movie-watching population.  If I can get better than 1.5mb/s DSL in the next 18 months I'll be shocked, let alone enough pipe to handle True HD video.  At this stage of the market, digital downloads and packaged optical media are NOT different versions of the same product, as these people seem to believe.  They are utterly different products.  38mb/s MPEG4 with 5 mb/s LPCM is not "the same" as the puny bitrates we get through video on demand at this time, and the average consumer can handle having a shelf full of optical discs much easier than they can prepare for terrabytes of digital storage medium.  How many average users have a backup strategy?  The first time you want to watch The Matrix but that hard drive died and you have to redownload you'll be mad.  When you realize the DRM might make re-downloading insanely painful or impossible (as Casey has shown) you'll be wishing you had a Blu-Ray player instead.

The market will figure this out, but not in 12 months, sorry Mr Pundit.

{Edit: I ironically realized after I posted that the words of someone linking to any website with "fanboy" in the name are probably deserving of a side of salt as well.  Oh well, it's the internet...}

Movies | Rant


Friday, March 14, 2008 3:37:05 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback

What an astouning letdown: I was on track for a red letter day yesterday.  My parts came in, it was sunny, and I drank some beer and BBQ-ed some poultry.  Hickory smoked BBQ chicken is among my favorite foods and I haven't been able to have it for months because my wife has a pregnancy aversion to most forms of chicken and it's also been ridiculously cold.  I went to best buy and got Bioshock only to discover later that one of my parts is either DOA, I've plugged something in wrong, or the specifications are lying about compatibility.  What a letdown, I expected to be fighting issues like MySQL on 64bit Vista but instead I have no POST.  Luckily my brother recently bought very similar Intel hardware so I should be able swap parts around to find out which piece is dead.  As much as it's a badge of geek honor to build one's own screaming development PC, I think in the future I will not do so during times like now where I have plenty of other things to worry about.



Friday, March 14, 2008 10:53:05 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Wednesday, March 05, 2008
IE8

I am blogging from IE8.

Many useful things are broken, such as FreeTextBox which I am used to using to write this article.

Also broken, ironically enough, are the dynamic menus generated by asp.net from a sitemap data source. That alone will force me into "Emulate IE7" mode until Beta 2...



Wednesday, March 05, 2008 4:06:34 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Thursday, February 28, 2008

I downloaded the update package and installed from that, no luck.  I started searching for other people with the same problem and found that it is quite common.  I passed over some of the insane "fixes" in favor of trying some of the easier approaches.  Apparently, the Zune installer requires that the Windows Firewall service be running during installation.  What a bizarre dependency.  I'm all Zuned up now and liking it.  Now my wife wants one.



Thursday, February 28, 2008 9:50:53 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, February 27, 2008

Got the Zune today.  So far I am underwhelmed.  My very fast and very up to date Vista Laptop failed to install the Zune software the first time.  The error code explains this could be one of a number of thigns: .net 2, encoders and a lot of other developer-sounding nonsense.  Since the Zune installer checks for updates etc. this is unacceptable.  I am directed to a page with a svelte 173mb download to get all of the correct versions at once. 

Downloading...

.NET | Rant


Wednesday, February 27, 2008 2:37:04 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Sunday, February 24, 2008
At some point recently I noticed the tremendous stack of CDs I continually burn to stay on top of Dot Net Rocks, Hanselminutes, and AVRant.  I have to admit (maybe I'm old?) I completely did not get the whole iPod/Mp3 player thing for the longest time; I'm a dinosaur who likes owning physical media and my ancient car does not have a line-in.   I do my serious music listening on a two-channel system if that tells you anything. For music and podcasts, though, I've been wanting a portable media device.  An evaluation of the reviews of the 2nd Generation Zune and the GDC2008 announcement that some form of XNA would be coming to all the Zune editions and I decided I needed to have a Zune. I had originally decided on the 80gb zune since it looked cool online and it would hold the entire history of .NET rocks and my entire digital music collection, but seeing them in person, the 8gb is so much sleeker and smaller and portable feeling I ordered that one instead.  The 80gb Zune would be like carrying a second Tilt.


Sunday, February 24, 2008 7:08:15 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, February 17, 2008

It's over folks.  Take your pick of any one of a dozen news outlets, or read this nice summary on Ars: http://arstechnica.com/news.ars/post/20080217-official-hd-dvd-obituary-a-matter-of-days-not-weeks.html

Sadly there's not that many titles that I'll be picking up after the inevitable announcements by Paramount and Universal.  Pitch Black and Chronicles of Riddick are guilty pleasures; King-Kong shall be a rental, as will Sweeny Todd and Transformers.  I won't buy the whole "Jack Ryan Collection" for my beloved Hunt for Red October but I'll netflix them.

This is good news for lovers of the high definition experience.

Movies | Rant


Sunday, February 17, 2008 4:50:46 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, January 28, 2008

CarSpot has just expanded onto the 5th floor of the building above the Ale House and behold, I get an new office.  I think this is one of the nicer ones; I think I managed to get this one because no one else was willing to sit next door to the President.

I feel like I need to put some UML diagrams up in order to make it feel cozy.  We got this space from a creative company who was up here previously.  We threw out all the iMacs but kept the general decor.  There's an Agry Coal Miner's Bowling Night theme going on everwhere but I kinda like it.

I used to play billiards a lot.  One of my uncles was a pool hustler, but that's a story for another day.  I think I'll be able to get back into practice.

We also have a full kitchen.  I'm still hiring too....



Monday, January 28, 2008 10:47:05 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Friday, January 04, 2008


Friday, January 04, 2008 3:12:17 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, January 03, 2008


Thursday, January 03, 2008 9:20:06 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, December 03, 2007

It would appear that AIM6 has the ability to completly fry a Vista isntallation.

http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1185469&SiteID=17 and other threads. Windows Media Player, the Network List service, WMI, and msinfo32 are (seemingly) permanently crippled by this according to various threads.  All of this because I got tired of Trillian misbehaving on Vista.  Now I know better.  I suppose I'll see if Office Communicator has made it's way into MSDN and start backing up for a rebuild.

 



Monday, December 03, 2007 12:12:15 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, November 29, 2007

Via slashdot: http://slashdot.org/article.pl?sid=07/11/28/2342211&from=rss

Of course the states are going to say that MSFT needs to be monitored.  The politicians gain tremendous power by punishing businesses and restricting free trade.  As Google and other companies come testify for the states against Microsoft  I'm reminded of several quotes, and a little company called "Standard Oil"

First, the quotes:

"Maybe I did well and maybe I led the battle but nobody ever said we were going to win this thing at any point in time. Eternal vigilance is required and there have to be people who step up to the plate, who believe in liberty, and who are willing to fight for it." -- Milton Friedman

"They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." -- Benjamin Franklin, Historical Review of Pennsylvania (1759)

It behoves every man who values liberty of conscience for himself, to resist invasions of it in the case of others: or their case may, by change of circumstances, become his own.
--Thomas Jefferson

Companies seeking to use government force to succeed where their own efforts in the marketplace have failed should be aware that what goes around, comes around.

Standard Oil:

I don't have the exact historical dates and percentages in front of me, but Standard Oil went something like this: Standard Oil had over 90% of the market for Oil in the United States at one time.  As the politicians and the public got behind the idea of Trust Busting, competitors to Standard Oil were slowly gaining market share, and the competition forced the price of oil down.  At the time the Standard Oil "evil monopoly" was broken up it had roughly 60% market share and the inflation adjusted price of oil was lower than it had ever been.  Politicians treated this as a great victory and it was sold to the public as a great victory.  The free market had already done what the goverment sought to do, and justice, property rights, and freedom were compromised to punish an "unpopular" company.



Thursday, November 29, 2007 12:40:58 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, November 26, 2007

Thanksgiving has come and gone and I had an absolutely smashing time with my family, especially my dad.  The apple (me) fell perhaps a bit further from the tree (dad) than he would sometimes prefer: I'm a college guy and mostly a software nerd, he got electronics training in the Navy and is more of a hard core electronics nerd.  I write software and he fixes GE's MRIs.  MRI is just insane to read about: Magnets who's strength is measured in Teslas, titanium/niobium coils, and superconductive circuits that lose less than .001% of a charge in 1000 years.  Dad and I completely rebuilt my center channel since I had just ordered a new sqauker (mid-range horn) diaphragm, and he was very disappointed in my soldering job so all the solder points were re-done and the internal wiring was cleaned up with zip ties and such.  If I ever sell the thing I'll take a picture of the internals to show what a top-notch job was done.  As part of this whole effort, he diagnosed some possible issues with a free osciliscope I inherited: someone smart enough to fix insane superconductive electronics is pretty handy to have around.

Another place where the apple was flung far is metaphysics: I'm an atheist and my father was raised (and raised us) in variants of the Babtist religion.  A lot of red wine into the second night of the visit we had covered:

  • Religion and why it has no bearing on my life and why that doesn't make me a bad human being
  • Technology
  • Wealth
  • Relativity (space time, the train and some of Einstein's gedenken experiments)
  • Health care: dad had a great (if depressingly Orwellian) observation about health care.  As the goverment gets more involved in our health care decisions, how long will it be before a helecopter flies through my neighborhood with a diffration horn  screaming "Time to wake up and exercise!!  Keep health care costs low, citizens!"   My solution: health insurance does not "work" using the current popular definitions of "work" without an army of healthy people bearing the costs for those who are not healthy.  Get the goverment out of the health care industry alltogether and you won't find yourself doing pushups at the point of a gun.

"You're not as far into la-la land as I thought" was my father's final judgement on my night of philosophy and politics.  I meet incredibly few Objectivists in day-to-day life, but the more scientific and rational someone's job is the more I find them coming around to my way of thinking.  The world is not populated by John Galts, we wouldn't recognize it if it were.  There are great masses of "Eddie Willers" who can be reached.  Recall Eddie Willers from Atlas Shrugged: 3rd in command, not a Prime Mover, always playing the supporting role to Dangy Taggart.  Eddie is rightfully counted by Rand as one of the heros of the book though.  He rides on the rails made of Rearden metal and he could never have created the metal, the bridge design, or the engines propelling the train, but he also does not seek to enslave the minds who did create these things.  My dad perhaps could not have invented the superconductor system in one of GE's MRIs, but he's smart enough to know what it took to make the thing and can fix the thing when it goes down.  He's smarter than 99.999% of the people out picketing for "universal healthcare." 

Inside a piece of technology like an MRI is a glimpse of the astounding effort, resources, and intelligence that it takes to make our standard of living possible.  I hope the scientists and engineers who work on them gain astounding wealth, and I hope GE makes hundreds of millions of dollars on MRI technology: it's the only reason this life-saving technology exists.



Monday, November 26, 2007 9:02:34 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Saturday, November 17, 2007

I suppose it's going to be fashionable to slam Microsoft until the end of time.  Check out this headline at Slashdot, which I have generaly enjoyed for 9 years or so:

Developers: C# Memory Leak Torpedoed Princeton's DARPA Chances

"In a case of 20/20 hindsight, Princeton DARPA Grand Challenge team member Bryan Cattle reflects on how their code failed to forget obstacles it had passed. It was written in Microsoft's C#, which isn't supposed to let you have memory leaks. 'We kept noticing that the computer would begin to bog down after extended periods of driving. This problem was pernicious because it only showed up after 40 minutes to an hour of driving around and collecting obstacles. The computer performance would just gradually slow down until the car just simply stopped responding, usually with the gas pedal down, and would just drive off into the bush until we pulled the plug. We looked through the code on paper, literally line by line, and just couldn't for the life of us imagine what the problem was.'"

Damn Microsoft and their bad products!  Why doesn't everyone just get a Mac so things will "just work"?  The commentary by the team that wrote the code is a bit more telling:

http://www.codeproject.com/showcase/IfOnlyWedUsedANTSProfiler.asp

So, the problem was not C#, but a bit of confusion in that subscribing to an event keeps a reference to the subscriber in memory, hence no objects can be deleted.  So this issue would occur in pretty much any modern managed programming language.  Am I wrong to occasionally be miffed at the constant misrepresentation of Microsoft's excellent developer technologies?

.NET | Rant


Saturday, November 17, 2007 10:34:33 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, November 07, 2007

I still can't officially blog about what we have going on, but obviously I'm trying to hire people into my department and am traveling.  We've beenn working quite a bit at the 'ole CarSpot lately to make some things happen and over time that takes its toll.  I've been in more meetings than is healthy (by USRDA standards) the past three days, culminating with giving a brief talk to 600 people in Atlanta today.  I'm back home and feeling a little bit recharged mentally.  No matter how much work has to be done inside Visual Studio, or MS-Project, or Power Point, or Thawte, or Expression Blend, it's very good to escape into the real world and spend some time interacting with entities who don't respond to Ctrl+S or CTRL-SHIFT-B



Wednesday, November 07, 2007 11:55:47 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, November 05, 2007

It is, if I am not mistaken, the year 2007.  Why is it that my fancy-pantz hotel room in downtown Atlanta does not just come with Internet access?  Why, further, do they outsource to these companies who's systems seem unerringly to not work the first time?  I don't travel a lot, but I have yet to have Internet access work in a room without calling the front desk or "iBahn" or whatever.  Business travelers flying business class staying in business hotels asking for the corporate rate are highly likely to expect to plug their laptops into the wall and have it work.



Monday, November 05, 2007 9:24:30 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [4]  |  Trackback
 Wednesday, October 31, 2007

One of my co-workers has decided to get with the 00s and start blogging.  Introducing David Snopek!  He is not a .Net developer, yet: silverlight+mono+DLR will win over even some diehard Microsoft haters.  David is my favorite sparring partner at CarSpot, so hopefully we can take our disagreements into the blogosphere for your entertainment.



Wednesday, October 31, 2007 1:06:09 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, October 21, 2007

I'm sitting at my kitchen table tonight burning about a dozen podcasts for my commute.  For a while I stuck to Dot Net Rocks but I've been throwing in the occasional Hanselminutes and Audioholics into the mix as well.  Tonight is the first time in a while I donn't truly have to do anything right now.  I still can't make any public announcements on the work situation but suffice to say my typical day is go to work --> pick up daughter --> put kiddo to bed at 8pm --> work till 12pm; throw in some required travel and marathon meetings and I'm more than a little tired.  I have two solid, relevant articles I need to complete and just haven't had the time.  In the next two weeks I'll be getting our new WPF based product into a demoable state and preparing for a talk in front of 600 people in Atlanta.

Tonight shall be spent catching up on Netflix night with my friend M. Chateauneuf du Pape and little else. 

Some people I know personally got an invitation to see Bram Stoker's Dracula on BD this weekend as one of my two Halloween movie nights this month.  I would encourage Milwaukee area nerds to try to make this one, in addition to the screening of one of my favorite films someone has promised to bring over a Halo edition 360 for some 106" front projection large and loud H3 action. 



Sunday, October 21, 2007 7:31:16 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, October 05, 2007

This is my 1st new toy today, The Rocket.  This is a mobile wifi hotspot and router with a cellular card, running some kind of Linux distribution.  I think I shall plug this into my car adapter and go work from the lakefront later.



Friday, October 05, 2007 9:33:09 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, August 29, 2007

Via FriendlyAtheist:

There's a good chance that people's notion of "human solidarity" will triumph in the end, slowly but surely.



Wednesday, August 29, 2007 9:20:41 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, August 28, 2007

I was left a comment tonight from someone saying "I want my money back - from your blog."  Apparently I have not written enough this summer to suit some!  I don't apologize for not blogging, nor for mentioning articles that will come out some day.  In the words of John Carmack "It's done when it's done".  I also try to keep the signal to noise ratio high as opposed to blogging about my trip to Starbucks or how fun it is to mow the lawn.    I haven't been able to blog at work lately, and at home I must confess I've been sucked back into acoustics for a while.  My acoustic treatment project is turning out to be much more complicated than I thought, as the science of the field has advanced far beyond "Master Handbook of Acoustics".



Tuesday, August 28, 2007 9:15:39 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Wednesday, August 08, 2007

My car stranded me on the side of the freeway this morning, the alternator belt dropped off.  My Subaru dealer suggested that 'rocks or animals' might be responsible.  Yeah, the gophers in my yard must have it in for me.  Anyway add 'car' to the list of things I've broken recently.   I got my projector back today at least, and chilled in the home theater for several hours tonight while I wrote some code.  I should be back in action on nearly all fronts tomorrow, my productivity has been abysmal of late.

  • I've been enjoying the HBO Series "Rome" via Netflix.  I could never comit the time to actually keep up with a miniseries while it's on, but HBO's original programming is interesting.
  • On Thursday the home theater recliners Jen and I bought come in.  They are very nice Palliser leather home theater chairs.  I've also made some cosmetic changes to the home theater, so I will experiment with lighting and try to take some decent pictures; I think this is going to involve me carrying lamps down there.
  • I often post about audio/video related gatherings, often as part of the Klipsch Forums group.  This week people from Indianapolis, Maryland, Chicago, and California are coming up for a Lake Country gathering taking place at my house and two others.  Friday at my place is the first event and we are watching "300" on BluRay, this will be sandwiched between what is usually hours of system tweaking, scene demoing, watching trailers, playing HD games, equipment auditioning, and audio geek stuff like that.  Lots of jazz and beer, and I should be fully recharged by sunday afternoon.

That's all for now.  I have WORKING HARDWARE so I can resume my technical articles.  I need to get some sleep now so I can perform my scrum master duties tomorrow.



Tuesday, August 07, 2007 11:15:51 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Monday, August 06, 2007

So I get a box from Dell today.  I open it, its a completely different system than mine, which they told me was still a shipping configuration, so I could pull out my old HD, stick it into the newly arriving system, and be on my merry way.  This new Vostro has Vista on it which if I remember right from Brennan's blog means I'm shit out of luck insofar as downgrading to XP, or at the very least in for a lot of pain.  The latest version of Mobile Device Center does seem to work with my CE 4.2 devices that I need, so maybe I'll just use Vista on the laptop.  Of course they seem to have given me a slower HD rather than the 7200RPM serialATA I paid for.  I don't think I'll purchase anything from Dell in the future.



Monday, August 06, 2007 1:35:18 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Thursday, July 26, 2007

It was suggested that virtualization with Virtual PC might be a solution to the problem of future hardware crashes (and re-crashes) making me unproductive for days on end.  First, the last I checked, Virtual PC does not support USB ports for performance reasons.  PDA and Digital Camera development is a lot of my time and requires those newfangled USB ports.  In addition to this drawback I like my programs to be responsive.  VS2005 is now very responsive with my new machines but Outlook 2007 (while I like the program and its functionality) is barely tolerable and can still hang the entire system for several seconds during a send/receive.This is after following the performance improving ideas from Scott Hanselman and others.  I still can't fathom how anyone actually likes web based email. 

Grant's idea of ghosting your machine once in a while got me thinking.  A fantastic backup scenario for hardware failure would be as follows: when you want to take a backup you use a tool (I'm thinking a new improved Virtual PC) and just tell it "build a virtual machine image out of my current configuration".  This would make one giant virtual drive and image out of all of your programs and files.  This file could then be backed up and in case of a catastrophic hardware failure you copy this image out of your backup and continue from your last backup from inside virtual PC on whatever hardware is available.  Equally swell would be the option (you would certainly not always want to depending on the age of your last backup) to take your work from the virtual machine image and installify it onto your real physical hardware after repairs were done.  Yeah, that would be great.

This may already exist but I don't think so.



Thursday, July 26, 2007 12:13:17 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Monday, July 23, 2007

After working for an amazing 5 hours my Dell roasted again, same issue as before.  I guess the issue was not the motherboard, and perhaps deals with the power circuitry or USB ports?  Dell is sending me an entirely new machine for the trouble of wasting quite a bit of my time, of course I won't be getting it for 10-15 days.  Despite their efforts to make things right I won't be purchasing anything Dell related in the future.  My last Dell laptop drank some Starbucks (my fault entirely) but it took three tedious round-trips to the repair depot to get it fixed.  Humoursly enough there is an insert in the repaired laptops when they come back that states that the unit has undergone "rigorous testing". 



Monday, July 23, 2007 6:48:29 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
My laptop is back from Dell in working order today.  Note to self: keep a Virtual PC with Visual Studio and some other necessities on it in case this happens again.  I should be able to get back to some pending articles now.



Monday, July 23, 2007 1:39:51 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Thursday, July 19, 2007

Yesterday, two days after my fairly new Dell shorted itself, my not so new desktop PC at home decided to die as well-either the motherboard, the power supply, or both took a dump.  I was working on some discrete tasks from home since it would save me the trouble of setting up VS and the various messengers and tools.  Two computers in 3 days, what are the odds?



Thursday, July 19, 2007 1:30:30 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Tuesday, July 17, 2007

My 3ish month old laptop decided to utterly fry itself, the USB ports went while I was looking at a PDA and then I was greeted by the very brief blue flash of a HARDWARE FAILURE screen before it retired and would not be reawakened.  The degree to which this puts me out of commission is disgusting.



Tuesday, July 17, 2007 9:49:01 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Monday, July 09, 2007

Dear Sony,

Thank you for punishing your early adopters.  Revisions in console hardware and specifications are no doubt unavoidable, however cutting the price on the PS3 mere months after it was released, along with offering a new version containing an 80gb HD and the full version of Motorstorm so soon seems like a bit of a slap to the 6million or so people who just bought these things.  The loud and clear message is to not buy consoles at launch. 

Gaming | Rant


Monday, July 09, 2007 10:05:40 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Tuesday, July 03, 2007

There are various talks online about ClickOnce improvements in Orcas.  I installed a Vista Virtual PC and Orcas Beta 1, which took a rather long amount of time since I had work to do on this PC while VPC was fighting for resources.  Details were scarce but I had hoped the gaping hole of no authentication mechanisms being supported by ClickOnce would be in some way addressed out of the box with Orcas and .NET 3.5.  No Joy, at least not without a little bit of work and digging.  There are references to the ability to customize the User Interface you see while downloading the application files, ostensibly for branding but I have some hope that this may also allow one to provide a user interface to responde to an authentication challenge.  If not, I'll begin brainstorming some kind of frankenstein solution that may end up being no easier than home rolling the whole shebang.



Tuesday, July 03, 2007 2:54:10 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, June 29, 2007

My company is growing to the point where customers are asking for features that may be useful to other customers and we'd generally like to be able to easily push out new versions of desktop software.  The immediate choices seem to be the Application Updater block, ClickOnce, and home-rolling a solution.  Since the App Updater block seems to want me to write code to determine when updates happen and such, and I'd like to avoid reinventing the wheel with a complete home grown solution, ClickOnce seems like a very good possibility.  I can publish to FTP from Visual Studio, I don't have to write extra code, I can specify Full Trust, force minimum versions, firewall friendly, etc.  Yes, its got a lot going for it. 

My first concern was that as a mixed-technology shop, we might not be able to use ClickOnce.  Our production environment is predominantly Linux and BSD based and it doesn't seem out of the realm of possibility that there might be some IIS specific functionality needed for ClickOnce to work.  Luckily this is not the case, and I have an important Internal tool running with ClickOnce deployment now.  To be safe I added .application and such as mime types in the Apache config but it seems only some people actually require this step.  For this initial deployment I found only two irksome issues:

1) IE only.  Some of the people here have Firefox set up as their default browser for some reason.  Clicking on the link to the Publish.htm in their email launches Firefox which happily displays the raw Application Manifest.  Cruising around MSDN I can see that this is addressed in .NET 3.0 or 3.5, which one is not clear.  It would also seem likely that there is a way to register an external program-handler for .application in FireFox, but if I wanted users to have to do work I'd keep on giving them MSI files.  This internal tool is also the Pilot for using ClickOnce for end-user deployments, and obviously those people would prefer things to be as easy as possible.  To some degree I can cordially invite internal users to go pound sand if they think the setup is too hard but any problem my customers have, no matter how silly or made up, becomes a real problem for me.

2) Security.  My apache skills are rusty.  Still, I was able to setup basic auth with .htaccess files in my ClickOnce directory with only minimally bothering our sysadmin.  See, I have this odd notion that if I'm going to put a public URL out there that any person could stumble on to or share with their friends, I'd like some form of authentication so I can at least tell who is sharing his password with 50 of his closest friends.  Let me be explicit in that I am not looking for some type of hack-proof system, I just want the ritual of authentication and authorization to be observed here.  Basic auth blows up when you try to Launch the ClickOnce app, and this is expected behavior.  Supposedly NTLM is the solution: protect the resource with NTLM challenge/response, tell it to "remember me", and you're on your way.  Well, not really.  The sysadmin, no longer so lucky as to be only minimally burdened by my experiment, was shanghaid to track down an NTLM compatible add on for apache and cook up some form of domain to authenticate it against.  We found mod_ntlm, we configured mod_ntlm against a Samba domain, we protected the test directory with mod_ntlm.  As soon as I enter the domain credentials and check "Remember this password" I hit launch, to be met with the same kaboom as Basic Auth.  Larry Clarkin reminded me that in the Internet Zone remember me won't work.  Adding to trusted sites does not help either, at least not in my experimenting.  ClickOnce has no mechanism for asking you for credentials, nor can it ask you to confirm continuing on to a site with a self-signed SSL cert, as you are sure to find ina  test environment.

It seems likely that I might be able to tweak IE settings to a custom level for trusted sites, but if my users could infalliably do that task I wouldn't need ClickOnce.  With so many excellent designs within .NET, it seems very odd indeed that there is no Provider Model for authentication, no Event we can respond to in order to handle self-signed test certificates.  I'm trying Orcas Beta 1 this weekend, but I'm not overly optimistic.



Friday, June 29, 2007 1:43:28 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback

Security is a funny thing, and I often wonder if things like UAC and all-managed operating systems are not dancing around the issue of needing fundamental re-thinking.  Here's a funny example: DasBlog occasionally craps out on me, or maybe it's my session timing out before I can type up a post and hit "post to weblog."  Long posts are always composed in Word first, and shorter ones that I still don't want to re-type in case of the occasional fluke are saved by Ctrl+A, Ctrl+C, to be re-pasted into the edit window in case of an issue.  Is it ironic that when this event just happened, IE politely asked me for permission to allow access to the clipboard, access to the content I had just copied out of IE to begin with.



Friday, June 29, 2007 12:55:07 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Wednesday, May 30, 2007

For a geek I sure don't get into many of the tech fads.  Ruby?  You can keep it.  iPod?  Not for me.  Zune, iPhone?  Whatever.

However, this, I must have.



Wednesday, May 30, 2007 9:21:08 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, May 29, 2007

As Larry points out some people just aren't down with using visual editors.  I'll extend this to say that the entire notion of the IDE doesn't resonate with everyone.  Ever since James Gosling proclaimed that "Anything serious is still done in emacs" the luddites have felt more comfortable in proudly claiming that an IDE such as VS2005 offers nothing that's not available from Vi+Shell Scripts.  I'm glad I don't work in that world anymore, but I suppose once you have convinced yourself that nothing new has been brought to the world of code editing in 20 years no Refactoring demo is going to change your mind.

Personally, I'd probably have to have a reference in front of me for creating WSDL but other than that I could hand-code anything I work with.  Editors and IDEs make me more productive.



Tuesday, May 29, 2007 11:42:01 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Friday, May 25, 2007

Priceless:



Friday, May 25, 2007 9:50:22 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, May 18, 2007

If you haven't looked at WPF and Expression Blend yet it's important that you do so immediately.  The fact that I can do those cool effects from managed code is fantastic.  For example, I had a tool written for our support teams that would allow them to right-click on a JPG in Windows and choose "View Exif" from the menu.  We have customers (if you're a customer and you're reading this, I don't mean you, I mean someone else) who call us saying that their images didn't get associated with a vehicle and this way they can see the image metadata and if the scanner was used right.  I thought it would be cool if this could be in the shape of my company logo instead of a rectangular window, with some partial transparency.  Ignore my pan roasted broccoli with ginger and chilli sauce partially visible through the form.

My first few hours of experimentation with Expression Blend and WPF are very promising.  Besides creating this non-rectilinear window you can scale and rotate about anything and give the appearance of things being detached from your main window.  Behold my incredibly confusing rotated ListBox and detached close button.  The rotated ListBox shows the danger in this tool: remember things like the <blink> and <marquee> tags?  Bad ideas that looked cool for about five seconds and later made the bad-design hall of fame will be oh-so-easy for developers to unleash on unsuspecting users now.  Mitigating that risk is the fact that it appears seperation of the Designer's World from the Programmer's World is cleaner and more appropriate than many past attempts at supporting this separation of labor.  This aspect is most exciting to me: I would love to be able to tell our marketing partner who does our graphics to just go crazy with the user interface and email me the XAML so that I can work on putting functionality behind a top-notch design and not worry too much about us unintentionally trampling each other's work.  This is very, very cool.

.NET | Rant | WPF


Friday, May 18, 2007 3:03:42 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback

I registered DamonPayne.net and pointed it to this site, in case you'd rather think of .net when you go to read about .net, or home theater, or politics, or see pictures of food, or something.

 

.NET | Rant


Friday, May 18, 2007 8:52:14 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, May 07, 2007

SOTO: Stay On Top Of.

Usage "I've got to SOTO the version 2.0 rollout to be sure its going well."

 



Monday, May 07, 2007 10:37:51 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, April 12, 2007

I am hiring into my department @ CarSpot.com in downtown Milwaukee. 

Right now I am hoping for one Summer intern and one full time person based on the work that is going on.  We are doing cool stuff and growing.  As we staff up we are hoping to have some Google-eque policies such as spending part of your time on fun research projects.  I'm setting up a Quake server tomorrow as well.  We are not a .com company, however.

Do you...

  • Have .NET skills in C#
  • Understand design patterns
  • Understand UML
  • Enjoy drinking beer (we are upstairs from the Milwaukee Ale House)
  • Like an ultra-flexible work schedule
  • Like a small company environment
  • Multi-task well (we all wear many hats in a small company)
  • Like working with NUnit, CruiseControl, NCover
  • Have interest in developing cutting edge stuff that is far ahead of its time?

Ok, I had to throw the last one in.  There is room for help in Windows Forms, Compact Framework, ASP.net web services, ASP.net web forms, some win32/C++  dev, and probably some things I'm forgetting.  Forward your interest to damon.payne@carspot.com

 



Thursday, April 12, 2007 3:53:10 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, April 11, 2007

I got a new laptop yesterday: Dell inspiron, 17" screen, core 2 duo 2.13ghz, 2gb ram@667mhz, 7200rpm serial ata drive, more 3d card than one needs unless one is playing Quake4.  Hmm, sounds like we need to install Quake4 at work for Team Building.  My previous laptop was on its 4th year of service, its 2nd round of ram and 2nd hard drive, with the 2nd one looking like it was on its way out due to more and more bad sectors being found by chkdsk.

Its amazing how fast Outlook 2007, Visual Studio 2005, etc. run with the fastest hardware Dell would currently sell me. 

 

.NET | Rant


Wednesday, April 11, 2007 12:26:41 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, April 03, 2007

I looked into getting a new laptop for work, and I'd really like to run Vista on it since VS2005 seems to be working fine now, however, one of the applications I have to support is my good old friend the Windows CE 4.2/Compact Framework application.  Mobile Device Center only works for Windows Mobile 2003 and later systems.  Active Sync does not install or work on Vista.  Just like when CF2 came out without CE4.2 support (thankfully patched later) I'm left in the lurch.  Curse you, Microsoft, for leaving a large number of people high and dry once again.

Luckily it seems Dell can offer Windows XP if you order from the business division, which I've never thought they were able to do before.  I could always get it w/Vista and wipe it right away but what fun is that?  Maybe w/Virtualizaiton I could create an XP install for working on this one product, but  I'm not sure how much hardware Virtual PC gives you access to though.  I guess I'll be trying it on my vista desktop.

{edit: USB is explicitly not supported for performance reasons.  Guess I'm running XP until my products sunset 5 years from now?  Give me a break, Microsoft}



Tuesday, April 03, 2007 11:55:39 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, March 30, 2007

For me, it comes down to a question of innovation and real-world improvement.  Is find . -name *cpp -exec ls {} (or similar) still the best way to find files on a computer?  If I want to know rougly how large a project is, is find . -name *java |xargs wc -l the best way to see how many lines of code the team has produced?  Is make the best way to group many files into a single logical output?  Are ex macros the best way to refactor your code?

Is James Gosling's statement that most real development is still done in emacs (Java developer's journal, July 2000)the most bullshit words to be spoken since "No one will ever need more than 640k..." ?

.NET | Rant


Friday, March 30, 2007 11:25:46 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Tuesday, March 20, 2007

I saw this first here: http://feeds.joystiq.com/~r/weblogsinc/joystiq/~3/103076806/

First, its my opinion that Microsoft absolutely did the right thing by not including HDMI when the XBox360 released.  The rollout of everything related to HDMI from a hardware standpoint has been rough and incongruent.  HDMI support in hardware (players, TVs, projectors) is only now reaching a tolerable point and would have hurt the Xbox360 when it launched.  Copyright holders are, of course, jumping up and down to get everything going over an HDCP enabled connection and the future of video and sound is HDMI 1.3 right now with its wider color depth and increased bandwidth for high definition audio.  I do hope they are making this an HDMI 1.3 device.

With the new price of $476 if you were to buy the Wireless adapter, the wireless controller/charging station, and the HD-DVD add-on your total price is $800.  Suddenly Sony doesn't look quite so crazy with the $599 PS3, do they?  Granted, you don't NEED to buy the HD-DVD drive for $199 but for $600 (HDMI Xbox+wireless controlers+120gbhd, 60GB PS3 with Bluetooth and Blu-Ray, both w/802.11) would you rather have 60gb more of hard drive space or High-def optical disc capability?

At any rate, while it may piss of the 6million existing Xbox360 customers its the right move for MSFT to make, and also in my eyes validates many of the PS3 design decisions.  It also means I may get an XBox360 to put in my home theater for Gears of War and Dead Rising now that I can (almost) get an HDMI version.

{edit: Tycho agrees with me and then some http://www.penny-arcade.com/2007/03/21/#22092}



Tuesday, March 20, 2007 12:56:35 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Wednesday, February 14, 2007

http://www.bloody-disgusting.com/news/8211

Yes, they are looking to make movies or a TV Series about the Dark Tower books.  I'm pretty sure there's no way this can turn out well, and so I'm sad.  I'd rather stick with my book and audio book versions of this 7 novel story.  I have a signed Michael Whelan print of Roland outside the Tower in my office and have read these more than anything except The Hobbit.   Why don't I think it can turn out well?

-Who would play Roland?  Roland IS Clint Eastwood, but Clint is past his time with parts like this I think.  My 2nd pick for middle-aged Roland: Christian Bale.  Think about it.  Jada Pinket Smith as Susannah?  Sean Penn as Eddie?  Tobin Bell as Walter?  James Earl Jones narrating?

-A TV Series?  The material in the books absolutely require an R rating meaning meaning the only way they can not suck is to air on Showtime (Like the Masters or Horror series) or HBO (like Sopranos, Weeds, Deadwood)

-I can't think of any King adaptations that have turned out well on film.  The Green Mile and Shawshank Redeption were not bad, but both dealt with much simpler subject matter.

Sigh.  Between shit like this and the horrible flood of re-makes-of-films-that-aren't-even-that-old and sequels to films involving none of the origial cast, crew, directors, or authors, it appears that I am doomed to see every single movie and literary icon of my life ruined.

Movies | Rant


Wednesday, February 14, 2007 10:50:13 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Monday, February 12, 2007

I took a friend and former client TV shopping this weekend at their request: people have gotten the idea that I keep up with audio/video stuff or something.

Anyway, at a certain local TV/Home Theater shop I walked in and confirmed my opinion that the Sony SXRD rear projection TVs have a fantastic picture and are very reasonably priced for a 1080p TV.  Of course as we walked around and discussed different things we were seeing on the unavoidable sales guy encounter happened.  The sales guy tried to give me a lecture on the TV including several horribly incorrect facts including "SXRD is Sony's image processing enhancements" and such.  My response that SXRD stands for Silicon Xtal Reflective Display and that it is Sony's proprietery implementation of the Liquid Crystal on Silicon (LCOS) idea and that it didn't include any "picture processing" that I was aware of was met with momentary disorientation and then more arguments on his part. 

I can understand that most consumers are dumb and the industry hasn't made the adoption of HD related technologies easy and its probably safe to start out with the assumption of an uneducated buyer, but when someone clearly knows what they are talking about the salesperson's role switches from "educating about the product" mode to relationship building or "here's why you should buy this from us instead of somewhere else" mode.  The salesperson saw me getting ready to attack and left us alone before I could ask if this particular model had HDMI 1.3 support. 

Shut up TV man, see if I bring another potential customer to your store any time soon.  I almost never meet a salesperson who knows more than I do or is more up to date (than you RSS) on audio/video than I am.  I don't mean that to be an arrogant challenge, because really its somewhat disappointing.  If I had more time selling home theater stuff would be a fun part time job, or perhaps I should get into contract Crestron programming to get an employee discount at one of these shops to subsidise my frequent upgrading habit.



Monday, February 12, 2007 4:12:49 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [5]  |  Trackback
 Friday, February 02, 2007

{edit: replaced sd with cf in last paragraph}

{edit: added Phillips as a BD hardware MFG and fixed typo of Toshiba model # and price}

I've taken a bit of punishment and head shaking for my decision to support BluRay for high definition optical storage.  The first such "silly Damon" conversation was two "deeper in .Net" events ago at a user group dinner where I got an earful.  My decision was based on careful research and thoughtful analysis.  You could call me an audiophile, videophile, Sony fanboy or whatever else you want, but right now BluRay is outselling HD-DVD by very large margins (3:1 and trending upwards) according to any and all metrics we have available to check.  These metrics are:

  • 20th Century Fox's proprietary market research (taken with a grain of salt since they are a BD supporter)
  • DVDEmpire.com tracks how much of each format they sell
  • Amazon.com makes sales data available through the AWS developer program (see http://www.eproductwars.com/dvd)
  • Neilson VideoScan (3rd party market research firm)

BluRay is selling great compared to HD-DVD and trending upwards.  Will this continue?  My magic 8 ball says yes.  So, for the people who think I am insane, let me summarize again.  I am a home theater person 1st, audio person second, gaming person next, "fanboy" last, and I happen to be somewhat technical.  These roles are the filters through which I studied the competing format data starting in early '05.

  1. Studio support:  I don't know what the BluRay Disc Association (BDA) promised to the studios (the Sony owned ones never had a choice) to get them to commit to being BD only, but it worked.   This may not be an exhaustive list but is just what comes to mind, I also don’t claim to be up on who owns who and which of these are just sub-studios, I’m tracking the # of distinct names I’ve seen on releases and in the news.  More exclusive content means more people picking BD when their favorite movies show up on BD only.
    1. Neutral Studios supporting both formats:
      1. Warner
      2. Paramount
      3. Vivid (porn)
    2. HD-DVD only studios
      1. Universal
      2. Some porn studios
    3. BluRay only Studios
      1. MGM
      2. Disney
      3. Lionsgate
      4. Sony Pictures
      5. Colubmia
      6. Tri-Star
      7. ScreenGems
      8. Fox
  2. Consumer Electronics Manufacturer support.  More choice means, well, more choices.  It also means CE manufacturers competing with each other which as a Capitalist I view as a good way to get better products sooner.
    1. Neutral MFGs:
      1. None, unless you count LG’s dual format player
      2. HD-DVD only
        1. Toshiba is essentially going it alone, with rumours that Onkyo will release a player in late 2007 or 2008
      3. BluRay only
        1. Sony
        2. Panasonic
        3. Apple
        4. HP
        5. Pioneer
        6. Samsung
        7. Phillips
  3. The features of the specs themselves.  This is what initially made the decision for me.  Let me hit the highlights.  The same video codecs are mandatory on both formats, despite HD-DVD fanboys trying to spread rumors that BD only supports MPEG-2. I own several stunning MPEG-4/AVC/VC-1 etc. titles on BD. Both support DTS-HD and DolbyDigital+, with uncompressed sound being optional on BD.  I have not heard of any uncompressed sound on HD-DVD.

Feature

BluRay

HD-DVD

Disc space

25GB single layer/50GB dual layer

15GB single layer/30GB dual layer

Maximum Bitrates for video

40mb/s

28mb/s

Total Video+Audio Rate

54mb/s

36.55mb/s

Interactivity

BD-J

iHD

Ignore any larger numbers you’ve seen announced from either format group.  If you want to get into a prick waving contest BD has announced up to 200GB and HD-DVD up to 51GB.  These specs require more than two layers, are targeted at data archival and certainly won’t work on your home players.

Now, if you do research on the HD audio and video codecs supported you’ll see this is a problem.  The maximum video bitrate supported by things like VC-1 for 1080p/60 ends up being 20GB of storage per hour of HD video.  That’s 40GB for a 2 hour video.  Then add the max bitrate for DolbyDigital Plus sound, which is perfect sound identical to the studio master, that’s 18mb/s which means another 8.1GB per hour of high definition sound with eight discreet channels or 7.1 if you prefer that nomenclature.  Now, if we need maximum bitrates for video and sound, we are looking at 58GB for a two hour movie.  This is before extras(interviews, audio commentery, deleted scenes, whatever), this is before we get The Fellowship of the Ring coming it at 3.5 hours.  How do they fit?  How does King Kong look and sound great on HD-DVD despite being a 3 hour movie and only having 30GB to work with.

The truth is that even if you are trying to use the maximum bitrate for video you probably won’t.  The video codecs are all using compression with a variable bitrate.  Some scenes will be easier to compress than others.  The PS3 has a neat feature that allows you to watch the audio and video bitrate on the fly.  Some scenes will look great at 8mb/s video, and some scenes will jump to much higher numbers and look no better.  Obviously not all scenes are going to compress equally well, and things like amount of film grain in the picture will greatly affect the rate of compression. 

My BD copy of The Descent averages something like 36mb/s for video and is obviously stored on a dual layer 50GB disc.  Add the DTS-HD audio and the various “extras” and disc is close to being full.  The Descent contains a lot of dark-lit scenes which is difficult to encode.  I watch movies in my home theater on a 106” projection screen so any flaws are going to show themselves quickly and more apparently than on a smaller display.  I cared about the studios having the maximum amount of space to give me the highest quality audio and sound and not script to fit it on disc, and not have to store long movies with lots of special features on two discs.  Besides the space, the higher max-video and max-total bitrates mandated by the spec obviously allows the extra space to be used “for real”.  The extra space matters for higher quality audio, video, less disc switching and more HD extra features.  To me The Descent in my home theater is the first example of video and audio that would not be possible without the storage space and higher bit rate of BluRay.

Interactive features: from what I’ve seen, HD-DVD currently has better interactive features, and from what I read from format neutral studios like Warner, iHD is far easier to program for (or at least as better tool support, which I count as the same thing) than BD-J.  HD-DVD also has a PIP thing that’s harder to do on BD; Plus one Point for HD-DVD. However, I can count on my fingers the # of times I have watched any kind of commentary or anything so this does not matter for me personally and I suspect  no t for  most other home theater people either.  The only feature I care about is the “pop up menu” that allows me to pick a new scene or change audio options or turn on/off commentaries while the movie is playing without going back to the main menu.  Both formats have this.  Bring on the good movies with high quality audio and video.

4.    Marketing strategy, position, etc.

1.    But HD-DVD is cheaper!  A little, yes, however this often matters little when selling to the early adopter crowd.  Keep in mind also that when the first few players were out the Toshiba HD-A1 was $499 and compared to the $999 Panasonic BD-P1000 that did look like a major price difference.  They forgot to mention that the HD-A1 did not support 1080p/24 or 1080p/60 output, but 1080i only.  To get 1080p you needed to buy the HD-XA2, at $999, which is what the Samsung has been selling for since a few months after launch.

2.    But the BluRay physical media will cost tons more!  Well, with the average cost per disc (using Amazon.com data) fluctuates in the plus or minus $2.50 range vs. HD-DVD, I think we can safely call this theory debunked.

3.    The PS3: Obviously putting BD on the PS3 was a huge risk but it seems to be paying off.  Skepticism ran far and wide as to what the attach rate would be for people watching movies on the PS3.  The market seems to have spoken.  Anecdotally: I would have waited until late Feb to buy a PS3 except that I was eager to watch BD in my home theater.  I own 6 BD movies, 0 BD games now and have watched many more via Netflix.  Virtua Fighter 5, MotorStorm, and Lair will be my first game purchases starting Feb 20th.

4.    Studio support: in addition to the PS3 effect, the fact that huge movies like Spider Man and Casino Royale are coming out on BD only can’t hurt.  Fox owns the distribution rights to some huge franchises like Aliens and Star Wars, Disney is releasing some huge films like Pirates of the Caribbean and Cars in the coming months.  The only films that are arguable bigger like The Matrix and Lord of the Rings franchises are pledged for simultaneous release on both formats by Warner.

5.    Finally, is BluRay important to gaming?  The first major PS3 title, “Resistance: Fall of Man” took up 17GB on disc.  If you install the new Splinter Cell on the PC it takes 14GB.  Hint: that won’t fit on DVD.  I think Gears of War shows us the space is not necessarily needed to look better but developers are finding cool uses for the space.  The developer of “The Darkness”, an upcoming shooter says: “Yeah, well Blu-ray offers us around 25GB to play with, so we're looking to license old TV shows, adverts, and cartoons to build entire TV channels in the game. You can actually turn on the TVs in the game and watch a film, watch a TV series, anything you want really. It's a little bit gimmicky, but at the same time, it's a really cool feature. Also, we tell mission-specific information through the TVs where it's needed.”

Are both optical formats doomed by content downloads?  Maybe in the long run, but right now most home people do not have the bandwidth or the patience to download an equivalent quality movie.  A friend of mine even suggested that optical formats are doomed because CF is becoming fast and cheap and ubiquitous and we’ll be purchasing movies on CF cards in five years.  Many HD-DVD fanboys are so dedicated that cruising some forums I see lots of “If BD wins I’ll stay on regular DVD forever I’m never buying Poo-Ray Sony sucks blah blah”.  For my part, I did my best research and guesswork to pick the winner, but I am a home theater nut and HD-DVD looks so much better than standard DVD of course I’ll jump on HD-DVD if it wins.

But it doesn’t look like it’s going to.

   



Friday, February 02, 2007 1:16:59 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Tuesday, January 30, 2007

http://rss.slashdot.org/~r/Slashdot/slashdot/~3/83995708/article.pl

Interesting that software is "at a dead end" is the analysis based on this news.  Why not rather announce that most software/programming tasks are fundamentally sequential and not paralel in nature, and conclude that there is a tremendous disconnect between what's going on in the hardware and software communities?



Tuesday, January 30, 2007 11:14:05 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Tuesday, December 12, 2006

A friend just sent me a link to this Channel 9 video and I watched the first couple of minutes.

http://channel9.msdn.com/Showpost.aspx?postid=261254

For those of you who don't have 40 minutes to watch this, its a video interview with Frank Savage @ MSFT, who heads of the XNA development team.  Frank worked on Wing Commander III and has a ton of street cred in the gaming industry.  MSFT wisely continues their trend of hiring the smartest people with the most cred and vision that they can find.

Anyway, allow me a moment of self reflection.  When I was 11 I made a spaceship game on BASIC for our 8086 PC.  It had colors and a cool spaceship I drew using arcs and lines, and the spaceship shot out this cool lightning bolt when you hit the space bar.  I got it to draw terrain (fixed skyscape that repeated over and over again) and was working on enemy spaceships.  At the time, I didn't understand that game developers give the illusion of many things happening at once by giving every object in the game world a chance to update itself every "tic" and that redrawing as often as possible was responsible for seeing various things moving on the screen at once.  I was trying to see if there was a way to get threads to work on BASIC, the old BASIC with 10 PRINT "HELLO", 20 GOSUB 2000 so I could have one thread per enemy spaceship and bullet.  Hey, it made sense at the time!   This caused me to wonder, where the hell did I go wrong?  I could have been one of those guys you read about, certainly no John Carmack in level of skill or innovation, but if I'd stuck with game programming maybe MSFT would be hiring me and people would say "Yeah, wow, you're that guy who worked on CornBlaster II" or something like that.  Oh well, I suppose I'm still young, if I only I could get off my ass and stop playing FFXII long enough to get back into game programming after an 18 year hiatus.



Tuesday, December 12, 2006 3:23:42 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, December 11, 2006

The Wii and the PS3 are impossible to get right now.  Rewind a year, so was the XBox 360, rewind further and so was the PS2 and the Xbox before that.

What is the point of launching to HUGE customer demand with an infinitesimal numbers of units, then spending marketing dollars on top of that, as if you needed to stir up demand?   What is the point of making the launch for the holidays when all you have to offer is a small quantity of units that you would have sold out of anyway?

I'm chewing on the idea that its done on purpose.  Think about it: you have a new console, possibly a new online service, they are almost certainly going to have some bugs at first despite all your testing efforts.  Why not produce only a limited # of consoles so that any errors are caught and fixed in 200,000 consoles instead of 2,000,000 consoles.  The first people to buy are essentially un-paid beta testers. By releasing in such limited quantities, you are also being assured that only the people who want your product very, very badly are going to get it.  No one is going to casually walk in off the street and buy your new console on a whim and be upset.  The guy who camped out in front of best buy to get his new console isn't going to say "screw it" and take it back if it overheats or has some quirks.

Thoughts?



Monday, December 11, 2006 10:37:42 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [5]  |  Trackback
 Tuesday, December 05, 2006

Why, oh why, is it that I cannot get a version of dotnetfx.exe that does not include the ASP.Net runtime and such?  It would be nice for my end users if such a thing existed.

.NET | Rant


Tuesday, December 05, 2006 3:57:45 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, November 13, 2006
PS3

Despite being a Microsoft FanBoy, I have long enjoyed the Playstation franchise.  While I don't have the time to procure one by camping out the video of Final Fantasy XIII has convinced me that the PS3 is going to ultimately be the dominant platform yet again.  There aren't any launch games I'm interested in but if I saw one sitting on the shelf at Target I'd probably pick it up just for a BluRay player.

Note to Sony and MSFT: you suck when it comes to releasing your consoles.  Sony expects to sell 7,000,000 units as quickly as they can make them and I see no reason to doubt it.  Why, then, launch with only 400,000 units in the US?  That's 8,000 per state if distributed evenly, and how many BestBuy, KMart, Target, Walmart, EBGames, Toys 'R Us are they then split between?  What's the point of advertising and such when not even half of the "very hard core gamers" will be able to get one. 



Monday, November 13, 2006 1:23:31 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, November 09, 2006

Note the strange silence after yesterday's elections.

Where are the broken voting machines and screams of foul play?
Where are the people turned away from the voting booth by scary people?
Where are the misleading ballots that trick you into voting for the wrong candidate?
The hanging chads?
The hacked-into diebold machines?
I guess those only happen when the republicans win the day.  How did we get through yesterday with only a single recount?  I guess those things only happen when the republicans win the day.  A republican victory, we should believe, is a sham, a proof of foul play, an abomination impossible to conceive.  A democratic victory is an affirmation, a proof of the righteous mandate of the people.

Oh well, back to writing code.



Thursday, November 09, 2006 11:43:32 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, November 08, 2006

In Wisconsin here, we re-elected our Governor, and across the nation democrats are exhalted in their wins in House and Senate.  Somehow, I don't expect much to change.  The democrats have gotten more conservative and the republicans have started spending more money and thumping the bible.  They both serve the same corporate masters anyway.  Politics has turned into a footbal game beneath a 3-ring big top where team loyalty drives most discussion.  For my part, I don't vote for the DemoPublicans/Republocrats anymore.  I voted for 3rd party or independent candidates across the board yesterday.

My perspective on the democrat wins: I'm glad that flying cars, global happiness, unprecedented prosperity, meals in pill form, and universal harmony are just around the corner now!  I don't know which I shoud do first: go ahead and go out to spend $$ against the increased prosperity that is undoubtedly a few months away now, or maybe book my honeymoon in Iraq since it is probably about to be super-peaceful and friendly to westerners in a few weeks, or hell, I think I'll just go lick some doorknobs since the price of health care will be plummeting in a few hours, those doorknobs will be in Grand Central Station since the 85-cent-per-gallon-gas that's about to go on sale will make my roadtrip very affordable!



Wednesday, November 08, 2006 12:50:49 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, November 03, 2006

So, this weekend I will be drywalling my home theater room.  This is the last step before I can paint it and subsequently watch The Matrix on my 106" screen.  The effort took a little longer than I wanted and cost a little bit more but I'm better off for the experience.  I would upgrade myself to Moderately Handy now.  I was trying to get this all done before Thanksgiving which will be a challenge since I am also doing some work from home and planning a wedding right now and those things must take priority.  I was hoping to just be able to pay someone to do the drywall. 

I got three quotes.  The cost, of course, was at least three times what I expected a one room job to cost.  And people think software is expensive and goes over budget.  So, I have 35 sheets of gypsum hardboard in my basement right now and I'll be spending at least two weeks mudding and sanding after its hung.

 

 



Friday, November 03, 2006 2:21:36 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [5]  |  Trackback
 Tuesday, September 12, 2006

If you know me, you know I am an audio nut.  A peak at my living room (pictured here) might give you an idea I'm not well in the head, let alone the lunacy involved in the custom home theater that's being built in the basement right now.

The world of audio is a great place to observe tons of Snake Oil being sold and a sad, sad departure from the available Science that could guide us towards better sound.  Its not unlike many areas of computer science, where the Morts have never even heard of the science their day-to-day work is based on.  If you know SQL experts who are great at their job but who weren't aware that the concepts come from relational algebra, set theory, etc. then you know what I mean.

Over the past year I've become very interested in the effect the listening room has on sound.  Audiophiles like me spend a fortune on equipment that has perfect frequency response and near-zero harmonic distortion then put the system in a room that creates 30db peaks and valleys and flutter echos that ruin the stereo image, the list of room problems goes on and on.

I recently created a Room Mode calculator for my audio site, http://www.KlipschCorner.com/.  Room Modes are essentially the frequencies your room will cause to sound louder than they should due to the dimensions of the room.  For example, a 60hz sound wave is 19 feet long making a room with any dimension being 19feet a bad call.  Rooms with the common 8ft ceiling are tough to treat due to the frequency ranges being close to 8ft or 4ft.  A room mode calculator is useful when planning a new listening room because one can quickly see if there will be room modes at any "problem" frequencies and also see the distribution of room modes, where an even distribution is desirable.

There is a graphical component as well as a tabular component.  My hosting provider, while their service is great, chose to license a rather poor charting utility, so if anyone wants to send a free license of Infragistics my way you'd be saving me a lot of pain.

You can see the end results at http://www.KlipschCorner.com/Tools/ModeCalc.aspx and I suppose I can make the KlipschCorner.Acoustics library as it stands now available via some open source license.

I wonder if DirectSound could be made to do some time-domain analysis (using test tones and a microphone for input) for calculating sound decay rates vs ambient noise in a room?

.NET | ASP.NET | DirectX | Rant


Tuesday, September 12, 2006 9:41:47 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [6]  |  Trackback

Its not like me to not blog like this, man have I been busy.  Its time for an update.

My new title is Director of Mobile Technology at CarSpot.com here in Milwaukee.  My mandate is to create a .Net development department for Mobile, Web, and Desktop development, establish code guidelines, architectural guidelines, and best practices, try to get some best practices carried into the other technical departments, etc. 

So far I have re-architected and re-written one of our products, and am in the process of doing a 50-client release of this product.  Fifty units is a big deal on this product so I've had my hands full.

Generally, I'm hoping to have a better chance at "doing things right" than I've ever gotten as a consultant.  At a product company, where the product IS the focus, its easier to convince management to invest in getting the right tools and going back to refactor things and all that.  Contrast this to consulting where "Oh that damn web site project for FY07 planning" is always being pushed out far faster than is practical and quality of product and quality of life always suffers.

I have some long overdue technical stuff coming up next.



Tuesday, September 12, 2006 9:27:24 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, August 01, 2006

private const string DOLLAR_SIGN = "$";
private const string COMMA = ",";

Hmm...

.NET | Rant


Tuesday, August 01, 2006 1:11:20 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback

Which bit of code do you think is more maintainable by someone other than the original developer:

if(_speakerTypeCode == 543678){

//do something

}

or

enum SpeakerTypes {

HornLoaded = 543678,

Electrostatic = 12334
}

if(_speakerTypeCode.Equals( SpeakerTypes.HornLoaded)){

//do something

}

I'm still amazed at some of the things I find in code, sometimes even my own code.  The above monstrosity is not mine, although I do occasionally find something abhorrent in my own code.  I read a blog recently, I believe it was the Shade Tree Developer, who said that this is a great way to gage personal growth.  Go back and look at code you wrote and see if you find things that you'd never do today.

.NET | Rant


Tuesday, August 01, 2006 11:52:54 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [52]  |  Trackback
 Friday, July 28, 2006

I really don't like the C# "as" operator.  I have to admit that I made it a point not to use this solely because it made me have a brief moment of "VB.NET flashback".  I personally have a strong dislike for VB.NET syntax but that's just my preference.  Because of my VB.NET bias I did not look at the C# language spec to see if "as" functioned differently from

string foo = (string)myType;

As it turns out I tracked down a difficult bug in our system that was due to the fact that using "as" returns a null reference rather than throwing a class cast exception like c-style casting does.  Granted part of the problem was people swallowing exceptions in code, but I'm wondering: under what circumstances would one want the behavior that "as" provides?

.NET | Rant


Friday, July 28, 2006 9:35:19 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [4]  |  Trackback
 Tuesday, July 25, 2006

I am doing a new gig at the Land of Beer, Miller brewing.  Sean McCormack got me involved in an agile project here on a short time frame so I've not had a ton of time to blog lately.  There's a lot to talk about as this project slows down though.

I cannot say that I am a test driven development expert by any means.  However, upon arriving on this project and trying to retro-implement unit tests for a bunch of code that had no tests before I have come to a new understanding of the value of unit tests for regression testing, and for a specific aspect of the TDD paradigm.  Upon arriving and going over the projet I'd seen that the team lead was printing out class diagrams, going through the unit test packages, and checking off Method names that had a test.  I had kept meaning to look at code coverage tools in the past and the sheer amount of tests odewe needed made me look a little more seriously.  As it turns out they were already using TestDriven as part of the developer setup.  TestDriven is by itself a great tool and will have a place in my toolbox henceforth.  TestDriven installs an interesting right-click menu in VS2005 that gives you various options for running tests at the class/method/project/solution level.   More interesting to me at the time was the "Test With --> Coverage" option.  If you don't have Team System it tells you to go install NCover which I had not used before.  NCover is actually a very solid code coverage tool.  You can probably see where this is going and certainly TDD experts will file this under the "duh" department.  TestDriven + NCover + NUnit = tells you how much of your code is covered by unit tests.  NCover is smart enough to show you if, for example, you covered all the various "if()" branches inside a method and such.  This is Very handy and not just for unit tests.

We found, in general, that the application had "thong-level coverage" from unit tests; as any good christian will tell you the thong leaves too much uncovered!  We strove to get it to "Burqa-level" coverage and made a lot of progress before the timeline demanded we start on new development.

Upcoming rants:

"About Casting"

"Funny Stuff I've heard at work recently"

"Indirect paths to success"

Looks like I have some invalid HTML in here somewhere, the visual styles on the links are hozed.



Tuesday, July 25, 2006 9:32:51 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Thursday, June 29, 2006

I just completed an "alpha"  version of a for-fun website related to my audio hobby: http://www.klipschcorner.com/

I have not had to do much in the way of web design for a while but I set out to make this design work using only CSS and DIV tags, tables are the way of the past or so I read.  I had a fairly frustrating time at this.  The last time I had to do any kind of real layout was a couple of years ago.  It seemed that you could pretty easily support a good layout with Firefox and IE without creating conditional code by using some basic CSS stuff and tables for layout.  With the current CSS implementations of IE, Firefox, Safari it seems that I'm back in 1998 with even some very basic things looking radically different in each browser.

 



Thursday, June 29, 2006 12:19:28 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, June 19, 2006

For various reasons I've had to get back into unmanaged code in C++.  This turned out to be a lot worse than I thought it would be.  My college courses were in C++ and I did a little OpenGL programming using visual C++5 or 6, and my first job was doing a lot of cool C++ stuff.  However, that was most on the Solaris platform using stuff like Vi, the sun workshop compiler, and the RogueWave libraries for things like Time, Strings, and Money.  I never got into MFC or programming C++ on Win32.  Obviously things like LPSTR and "DEF" files and such are completely new to me, if it wasn't for Chad Albrecht I would have lost my mind already.  When I take a look at the things that are coming up on my plate, though, I can see that this isn't necessarily going to just go away, SO...

If anyone can recommend some good literature for getting into MFC and Win32 programming using eVC4 and/or VS2005 I'd appreciate it.

.NET | Rant


Monday, June 19, 2006 12:05:11 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Tuesday, May 09, 2006

Today I had my final straw with Visio's UML support, mostly in how it attempts to "validate" my model for me.  The UML support appears to be an afterthought anyway.  I need to create some models for posterity and leave behind the models as well as instructions on obtaining the (hopefully free or cheap) tool to open the models.  My last Real modeling was done in Rational which is not an option for me right now.  I have used ArgoUML in the past and ultimately didn't care for it.  My next attempt today was Together's Design tool plug in for Visual Studio.  I had to register to download the eval , strike one.  I had to install some ridiculous Borland specific download manager Active X plug in, which scored me a completely corrupted download the first time I ran it, strike two.  Upon installation either the very simple License key instructions (save this file to My Documents) or the license key itself were wrong and the add-in wouldn't run due to license validation failure, strike three, uninstall.

I then headed over to http://www.uml.org/#Links to find a list of tools supporting UML 2.0.  I am currently downloading "StarUML" and I'll report back based on what I find.

I'm still disappointed that Microsoft does not have a REAL modeling tool to compete with Rational/IBM.  Visio and the Class Designer in VS2005 don't cut it.  If anyone has suggestions let me know.



Tuesday, May 09, 2006 2:48:13 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Sunday, April 16, 2006
Lab
I just ordered a desk ( see here) for the research lab in the new house.  I am very much looking forward to doing some research projects and finishing some toy projects.  It seems that I am very close to being utterly caught up with all of my side business clients, in which case I can move back to doing things for fun.  I feel like I have been sorely neglecting the research and growth side of my career in favor of making $$ and maintaining the status quo.  This is no good.  It is whoring, not geeking, when every time you turn on a computer the billable rate is ticking.


Sunday, April 16, 2006 7:04:56 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, April 13, 2006
I am finally writing a post from my new house.  My furniture is not here yet but I did have the foresight to take care of important things like making sure cable internet was h00x0r3d up.  I had to hang out with the city inspectors for a while to get occupancy for this weekend but here I am.  Over the next week I will be setting up my lab.  One's environment has a large effect on the work one does and general effectiveness and frame of mind.  I hope to be able to leverage this to produce a couple of cool research projects this year.


Thursday, April 13, 2006 8:46:57 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Friday, March 31, 2006

I usually do not post my unqualified ramblings on here but a thought occurred to me today regarding a problem I'm having with on of my mobile systems.  There is a great deal of data exchange and I have taken pains to ensure that no data is ever "lost" in the process.  If a network connection dies at the wrong time the worst thing that happens is that the data exchanged did not complete and the PDA OR server (never both) each have an incomplete picture of the data in question.  When this occurs, I recover the complete picture from a transaction log and go on with my life.

However, I was thinking that it would sure be great to be able to treat the whole data synchronization process as one great big distrubuted transaction.  A distributed transaction involved a wifi network, an over-the-air CDMA connection, web services and SQL server.  There are a hundred sticky little issues that would go along with that strategy and at least a hundred very good reasons not to pursue the idea but it certainly has some allure in my mind as well.  The way my data sync is set up, unfortunately, the transaction cannot be just on the server nor just on the client, they must both agree to commit or roll back if the agreement cannot be procured in a reasonable amount of time; it would be much easier if I could just "make sure the handheld was done", etc.

If anyone out there has mused before on distrubuted transactions involving compact framwork applications I'd be very interested in where your thoughts led.



Friday, March 31, 2006 1:21:59 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Monday, March 27, 2006

This was somewhat annoying.

Regular expressions are one huge area where I know absolutely nothing.  I used to get by in my unix days with stuff like "find . -name *fork* -ls {} " but that's about it.  Tonight I was working on a toy website and got my PasswordRegularExpression right in my <asp:CreateUserWizard/>, however it would still complain about the password.  As it turns out the AspMembershipProvider can specify its own password requirements which trump what you put in your Controls.  Clear as mud.  You can see this in machine.config and override it in your own app if you please:

<membership>

<providers>

<clear/>

<add name="AspNetSqlMembershipProvider"

type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

connectionStringName="LocalSqlServer"

enablePasswordRetrieval="false"

enablePasswordReset="true"

requiresQuestionAndAnswer="true"

applicationName="/"

requiresUniqueEmail="false"

passwordFormat="Hashed"

maxInvalidPasswordAttempts="5"

minRequiredPasswordLength="5"

minRequiredNonalphanumericCharacters="0"

passwordAttemptWindow="10"

passwordStrengthRegularExpression="" />

</providers>

</membership>

Seems somewhat annoying for "configurable things that are there to save me time."

Also, I must get a regex book immediately as my lack of knowledge on this topic wasted all of my playtime tonight.



Monday, March 27, 2006 9:22:16 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, March 23, 2006

This is a follow up to my previous post.  After today, I have a small distant idea of how NASA must feel when a "trivial" item causes a big problem.  My trucks in Detroit were having issues today, and long support calls were getting me nowhere.  I finally came around to thinking that our data synchronization is time-based (rather than GUID based like Merge Replication) and wondered if I had not setup the Detroit units properly.  All times are convered to UTC on the units so there is no hoo-ha for trucks outside of good ole  GMT - 6 where the server lives, and on my checklist for building new handhelds is a bullet point "Verify time zone".  I did this however forgot to verify Time as well so my units had GMT -5 but the hour set to the same hour as current local time.  A small thing caused a very big SNAFU today.  Obviously I can't trust truck drivers (nor myself, clearly) to not screw up the time on the units and I should automate the system time from the backend.  Things like time-zones for nation-wide deployments will play a larger role in my testing strategy in the future...

 



Thursday, March 23, 2006 6:12:48 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, March 02, 2006

I personally feel that a good debugger and ability to debug is one of a programmer's best friends.  This includes debugging onto Windows Mobile devices via ActiveSync.

Recently one of my clients got Windows Mobile 2005 on some devices we ordered.  I set about making sure our application would run properly on it. This application happens to communicate over a wireless network with several different pieces of hardware using various proprietery protocols.  I have gotten used to cradling the device, starting a new debug session in Visual Studio and watching bytes flow back and forth over sockets with the wireless connection.  This new gem we received (A Symbol MC9090 with 625mhz Xscale) insisted on shutting down the wireless card whenever the device was cradled.  This makes it hard to communicate with my hardware, which is seperated from the corporate network and on its own WLAN for very good reasons.  Assuming this was a setting I could change, I contacted their support and got the following disheartening response:

  • Microsoft will not allow us to change this functionality.  In short, they will not allow an AS (Activesync) connection simultaneously with a WLAN connection.
  • Also, please note: This cannot be corrected by a GRIP request (custom product request) or any other mechanism.  At the present time if we change this functionality we will fail Logo Certification and therefore not be able to sell the resulting device.
  • I also found some MSDN articles alluding to Microsoft's claims that "some of their Enterprise customers" had asked for this feature for security reasons.  I have trouble imagining what type of customer asked for this change, but so be it.  It seems ludicrous that this is not a developer-overridable item.  There do look to be some hoops one can jump through (if one is very nimble) to get debugging over WiFi to work on CE5 based devices.  I could also ruin my test environment by putting it on the corporate network, or get cozy with platform bulider and try to make an OS image that does what I want just for testing.

    The developer story for Mobile and Embedded systems could still use some work.



    Thursday, March 02, 2006 11:20:42 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
     Thursday, February 09, 2006

    http://www.wi-ineta.org/DesktopDefault.aspx?tabid=89

    A former client called me today to ask if I knew anyone with X,Y,Z skills who was looking for a work.  They weren't interested in consultants at this point so I said I didn't off-hand and directed them to the Wisconsin .NET user's group job board at the above URL.  Note that none of these are entry-level jobs that I can tell.  Employers: you are burning the future to stay warm.  You are assuming someone else will do you the favor of training the recent grad and you can scoop them up when they're no longer green.  Everyone else is making the same assumption and the symptom is kids not going into CS related degree programs.  The result is the President noting in his state of the union address that congress needs to let us import "smart folks" for "Jobs that are having trouble being filled here."



    Thursday, February 09, 2006 12:30:47 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
     Saturday, February 04, 2006

    A lot of developers working with these great modern garbage collected single-inheritance object oriented programming languages on big powerful servers may go their whole career without actually seeing an OutOfMemoryException.  This will happen from time to time on the compact framework and I'm happy to say I typically pay attention to what I'm doing and my hard to track down bug from yesterday is my first OOME.  I have a sync process that merges data into SQL CE 2.  To try to squeeze blood (performance) out of a rock (SQLCE 2.0) it prepares and caches update and insert commands.  Here's a small piece of that code:

    ...            

                System.Data.DataTable schemaTable = dr.GetSchemaTable();

                dbCommand = DataHub.Database.GetCommand(GetUpdateTemplate(ref schemaTable, pk, changeColumn), DataAccessObject.CONNECTION_STRING);
                string columnName;

                SqlCeParameter dbParameter;

                foreach (System.Data.DataRow row in schemaTable.Rows)
                {
                    columnName = (string)row["ColumnName"];
                    int columnSize = (int)row["ColumnSize"];
                    dbParameter = new SqlCeParameter(
                        "@" + columnName,
                        GetSqlDbType(row["ProviderType"].ToString()),
                        columnSize);

                    if (!row.IsNull("NumericPrecision"))
                    {
                        dbParameter.Precision = Convert.ToByte((short)row["NumericPrecision"]);
                    }
                    if (!row.IsNull("NumericScale"))
                    {
                        dbParameter.Scale = Convert.ToByte((short)row["NumericScale"]);
                    }
                    int columnOrdinal = (int)row["ColumnOrdinal"];
                    object pVal = DBNull.Value;
                    try
                    {
                        pVal = dr.GetValue(columnOrdinal);
                        dbParameter.Value = pVal;

    ...

    This worked for a long time until someone decided that a column of type ntext  should be replicated.  The column size for a field of type ntext happens to return something like 580million bytes.   When the code tries to set the parameter value, it finds it can't allocate that much space.  The maximum stack size in the compact framework v1 is 640k (reminds me of MS-DOS low memory, no one will ever need more than 640k); 640kb * 1024b/kb = 655,360bytes, or "not enough" and the OutOfMemoryException is thrown. 

    I feel a little sorry for anyone building a custom sync process using SQL CE.  SQL Mobile is much nicer but does not remove the potential for things like this to happen.  I have a project I'm working on which I'll open-source IF I get it done.  I say if becuase I have occasionally announced some wacky plan here only to be distracted by a shiny object and said project dies on the vine.

    Speaking of stack size optionsScalper was telling me about F# and how .... look, a penny!



    Saturday, February 04, 2006 11:59:35 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [16]  |  Trackback
     Monday, January 23, 2006

    ... or something like that.

    The week of Xmas 2005 I got a call from my Fearless Leader at SafeNet.  It seems that for 2006 Microsoft has made it quite abit harder to be a true Microsoft Partner, and as such they are going to lose about 80% of their current certified partners.  This sounds good to me, since this might make partnership mean a little more.  However it turns out we are short an MCAD plus one premier certification on staff in order to qualify.  As the person with the Fanciest Title it falls on me to get 4 certs before January 31st.  I have never cared much for certifications, from what I had seen from the MSFT practice questions in the past they seem to cover a lot of stuff I am not likely to use in the real world. 

    So, xmas weekend was out for studying, under pain of death from my family.  The following week was out because I was getting ready for my CF 2 presentation.  By the way I still need to pos the slides/code for that.  The following week I'm not sure what happened.  In order to force myself to study and take the exams I just scheduled 4 tests in close succession on the 18th, 20th, 23rd, and 27th.  A part of me secretly wanted me to fail something to prove that the tests are a meaningful measure of skill.  I did have to read up on the remoting and COM+ stuff for 70-320 but I passed the 1st three easily, I suppose I am an MCAD as of this morning.  On Friday I have to take the Solution Architecture test to prove I am a sufficiently skilled Hand Waver and SafeNet will get to keep its partnership status.  After that I might as well take the BizTalk test to get the illustrious MCSD designation.

    To me, the only reason to take these tests is for partnership points, no client has ever asked me about certifications.  Most of the very skilled people I know locally do not pursue certifications.  I am somewhat hopeful that the Microsoft Certified Architect program will be brutal, and therefore mean something when you pass.



    Monday, January 23, 2006 11:19:20 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
     Monday, January 16, 2006

    As with everything I post here, the following is my opinion and you are welcome to disagree.

     

    IT recruiting is a mess right now in our area.  I feel bad for all the good recruiters and PMs who are trying to find people to staff projects.  I get calls and emails from recruiters regularly and I don’t have anyone to send them.  Of course I’d rather take advantage of the sweet recruiting bonus at SafeNet anyway, but the fact is I just don’t know anyone who is looking.

     

    The ITAA is currently lobbying to remove H-1B visa caps because according to them 859,000 tech jobs are going unfilled every year.  The ITAA is obviously lobbying for cheap labor to drive down yours & my salaries, but there is clearly something going on right now.  No, I don’t think we’re going to see salaries at 1999 levels nor should we, but things are picking up right now.  There is no one to do the work.

     

    Part of the issue right now is that companies are simply not investing in hiring and retaining junior level developers.  Every project I see requires “One senior and 3 mid level” developers.  People don’t become mid-level developers by going to grad school or by doing a single internship one summer: they do it by building systems, initially as junior developers.  Hopefully with some guidance from someone who has already built many systems. 

     

    When I was getting my start, I was lucky enough to have fantastic mentors, people who had the skills and could work with me to make me better.   There was also a company directive stating that it was part of their job to spend that time with me.  If I ever saw one of these guys on the street (my first job was in Madison, a ways from me) I would shake their hand, buy them a drink, and thank them for helping to give me a good start.  In fact, one of the reasons I have tried to pursue more senior level positions in my career is to be able to work with less experienced people: find the ones who “get it”, and spend time with them turning them into the next great developer.

     

    I just don’t see companies making this investment today.  The kids with CS degrees are having trouble finding work because they are not yet mid-to-senior-level.  The kids a few classes younger than them are not going into CS majors because they see these kids having trouble finding work.   A myth starts that “American kids don’t like CS” and we get lobbyists at the soapbox talking about how poor our educational system is.  Good paying jobs + Availability of Jobs = Students in that major.

     

    Companies refuse to hire inexperienced people and then complain that there’s no one out there who’s looking for a job because most people are (wisely) taking decent care of their people.  They need to hire someone for a particular project, meaning they need someone with X,Y,Z skill set already.  “We have a deadline and there is no time to bring someone up to speed on this.”  Their mid and senior level people, the good ones who get stuff done who might also make good mentors, they are already overworked as they try to balance their own work with helping out their supposedly mid-level “peers” who aren’t getting the work done because they don’t “get it”, but were lucky enough to get in before the bubble burst and have a “mid level” title now.  Everyone is running around as though the skies were falling and no one is investing in the next generation of talent.  If you cannot find the talent, you need to seriously consider home-growing the talent that you need.  People will learn your business while they learn your technology.

     

    I will close with this: I do very well at Safenet, so I am not looking for work.  However, the one thing that an employer could do that would show me that they “Get it” would be to offer to pay me a great salary to be a tech lead and mentor of junior developers.  I would certainly send the brightest kids in their direction.  Invest in the next generation of talent, or we are going to have several messes on our hands.



    Monday, January 16, 2006 12:49:48 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
     Tuesday, January 03, 2006

    I posted some 2006 goals/resolutions on my personal site, but as I sit here on my 3rd cup of coffee I realize I forgot the most important one for 2006: get into work earlier.  Get up when the alarm goes off.  Stephen Covey calls this "Mind over Mattress" and quite rightly names it one of the most fundamental things you can to do Get Stuff Done.

    I have never been a morning person.  This goal has been a failed resolution in years past.  Usually having kids forces people to shift to an earlier schedule but my almost 3 year old seems to have inherited mommy & daddy's desire to sleep in a little bit.  She did wake me up at 7:20 today to let her watch Spongebob, though.  I thought moving further out of the city would help too, but I still get up just early enough to get into work at a semi-reasonable hour.

    This year will be different because I really have no choice.  I have enough to do in the month of January alone that it will not happen without some productivity changes on my part.  I'm such a slacker right now ;)  As soon as the Mrs. goes back to nursing clinicals later this month I have no choice but to get up stupid early at least three days a week to help with the daycare shuffle.  Let's hear it for Mind over Matress in 2006.



    Tuesday, January 03, 2006 9:26:49 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
     Tuesday, December 27, 2005
    I have always had a small amount of spam on this site.  I checked my email on christmas day to discover I had 6000 referral spam instances (I had the blog engine set up to email me) waiting for me.  I will be temporarily turning off all the trackback, pingback, and referral features until I get time to upgrade the engine later this week.


    Tuesday, December 27, 2005 10:16:16 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
     Wednesday, December 14, 2005

    .NET Architect, gourmet cook, and all-around good guy Matt Terski confided in me once that the great hurdle in getting peolpe to understand SOA was not teaching them transport protocols and such but getting them to Think Asynchronously.  I have posted before about how the Cage Builder culture in some organizations tells developers to "Never use threads".  This is a barrier to responsive apps, great performance, and adoption of SOA.

    For my current client I built another custom data synchronization process for a mobile device.  We are not using Merge Replication for any number of reasons, mostly because of the constraints it puts on your database schema.  This sync process runs over a Sprint Airlink modem mounted on a truck; the speed of the modem is entirely dependent upon the quality of the connection it has at any given time.  Since the trucks could be in the middle of nowhere or surrounded by power lines I'm lucky to get 4k/s on some days.  A normal sync was taking about 3 and a half minutes and I was asked to optimize it.  We are moving to SQL Mobile in Q2 2006 but that doesn't help us today so I sat down to see what I could do to make this faster.

    Long story short, I have it to just under one minute now.  They are pleased.

    Most of the Performance talk you see going around deals with things like "avoid boxing", "use StringBuilder", "stored procedure", etc.  Those are the last things I look at, the first things are improving the efficiency of data stores and Asynchronous processing. 

    Improving the efficiency of your database is a huge topic and one that I am only now becoming more familiar with.  My current sync process is largely based on DateLastChanged fields on various tables, and some of those are large for SQL CE, say 20,000 rows.  Adding an Index on the DateLastChanged fields of some large tables changed the operation from Table Scan to Bookmark seek, and took many seconds off of my times.  There is no execution plan viewer on SQL CE 2 to prove that statement, but the proof is in the performance. 

    The larger part of my 300% improvement was "Processing Item A while waiting on Item B to be done". I am going to write three articles as I get time about some very simple Practices I use to keep me honest and reap the benefits of Thinking Asynchronously.  My 3-part intro to threading will consist of:

    1. Control.Invoke practices for the CF and Delegates in ASP.NET
    2. Practices for Work Item constructs
    3. Thread Signaling


    Wednesday, December 14, 2005 11:27:57 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
     Monday, November 28, 2005

    Do not build with Cade Homes of Milwaukee!

    Once upon a time I decided to build a house.  It hasn't been going well, and my builder could care less if they finish my house or if I drop dead tomorrow.  In my industry time and cost overruns happen often, however most Consulting firms suffer from this crazy idea that even when things go wrong and we make mistakes the customer should get good value from us and ultimately be happy not only with the end result of our work but the experience of working with us as well.  Maybe it has something to do with Milwaukee being a small town and people talking to each other...

    In the case of my builder they can treat me however they want and still get their money, and they are obviously unconcerned with what unhappy customers say.  The only recourse I have is to encourage everyone who will listen to avoid building with this company.  Based on the rule that "each person tells 10 other people" perhaps some day they will track lagging sales back to that one customer that they made feel unimportant and crazy every chance they got.  Its far more likely that word will get around "Wow that Damon guy holdes grudges I guess" and for that reason I typically keep personal stuff off of this blog.

    This post will remain until I get some incredibly intresting (ergo, don't hold your breath) piece of tech to post about.  If you are in the area and considering building a house, I'd be happy to send you copies of my two complaint letters to the Metro Milwaukee Builder's Association nicely summarzing Cade's apathy towards their customers.



    Monday, November 28, 2005 1:47:21 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
     Sunday, November 20, 2005

    No, that's not a typo.

    I have long been enamoured of the Amazon.com WebService API and have recently began actually using them in a semi productive fashion.  In the web service developer's newsletter I see this in tonight's release:

    "When we think of interfaces between human beings and computers, we usually assume that the human being is the one requesting that a task be completed, and the computer is completing the task and providing the results. What if this process were reversed and a computer program could ask a human being to perform a task and return the results? What if it could coordinate many human beings to perform a task?

    Amazon Mechanical Turk provides a web services API for computers to integrate Artificial Artificial Intelligence directly into their processing by making requests of humans. Developers use the Amazon Mechanical Turk web services API to submit tasks to the Amazon Mechanical Turk web site, approve completed tasks, and incorporate the answers into their software applications. To the application, the transaction looks very much like any remote procedure call - the application sends the request, and the service returns the results. In reality, a network of humans fuels this Artificial Artificial Intelligence by coming to the web site, searching for and completing tasks, and receiving payment for their work."

    You can read more about it here: http://www.amazon.com/gp/browse.html/ref=aws_gen_nl13amt/104-4070773-8438325?node=15879911

    I find this interesting in light of all the captcha and captcha breaking and ideas for better captcha going on.  It seems necessary for irony's sake to now implemented an automated system that can respond to these requests and get it right...

    .NET | Rant


    Sunday, November 20, 2005 10:16:23 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
     Wednesday, October 26, 2005

    I saw over on Sean's blog that MySQL 5.0 is released.  Before I get too into this rant let me say that MySQL is a fine tool in some situations.  I'll steal the highlight's of the release from Sean as well:

  • Stored Procedures and SQL Functions -- to embed business logic in the database and improve performance;
  • Triggers -- to enforce complex business rules at the database level;
  • Views -- to ensure protection of sensitive information;
  • Cursors -- to allow easier database development and reference of large datasets;
  • Information Schema -- to provide easy access to metadata;
  • There's more but this is enough for me to talk about.  Take a look at that list.  Does anything strike you as odd?  If not, let me roll back the clock just a little while to when MySQL added another great new feature.  The developer team called this feature "Support for Transactions", I believe it was added in version 3.23.  I'm being an ass of course, Transactions had been in every other relational database, including crap like Access, since the dawn of time.  The MySQL fans made such a big deal out of this that I had to grin. Transactions!  What will they think of next?  Pretty soon they'll support sub-selects and ANSI standard JOIN syntax. This is the database I am constantly hearing is "better" than things like Oracle, and UDB, and SQL Server. 

    Now we have another release with some great new features.  I have many complex feelings on this issue, since I do in fact like MySQL.  Despite liking it, I think I can sum up my feelings with this press release:

    "Kia Releases new Car V2.0.  Standard options now include:

    • Tires: increases vehicle handling and makes wheels last longer
    • Brakes: car now has the ability to "stop" at a rate greater than the coefficient of rolling friction on standard road surfaces
    • Side Windows: Driver can now see in directions other than forward, huge safety increase
    • Seat Belts: we know this "air bag" fad is very popular, but we feel seat belts provide the best balance of total cost of ownership with safety.

    "

    I guess the reason I feel inclined to poke at MySQL is that I am always hearing from its fans how it is so much better and faster than big expensive RDBMS's.  The speed one I found especially irksome, and my quest to prove or disprove this rumour led me far and wide.  I landed at the Transaction Processing Performance Council's web site: http://www.tpc.org/;  I was shocked (by shocked I mean utterly un-surprised) to find that MySQL is nowhere on these performance lists.  A little digging shows that its somewhat expensive to participate, which may be a barrier for a free product.  A little more digging shows that a non-profit company can submit their product for a ridiculously small fee ($500-$1000), now I was shocked to find MySQL not on the lists.  A little more digging shows that MySQL just plain isn't standards compliant so cannot participate in the test anyway.  I do not have a list of what features are missing but I suspect near the top are various transation isloation settings and things of this nature.  Specifically: the type of things you'd want in a big enterprise database where disastor recovery and data integrity are of paramount important, the type of things that slow your database down just a little bit...

    I like MySQL, but I doubt its "better" than Oracle or SQL server unless your sole metric for judging value is the fact that its free.  "Free" is a loaded term anyway, but the MySQL team is working on making it easier to use and providing good tools.  There seems to be an aweful lot of people willing to accept on blind faith that MySQL is better than high-priced alternatives.  That's fine if you want to defend your religion, but if you want to convince me that you are better, you have to show me.



    Wednesday, October 26, 2005 11:05:02 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
     Thursday, October 13, 2005

    This is by no means new:

    Palm/Microsoft are going to port WindowsMobile to run on Palm hardware.  Microsoft makes very little money off of licensing for WindowsMobile/CE so this move must be an effort to sell more of the things that go along with mobile systems: back end integration, lock people into the WindowsPlatform, etc.  Does this mean we may see ActiveSync get some more attention and maybe get ported to more platforms?

    Palm has always had great hardware in my opinion and was absolutely an innovator in this field.  I believe having their own OS has contributed greatly to their downfall.  With Windows CE we have had eVB, eVC, the .NET CF for years.   They weren't always great but they were all VERY usable small device development environments.  With Palm you have had C++ using CodeWarrior and J2ME using the KVM.  I have not looked at J2ME in a couple of years, but I have seen some big names post about it: it's not very good.  Maybe I am out of touch with the community, but I've never heard of a big app being written on PalmOS the way I do about windowsmobile stuff.  I run into mobile apps all over the place: at the airport, in Kohls or Target, at the rental-car place; every one I've gotten a chance to look at was undoubtedly a  Windows CE based device.  Big apps being written on these things means companies like DAP, TDS, Symbol, Intermec get orders for hundreds of units at a time, meanwhile Palm has been (as far as I know) relying on individual purchasers to upgrade their units to be able to view their calendar faster or store that extra million contacts they were missing. 

    Since I may end up evaluating palm units on a future project I'm curious: can anyone else tell of their experience developing for Palm over the past several years?



    Thursday, October 13, 2005 3:19:23 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
     Tuesday, October 04, 2005

    Yesterday in the middle of compiling some code my computer blue-screened.  Subsequent attempts to start it up kept giving "Unmountable boot drive", the hard drive had bit the bullet.  Luckily I back things up to an external drive semi-regularly.  I went to a friend's work where he builds PCs and got a laptop hard drive.  He also had an adapter so that I could hook my crashed HD up to a regular PC's IDE chain and sure enough I could get most of my data off of it and burned onto a DVD so I didn't even need to go to my backups.

    If anyone knows a quick way to get the contents of My Documents off of an NTFS drive let me know.

    Due to some funky display driver problems I spent 6 hours last night:

    1. Install windows xp
    2. get display drivers working
    3. Windows update
    4. service pack 2
    5. more windows update
    6. Office
    7. Office update
    8. ActiveSync
    9. Messengers, etc.

    Today, I had to stop by the office to get MSDN discs for:

    1. Visual studio
    2. MSDN
    3. Source Safe
    4. eMbedded C++4
    5. Visio
    6. Sql Server

    ... and on and on and on.  Despite having a halfway decent laptop I estimate it will be a total of 12 hours of installation easy.  Despite the various advances in hardware and software technology in recent years a couple of things are still sorely missed:

    • Can we get these things to boot up faster?
    • Can we get the install time for a complete development environment below 12 hours?

    Visual Studio is 50% done, I'm going to go read something.



    Tuesday, October 04, 2005 9:58:48 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
     Tuesday, September 06, 2005

    Next Tuesday the 13th I will be attending the .NET user group meeting, however it is also a birthday for me.  Being "young at heart", I still like my birthday.

    The following Saturday, the 17th, will be an annual event, of epic proportions.  I have a good friend who's birthday follows mine by two weeks and for several years we have been having an Uber Party on the weekend in between.  If you have nothing better to do and would like to truly see me at my worst then feel free to join us at Hooligan's Super Bar on the East side for food, just look for me preaching about something to 20 or so uninterested rowdy people.  The yearly tradition ends with a trip to The Safe House where my friend and I drink two or three Mission Impossibles (Missions Impossible?) each.



    Tuesday, September 06, 2005 3:41:55 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
     Tuesday, August 30, 2005

    Look at me, I am such a waste of space that I am not producing anything of value, I merely react to other people's original thoughts with thoughts of my own.  So casey is upset about ever-tighter digital rights management built into Windows, and maybe some day hardware as well.  Let me first share some of my thoughts:

    • I think the companies comprising MPAA and the RIAA horribly mistreat the artists without whom they would not exist.  I think these companies do not recognize an artists Moral Right to their work, nor is "Fair Use" in their vocabulary
    • I think these companies produce a ton of crappy content and then blame piracy for their downfall rather than ponder the idea that I don't feel like me and the Mrs. going through the tedium of acquiring a baby-sitter and then paying over $20 for two tickets and crappy popcorn just to sit in front of something that is 99.9% likely to suck. (It sure is loud though)

    That being said, I see no issue with digital rights management as long as it does not interfere with my fair use of something I paid for. I am a strong believer in Capitalism, and as such I can choose or not choose to engage in any transaction with another party.  If I choose to buy something from someone, I must buy it on the terms they offer.  If I sell something, I sell it on my terms and I expect them to be honored.  I view my HD Cable via a DVI digital connection on my TV, which supports HDCP.  It means I cannot record these shows easily, I have no issue with this.  I entered into this arrangement with Charter cable (who also sucks) knowing this up front.

    If the MPAA says I can buy this DVD from them but I am not allowed to copy it, then I have agreed not to copy it.  The fact that Microsoft is going to make it harder to copy it from Windows does not concern me as long as my privacy is not comprimised.  I do not have a "right" to use something outside of the terms of the seller, regardless of how ridiculous their copyright law is or how much Pearl Harbor or Alexandar: Director's Cut sucked to begin with.

    If you don't like these terms, do not buy it.  If Hollywood shoots themselves in the foot because their new copy protection is not viewable on my mom's TV then its their loss when they miss out on the sale of millions of copies of "The Mummy Returns" to people like her.  If there is some ridiculous backlash against the public (Sueing college kids for trading Mp3s come to mind) then we brought that on ourselves.  What's fair likely lies some place in the middle.

    What do you think?  How can we best treat the studios who spend millions of dollars making crap like <<Insert Julia Roberts film title here>>, hardware and software manufactures, and consumers fairly?



    Tuesday, August 30, 2005 1:56:52 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
     Sunday, August 21, 2005

    Right now I'm sitting at the kitchen table in this purgatory known as "apartment living" while my new house sits uncompleted only a kilometer away.  This completely sucks so I went and picked out a nice new mahogany veneer desk/workstation setup to go in my office when this new house is ready for occupancy.  I am also standing by to order an Aeron chair as it is the most comfortable chair I've ever sat in.  I just built a fast new PC.

    I do a lot of work from home. This new office will eliminate manyof the frutrations I have at client sites: the ergonomic nightmare, the slow PCs with no memory and slow hard drives, the silly IT policies blocking this or that messenger, the mandatory virus scans that happen every Thursday at 1pm and render your already slow laptop completely incapable of doing any real work for two hours.  Yeah, the 10,000 RPM Serial ATA hard drive with a gig of ram and 3.6ghz proc can compile the hell out of that code, and setting up multiple monitors is genuinely useful for work.  Its too bad I'll only have this excellent environment for the 10-20 hours per week I am working on side projects at home, while the majority of the work I do will be in the cubical with its interruptions and inferior equipment. 

    No matter how many studies are done linking good environment, no internet monitoring, and good equipment to higher worker productivity we are just not ready for the progressive office here in the midwest.  I have yet to see a single office that can hold a candle to the type of work environment a developer would choose if asked to create an environment where they could be most productive.  I think my goal for 2006 is to seek out ways to work from home as much as possible.  Does anyone out there have "Work from home" stories?

     

    Update: supporting documentat http://www.time.com/time/archive/preview/0,10987,1083900,00.html



    Sunday, August 21, 2005 6:57:57 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [12]  |  Trackback
     Wednesday, August 10, 2005

    The Damon show has been off the air for a while, and for both of you out there who are regular readers I do apologize for the lack of posts.  I have been so busy with deadlines at work, and deadlines on two of my side projects that I haven't been able to screw around with "Project Cesium" or any of the game programming or AI stuff.  I've been so busy that I sold my house a month and a half ago and just deposited the proceeds on Saturday.    I still have to make enough revenue through my business to pay taxes and buy some appliances.   I guess what I'm saying is that I am a whore and that until my new house is done things that pay money now will win my time over neat projects.  

    Finally, in regards to the religious discussion going around the local community, I leave you with this.  It seems as though in this exciting age of Science we have become more religous as a people, not less.  For those of us who choose to sleep in on Sunday, its becoming a social liability.



    Wednesday, August 10, 2005 9:13:49 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
     Tuesday, July 26, 2005

    All yuor best programmers are belong to teh Joel...

    ... or at least he'd like to think so. Joel is once again talking about the subject of who he hires and why and how.  When reading this article I couldn't help but feel like he took a lot of his ideas from Phil Greenspun of ArsDigita fame.  I really hate it when someone jumps up into the pulpit and preaches without letting you know that they didn't write the gospel.  Oh, but wait, here is an article where he mentions the impact Phil's ideas and practices had on him early on; sorry for judging too soon.  I very much agree with most of his points:

    • If you are doing business apps, you don't need the bestest programmers but you do need some higher level folks to keep the masses in line
    • If you want to do cool reasearch and be a creative scientist, chances are you'd be happier if you stopped writing stored procedures and ASP tags and went to work for a software product company.
    • Companies both large and small with an honest personal voice, all other things being equal, will often enjoy success

    Is FogCreek making money because of Joel's Blog or the quality of their software, or both?  I don't know, but I do know I have at times been on either side of the "Polished Public Image" fence.  I keep my personal stuff seperate from this site just in case my political views or other personal quirks might make someone skip me over next time they are looking for people.  It also helps if your business clients do not view you as having the "Hacker Mentality"; you have to know that the business is going to (or should) drive tech choices even in the most enlightened work environment. If you are jumping up and down because you can't just write all your company's systems in PERL on LINUX and wear your mohawk to work and name your servers things like "elitephr34k.insurance.com" then people may not take you as seriously.  No matter how progressive you are and how well that helps you crank out great products  your clients have to take your seriously.  On the flip side, whenever I read a web site talking about how great a companys products/services will "Maximize shareholder value by minimizing risk and providing the greatest return on investment in the shortest amount of time", I wonder if I'm the only one who saw that on every single company's web site and wonder why this place is different from the shop next door.  With everyone making the same claims the personal voice does help you stick out a little bit.  Otherwise, people would just go through the "Maximize shareholder value by minimizing risk and providing the greatest return on investment in the shortest amount of time" checklist in your marketing materials, and then buy from whatever sales guy took them to the best clubs and golf courses.  Oh, wait...

     

     

     



    Tuesday, July 26, 2005 1:26:14 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [5]  |  Trackback
     Monday, July 25, 2005

    That's multiple sclerosis, not Micro-Soft.

    My friend Jason in Whitewater is riding 241 kilometers on his bike for charity and you can sponsor him at this URL

    The $$ goes to multiple sclerosis research.  I'd much rather support things I care about this way than have uncle sam raise my taxes and decide for me what causes I should contribute to.



    Monday, July 25, 2005 1:17:45 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
     Friday, July 22, 2005

    Main Entry: vis·ta
    Pronunciation: 'vis-t&
    Function: noun
    Etymology: Italian, sight, from visto, past participle of vedere to see, from Latin vidEre -- more at WIT
    1 : a distant view through or along an avenue or opening : PROSPECT
    2 : an extensive mental view (as over a stretch of time or a series of events)

    Sorry, I think its a lame name.  I think WindowsExtreme or Windows++  would have been better choices, but I am a technical guy, not a marketer.



    Friday, July 22, 2005 9:21:23 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
     Monday, July 18, 2005

    Well, this is what, four non-code posts in a row?  I'm slipping.

    I spent some time going over some client work this weekend and it seems that I am catching up.  It seems that I might be getting close to the Period of Rest I've been looking for, this is less satisfying that it would be if my new home was anywhere near completion.  I still have a couple of bigger things that I could work on but these hold the danger of me getting too far ahead of client requirements, the old "Go ahead and work on it but I won't have time to tell you if its right" hurry-up-and-wait.  In light of this, I turned back to something that had been shelved for a while: something I call Project Cesium.  I have alluded to Cesium a couple of times on this blog and to friends, hinting that this may be a press-release-worthy item at some point.  I started working on a re design and some code Saturday afternoon.  Stay tuned for an early 2006 release of something that will hopefully be a big deal.



    Monday, July 18, 2005 8:52:49 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
     Friday, July 15, 2005

    Like a lot of people, I tend to define goals for a year at the beginning of each year.  Many of them are typical: get in shape, pay off debt, etc.  Once I went a whole year without consuming alcohol.  Since you're curious, this year's item (I assume you are curious or you would stop reading) was to make a great deal of $$ so that next year I can relax more.  At any rate, I'm adding one UberGoal™ right in the middle of the year.  Yes, I know its not a best practice to change the deliverables in the middle of a project but management says this is important.

    My goal is to Be Progressive.  There are a lot of ways that we should just Do The Right Thing that we don't, some of them vitally important to our position in the world and our continued prosperity as a species.  I have some specific things in mind:

    1. Use the metric system as much as humanly possible.  The current NASA fiasco reminds me of just how silly it is that we are not using the metric system.  Being an obnoxious elitist, imagine the fun I'll have telling people how many Kilometers it is to my house, how many liters of beer I drank at the Nerd Dinner, or how good the 700 gram steaks I ate were, or how many kilowatts of power and newton-meters of torque my WRX has.  This will be kilograms of fun!
      1. Action Item: SmartPhone program with conversion rates for everything.
      2. Action Item: Refactor common sayings such as "Kilograms of fun", "A kilogram of cure is worth a gram of prevention", "Go the extra kilometer", "A journey of a thousand kilometers is begun with a single step", "This weighs a Metric Ton", "I'll bet you can't drink 1.83 liters of milk in under an hour", "The whole 8.73 meters", "Give them a centimeter, they take a decimeter"
    2. I cannot type as fast as I used to, due to the Carpal Tunnel/tendonitis brought on by me working way too much.  Contemplating this, I recalled the bit of trivia that the Qwerty keyboard layout was specifically designed to make typing as slow and uncomfortable as possible back in the Golden Age of Typewriters.  Considering the amount of work that is done on PCs these days, my bean counters estimate that this costs us approximately Eleventy-gazillion (0xff∞E^eleventy) in productivity losses each year, mostly in email and MSN messenger related time loss and overly verbose VB.NET code.
      1. Action Item: Obtain, learn, and evangelize an alternate keyboard
    3. Look into renewable energy as much as one man can.  Am I the only person who can see the upward curve in gas price is going to have us paying over $1.20 per liter as soon as next year?  This does not mean I'm buying a hybrid car: I hate to be the one to say that hybrid cars are a joke.  The amount of energy a hybrid car will save you in gas over its lifetime is not as much energy as it took to create the battery in the first place.  How did the power plant make the energy to make your battery in your hybrid car?  Why, burning fossil fuels of course.  On top of that, due to the principles of Entropy, a lot of energy is being wasted in this transformation as well.  That's right, Hybrid Vehicles are driving gas prices up.
      1. Action Item: Laugh at people who drive hybrid cars
      2. Action Item: Look into solar panels on my house, assuming they do not suffer the same drawback as hybrid cars.

    That's enough for one year.



    Friday, July 15, 2005 11:54:40 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
     Tuesday, July 12, 2005

    So we are going to have ".mobi" domains soon, the idea being that these are meant for mobile devices.  One one hand, I'm all about mobile.  On another, sounds like a way for registrars to make more money.  On another hand, is it so hard to detect the user agent on your server and direct them to a mobile version of your site?  Haven't we had tools to do this for a while?

    Next up, ".moz" sites for the anti-IE "look at our CSS implementation" crowd...



    Tuesday, July 12, 2005 9:14:00 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [4]  |  Trackback
     Monday, July 11, 2005

    Two weeks without an update seems like a very long time.  I assure you I am still alive.  As I have indicated in the past I am building a new home, and we have been in the process of selling the existing home and moving into an apartment while the new home is built.  About the only non-essential activity I have done in the past two weeks is convert my personal site over to DotNetNuke 3.  Overall I'm pretty happy with DNN but I do have a couple of minor issues.  For each module, there seems to be 8 different Settings links such as "Configuration", "Settings", "Manage".  I installed the forum/blog with no issue but "Gallery" blows up, to be fair these are listed as Beta.  Maybe my photos will just be an iframe containing Flickr anyway.

    Until at least this week Friday (7/15/2005) I have to continue to focus only on essential activities.  Explosions, crypto, CompactFramework 2, and other promised goodies have to wait.



    Monday, July 11, 2005 9:21:30 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
     Thursday, June 30, 2005

    Milwaukee MVP Sean McCormack posted an article regarding GM's employee discount plan on their cars right now.  He makes the point that if they can make a profit, they've really been "sucking us dry for years"; I agree with him, but let me go further and add my 2 cents.

    Worse than "sucking us dry for years" is Sucking us Dry for Years and Still being in financial trouble. If they are able to keep the lights on at these prices, it makes it look (to me anyway) as though they could have ran a lean ship all along and not be where they are now.  In many ways, I blame this on the "Executive Caste" that has evolved in this country.  Executive compensation in many of our largest companies has never been more decoupled from their companies' performance.  (At least someone is achieving a high degree of decoupling...) Money magazine has a regular special on this unexplainable and purely American phenomenon.  My favorite example from Money is a couple of years old: In a year when the company's revenues plunged 40%, the CEO of Home Depot was awarded a coupe of hundred million dollars in bonus options and cash.  Huh?  What exactly did this individual do that year to deserve more than their normal salary?  The current Ford and GM CEOs are trying to correct many years of their predecessors' carelessness.

    Like many issues, I attribute this to "The Population" being uninformed and not caring anyway.  C-level (not sea level) executives have been the subject of Hero-Worship ever since Lee Iacocca "saved" Chysler.  Did people fail to see that this deliverance came in the form of a gift from Uncle Sam of Billions of taxpayer's money?  Can this be in GM's future?  I hope not.  As much as GM is an American icon, I'd rather not pay for it.  Companies need to realize that we may not come to their rescue if they are this careless.  The jobs are important, sure, but then again I'm not a big fan of the UAW either.  I'd better withhold my union comments and stop it here.

    Maybe I'll go buy a Saab...



    Thursday, June 30, 2005 1:06:15 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [4]  |  Trackback