# Tuesday, 02 December 2008

So is there anything you hate more than the old "Unknown Error" when you're doing Sharepoint development? I found this tip on Madhur Ahuja's old blog (he moved it earlier this year) and it's short enough I can paste it here:

Find the web.config for the site you normally use as your development site. Locate this tag:

<SafeMode ... CallStack="false">
and change it to CallStack="true".

Set <CUSTOMERRORS mode="On">to mode="Off".

Set <compilation debug="false" batch="false">to <compilation debug="true" batch="true">

Now you will get the full stack trace as soon as the error is raised.

Works like a charm! Well done Madhur, and thankyou!

Kate

Tuesday, 02 December 2008 19:22:26 (Eastern Standard Time, UTC-05:00)  #    
# Sunday, 30 November 2008

This has been a very busy fall for me, with more travel than usual. So it was timely to read this article about what got through airport security and what didn't. I actually wasn't worried that the flags, tshirts and pamphlets expressing pro-terrorist views got through ... the mandate is supposed to be to keep out bad items, and your chances of killing someone with a tshirt aren't dependent on what's printed on it. But the 80 ounces of liquid (by using a silly Beer Belly pouch under your shirt) or ordinary water bottles with hand typed Saline Solution labels make me resent every bottle of water, can of coke etc that's been taken from me. And the ID triangle thing was new to me ... in Canada the security people don't check your ID but the airline does, a lot.

You go along, of course you go along. A security type took my passport from me while my stuff was going through the Xray. I asked for it back. She said "you can have it on the other side." I said "you are allowed my boarding pass, but not my passport." She said "you wanna argue or you wanna catch your plane?". Sigh. She gave it back on the other side, but what if she hadn't? They would have all said "oh no ma'am, our staff never take your passport, only your boarding pass."

The article is definitely worth a read.

Kate

Sunday, 30 November 2008 10:45:32 (Eastern Standard Time, UTC-05:00)  #    
# Saturday, 29 November 2008

Whenever I go to a conference I run into people who make software so differently than I make it. I also run into people who do the same things I'm doing, but they have a name for it and I don't. Someone asked me recently if I "did Agile." I always answer that we're not "formally Agile" which frankly I find very funny. We do have a client though, for whom we ship a new release every month. They ask for things (typically with emails) we design and estimate, together we draw up a list of what will be in the next phase and when it will release, and then we mostly do that. I say mostly because sometimes over the month they change their minds, or their customers impose a business change on them, and we tweak the list a little, but just about every month they get a refresh and their software has evolved to meet their new needs.

So there are plenty of people who will tell me, since I ship every month, I'm Agile. I guess so. But we don't do scrum. We don't do burn lists. We don't do pair programming. We don't have a daily anything. We manage all this with TFS and with a Word document called "phase 13 as approved.doc" that has a table in it listing work items, their descriptions, and their status. We don't really use any of the deliverables or artifacts that are considered Agile today.

So, with that mindset (what makes you Agile) I have two links for you.

First, http://martinfowler.com/articles/newMethodology.html. This is Martin Fowler on agility, the essay he first wrote in 2000. It talks about how requirements change, how people are not all the same, how customers adapt, and so on. To my great surprise it lists the Rational Unified Process as an Agile technique. His conclusion is a damn good one:

So where should you not use an agile method? I think it primarily comes down the people. If the people involved aren't interested in the kind of intense collaboration that agile working requires, then it's going to be a big struggle to get them to work with it. In particular I think that this means you should never try to impose agile working on a team that doesn't want to try it.

Second, http://www.agilemanagement.net/Articles/Papers/CMMIandAgileWhynotembrace.html. Unfortunately the paper is only available as a PDF, but this page has a link to it. The abstract:

Agile development methods and CMMI (Capability Maturity Model® Integration) best practices are often perceived to be at odds with each other. This report clarifies why the discord need not exist and proposes that CMMI and Agile champions work toward deriving benefit from using both and exploit synergies that have the potential to dramatically improve business performance.

OK, so it isn't written in a conversational style, but you know, it makes some really good points. I've just started a project in which we're using the CMMI templates for TFS, just to see what it's like, and we're being our usual "get the detailed requirements and do the design at the last responsible moment" on it (we have sensible phases which makes this possible) and you know what? It's working pretty well.

So, you think you know your methodologies, but I recommend you read both of these papers and then see how you feel. You may be surprised. You may be pleased (I was.) And you may start working more effectively.

Kate

Saturday, 29 November 2008 09:11:54 (Eastern Standard Time, UTC-05:00)  #    
# Friday, 28 November 2008

So maybe Bill never said "640K ought to be enough for anybody" or maybe he did. Truth is there was a time when we had far far less than 640 to play with, when we had 64 or so and didn't complain, and there are still people and languages that are left over from that time, who treasure every byte and are careful with their allocations. That's mostly just a vestige and not a useful habit, but there is one place where that approach is still right - when every byte of your code will get downloaded every time it is run. In other words, code on a web page that will execute client side. Everything old is new again as you know.

So, how much cool can you pack into a tiny payload? Or as the Mix folks ask,

What could you create for the Web if you only had 10 kilobytes of code? It's time to exercise your minimalist creativity and get back to basics - back to optimizing every little byte like your life depended on it.

Yep, it's a contest, with real money prizes ($1500) plus a fully-paid trip to Mix for one winner. The rules:

  • Source files and embedded images for your web application cannot exceed a size of 10 kilobytes (not compiled); only the xaml, cs, vb, or "language of your choice" files and embedded resources are counted against the 10 kilobyte limit. Build instruction files are not counted against the limit (for example, Visual Studio Solution and Project files).
  • Your web application must either use Microsoft® Silverlight™ or Windows Presentation Foundation, as a XAML Browser Application running in Partial Trust or as a ClickOnce application.
  • Your web application cannot include external libraries or assemblies. Data from web services is permitted, provided that you have obtained all consents, approvals, or licenses required to use the data as part of the web application that you create. Although data can be requested, you cannot use services to provide extra functionality.
  • Entries will be judged on originality, graphic design / user experience and functionality.

Gonna enter?

Kate

Friday, 28 November 2008 08:57:23 (Eastern Standard Time, UTC-05:00)  #    
# Thursday, 27 November 2008

I'm a very positive person, as anyone will tell you who has met me. I actively work at keeping a happy attitude in a variety of circumstances. And it is work, more than just smiling no matter what happens. For example, who you choose to spend time with makes a big difference - spend a conference with someone cynical who keeps saying "what a waste of time this is" and you will skip most sessions and go home saying the conference was a waste of time. Spend your time with someone excited about the material who joins in conversations about what this might mean and where that could take us, and you'll go home excited and rewarded for your week away.

In that spirit I identified immediately with this quote I saw on Scott Berkun's blog:

I hate a song that makes you think that you are just born to lose. Bound to lose. No good to nobody. No good for nothing. Because you are too old or too young or too fat or too slim or too ugly or too this or too that. Songs that run you down or poke fun at you on account of your bad luck or hard travelling.

I am out to fight those songs to my very last breath of air and my last drop of blood. I am out to sing songs that will prove to you that this is your world and that if it has hit you pretty hard and knocked you for a dozen loops, no matter what color, what size you are, how you are built, I am out to sing the songs that make you take pride in yourself and in your work.

Scott has a few more paragraphs, and identifies the speaker, so just to make you click over, I'm not going to. I'll give you a hint though: I saw his son just last month, which I suppose is no coincidence.

Kate

Thursday, 27 November 2008 08:44:55 (Eastern Standard Time, UTC-05:00)  #    
# Wednesday, 26 November 2008

I mentioned Andy's blog a few entries ago. Now he is selling some funny shirts to raise money for two deserving charities: one that treats and prevents blindness and another that provides low cost prosthetic feet. Excellent causes.

  

You know you want one...

Kate

 

Wednesday, 26 November 2008 10:39:09 (Eastern Standard Time, UTC-05:00)  #    
# Tuesday, 25 November 2008

It seems like every year I read about how something we think is new and exciting, or at least fairly recent, has been kicking around for a long time. (I mentioned video games a while back, for example.) Recently on the same day I read a Jeff Atwood blog entry and a Wired article about Ray Ozzie. Here are some quotes:

From Jeff:

From On December 9, 1968, Douglas C. Engelbart and the group of 17 researchers working with him in the Augmentation Research Center at Stanford Research Institute in Menlo Park, CA, presented a 90-minute live public demonstration of the online system, NLS, they had been working on since 1962. The public presentation was a session in the Fall Joint Computer Conference held at the Convention Center in San Francisco, and it was attended by about 1,000 computer professionals. This was the public debut of the computer mouse. But the mouse was only one of many innovations demonstrated that day, including hypertext, object addressing and dynamic file linking, as well as shared-screen collaboration involving two persons at different sites communicating over a network with audio and video interface.

and from the Wired article, talking about 1973:

Users had direct contact and direct feedback—not just to computers but to one another. "They had this thing called Personal Notes, which you would call email," Ozzie says. "They had this thing called Talkomatic, which is like real-time group chat. And they had this thing called Term-Talk, which was like instant messaging." It was also a way-before-its-time Valhalla of computer gaming. Programmers on the system had gone far beyond the tic-tac-toe and hangman that were popular in other computer centers to pioneer multiplayer online games, notably the Star Trek-inspired Empire. In retrospect, looking at the Plato community was like peeking through a wormhole and viewing the 21st-century Internet—but without the spam, fraud, and commercialism that would come with the real thing 35 years later.

I wonder what technology we're using today that only kinda sorta works and just a few visionaries (eccentrics?) are using it, but 30 or 40 years from now when it's ubiquitous, we'll all be "hey! we had that in 2008! I think I have a screenshot around here somewhere..."

Kate

Tuesday, 25 November 2008 10:31:23 (Eastern Standard Time, UTC-05:00)  #    
# Monday, 24 November 2008

Rudi Grobler has released a pack of WPF themes for you to use to make your applications convey the atmosphere you want to convey. Applying them is as simple as one line of code in your application as a whole, or window-by-window, or you can do it in XAML.  Rudi's blog tells how. It really makes a difference to the mood of your application and lets you stand out from the crowd.

 

I shrank the images because people object when the chrome on the right gets messed up by big images. You can see the originals on Rudi's blog - I just want you to see how very different the same application looks when you change themes. BTW, these themes were originally released for Silverlight and Rudi converted them for WPF. Pretty slick!

Kate

Monday, 24 November 2008 14:54:09 (Eastern Standard Time, UTC-05:00)  #