Live Search for Charity

Dare posts about two charity search sites hosted by Live Search. Use teamseattle.live.com to search and you help sponsor Children’s Hospital. Use click4thecause.live.com to search and you help sponsor Ninemillion.org, which is working to help the 9 million refugee children worldwide.

GIven that I’m already using Live Search, changing my default search page from Live.com to one of these two seems was a no brainer. I use the IE7 Search Box more often than not, so I also set up a custom search provider. However, that’s a bit of a PITA, so I took the OpenSearch Description XML files and hosted them here @ DevHawk. Click the links below to add them to IE7 search box.

I’m sure there’s a way to do this for Firefox’s search bar, but I have no idea how. If you – dear reader – know how to add search providers, please send me email and I’ll update this post accordingly.

Morning Coffee 16

  • Forgot to say this yesterday, but I’m happy the Colts are in the Super Bowl. Well, I guess I’m more happy that New England isn’t in it. They’ve won it enough lately. I wish the Saints has made it, but at least this way I have no question who to root for on Super Bowl Sunday.
  • My Gamerscore cracked 1000 over the weekend. I got 60 points in Dead Rising and 100 points in NHL 07k0%01%02). I have played ten games + three arcade games for a maximum possible Gamerscore of 10,600 and a Gamerscore “conversion rate” of 10.28%. I wonder how good that is? All the leader boards I’ve seen rate purely on Gamerscore.
  • Speaking of games, Obsidian (of Neverwind Nights fame) is working on an Aliens RPG! Check out this post by Chris Avellone of Obsidian on Game Design Research (via Game Tycoon).
  • Richard Grimes’.NET Instrumentation Workshop rocks. Richard also has extensive workshops on .NET Security and .NET Fusion (aka runtime binding). If they’re as good as the instrumentation workshop, they’re worth a read.
  • In my SSB/WF prototypes, I’ve simply been writing to the console. The lo-tech brute force works okay for a console app, but not at all when I move my code into a shared library. So I decided to bite the bullet now and translate the Console.WriteLine calls into TraceSource calls. My prototype isn’t that big (yet), but it went pretty smooth nonetheless. I currently have three TraceSources in my solution – one for the host, one for my SSB activities & workflow service and one for the persistence engine (I just inherited from SqlWorkflowPersistenceService and added the trace calls). I’m sure in time, I’ll wish I had set up my TraceSources differently, but for now it works.
  • The one feature I lost moving from Console.WriteLine to TraceSources was color support. Since I am creating voluminous tracing data, I used color coding to indicate which part of the application the trace information was coming from. Of course, the OOB ConsoleTraceListener doesn’t have any mechanism to color code the output. I hacked up a ColorConsoleTraceListener in a couple of minutes that worked great. I say “hacked” because my color choosing code is currently hard coded, rather than being stored the config file. If I get the time to change that, I’ll post the code here.
  • While researching ASP.NET’s Membership system, I found this Scott Guthrie post with links to ASP.NET providers for MySql, Oracle and SQLite. I’ve wondered about the lack of a simple file-based ASP.NET role/membership provider and even started hacking together an XML based one. But the availability of a .NET SQLite data provider makes that an interesting option. XML would be human readable, but porting the existing SQL providers to SQLite would probably be easier.
  • Politics 2.0 in action: Talking Points Memo is enouraging you (aka Time Magazine’s Person of the Year) to record your own response to tonight’s State of the Union. Basically record your response via camcorder, webcam or cellphone. Then upload it to YouTube and add it to the TPM SOTU group. With President Bush’s approval rating at all time lows, I’m guessing these videos will be venting some of the pent up hostility towards this administration.

Morning Coffee 15

  • I was checking out the ASP.NET community site, and I noticed a small “Microsoft Communities” toolbar across the top. There’s a little menu that links to other MS community sites like Channel 9 and MSDN Blogs. I’m surprised the NetFx3 community site isn’t included.
  • My teammate Dale is blogging about Proper SOA. He lays out 6 Proper SOA principles, and then drills into the first three: meets business needs, requires governance and responds to changing business drivers. I expect to see posts on the remaining principles this week. Maybe Dale should turn this series into an article.
  • Speaking of articles about architecture, Architecture Journal 10 is online as a PDF. This issue’s topic is Composite Applications.
  • Malbolge is a programming lanugage that is “specifically designed to be difficult to program in.” Here’s Hello World in Malbolge:
    (=<`$9]7<5YXz7wT.3,+O/o'K%$H"'~D|#z@b=`{^Lx8%$Xmrkpohm-kNi;gsedcba`_^][ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543s+O<olm
    Seriously. Actually, it’s worse than it looks. The effect of any instruction depends on where it is located in memory.  Malbolge is so difficult, it took a month to write a Lisp program to generate that program. However, Lou Scheffer thinks we should think about Malbolge as a cryptosystem. I wonder if it could be used for obfuscation? (via Good Math, Bad Math)
  • Nat Torkington blogs about teaching kids to program. He makes the point about “them to think in terms of small steps”. I was lucky to have a computer teacher in elementary school who did something similar. She had us write down instructions for making a peanut butter and jelly sandwich and she then followed them to the letter. For example, if you wrote, “spread peanut butter on the bread” with out first instructing her to take out a slice, she’d happily spread peanut butter on the entire loaf. (via reddit)
  • To this day, my wife thinks the peanut butter and jelly lesson negatively affected my ability to communicate with “normal” people. She’ll even say “peanut butter and jelly” when she thinks I’m being particularly obtuse in my communication.

Morning Coffee 14

I just realized that I had Morning Coffee 9 both last Friday and last Monday. Woops. Rather than changing the titles of four posts, I’m just skipping #13 instead. Just like a hotel.

  • The folks behing the Optimus concept keyboard are shipping a mini 3-key keyboard. The basic idea of both keyboards is that the keyface is a little LED screen. Apparently, they’re planning on releasing a production version of the full keyboard this year. The 3-key keyboard is $160, so I’m guessing the full keyboard will cost quite a bit. (via Scott Hanselman)
  • Somepeople are up in arms that the chair of the new W3C HTML Working Group is Chris Wilson from Microsoft. I’m guessing these are people who don’t understand much about how such working groups work. As Chris writes, most of his time as chair will be herding cats. (via reddit)
  • I am interested to see what this new working group produces. The #1 deliverable for this group is “A language evolved from HTML4 for describing the semantics of documents and applicationson the World Wide Web” (emphasis added). Given the already existing Web API WG, it would be nice to see an application model as a formalized part of HTML.
  • Again via Scott, Jello.Dashboard is a replacement for Outlook Today with a GTD bent. However, as Scott points out, it is slow. Scott blames the Outlook Automation APIs, but I think the scripting engine is also to blame. In the CRM Integration for Outlook sample, I used a WinForms UserControl as a folder homepage and didn’t notice any perf issues. If you expose a WinForms UserControl as a COM control (via Guid and ComVisible attributes), you can then host that control within an HTML file which is set as the folder home page. The sample includes a helper function to generate the HTML folder home page to host the UserControl. If there’s interest, I can post a small sample. Not only is this approach faster than a script based one, it’s easier to design and debug.

Morning Coffee 12

  • According to Chris “Long Tail” Anderson (as opposed to Chris “Avalon Architect” Anderson), “Combined with the new low-cost distribution channels, from DVD to digital downloads, all you now need to be a filmmaker is talent.” Really? Based on the dreck Hollywood churns out, I thought talent was optional! 😄 Seriously, check out his post and the sites he points to (Four Eyed Monsters and DV Rebel’s Guide review on Cool Tools).
  • Speaking of Chris “Avalon” Anderson, he’s got a couple of WPF/E tests up on his blog. I wanted to see how it worked under the hood, so I checked out the HTML source for this page. It includes around 115kb of XAML! We’ve seen ViewState and JavaScript page bloat, is XAML bloat next?
  • Larry O’Brien and Alan Zeichick are talking about a Threading Maturity Model. Good ideas there, but frankly I think we need a language that recognizes concurrency as a first-order abstraction if we’re going to make much progress up the maturity model.
  • Dare recommendsprogramming.reddit.com. Definitely worthy of a closer look.
  • The BTS training I’m in yesterday and today is being held on Microsoft’s Red West campus, home of MSN & Windows Live. It’s very nice looking and is a good size – five buildings – without being as huge as main campus. It even has a “ski-lodge” cafeteria, though given the slim pickings in my building’s cafe anything would be an improvement.
  • One thing I don’t miss about working on campus is the commute. Getting to my office takes 20-30 minutes, depending on the traffic lights. Getting to campus, even though it’s physically closer, takes 45-60 minutes, most of it spent sitting still. Every time I wish we’d move to campus, I remember the traffic and decide I like where I am just fine.
  • Two big learnings from BTS training yesterday:
    • Conceptually, BTS hasn’t changed much since the 2000/2002 releases that I was more familiar with. In practice, it has heavily embraced .NET which is a good thing. I didn’t realize how much of a difference having tools like the pipeline and map editor inside VS would make, but it does. (I realize the orchestration editor is inside VS as well, but we get to that module of the class today).
    • The MessageBox is a bigger deal than I remember or realized. Matt called it the “heart of BizTalk”. I know BTS has had a SQL based message store since day one, but I don’t remember it being called out explicitly.
  • I’ve said before that MessageBox is roughly analogous to SSB queues, though BTS wonks (like my teammates) typically jump down my throat when I do. MessageBox has a pub/sub design philosophy which SSB does not. However, I’m guessing pub/sub is used much more in messaging scenarios rather than orchestration scenarios. My efforts around SSB & WF are much more focused on orchestration scenarios, so I’m guessing SSB’s lack of pub/sub infrastructure is not a big deal.