This blog has moved http://www.sharplogic.com/blogs/ed

This blog has moved here<!--meta http-equiv="refresh" content="0;url=http://www.sharplogic.com/blogs/ed"-->

December 2004 - Posts

RTSP Component
Can anyone recommend an RTSP component? I was going to implement the spec, but if there's something that just works it'll be a lot cheaper. I specifically need to be able to download a stream, so I don't care about server-side stuff. If there's a source version available, that's cool too. This is for testing purposes, so it doesn't need to be perfect.
Posted: Dec 22 2004, 01:14 PM by EdKaim | with no comments
Filed under:
Graphing Calculator Story From Apple

There's a great story over at http://www.pacifict.com/Story/ (via Slashdot). My favorite quote:

"The secret to programming is not intelligence, though of course that helps. It is not hard work or experience, though they help, too. The secret to programming is having smart friends."

Very much why the developer community is so important for Microsoft.

A Long Story And Short Security Tip For Mobile Developers

I’ve been working on a project that involves developing a custom power on password for Pocket PC. To do this, you build a DLL as a control panel applet and point a registry key at it so that the device will use your DLL instead of the default password applet when it’s powered on (or booted). There are also a few APIs you need to hook into, but I can’t find the whitepaper so you’ll have to trust me.

Anyway, this particular password doesn’t use a text input, so the only way to unlock the OS under the covers is to perform the right series of operations (which is greatly simplified at this point), after which the password DLL will call the underlying APIs to unlock the device. This is actually a neat way to lock the device down—just have your applet never call those underlying APIs to unlock the device and you can limit the user's actions to whatever's in your DLL.

During the dev process, I managed to lock the device with a password I couldn’t recreate from the password applet UI. To get around this, I connected the device via ActiveSync, which let me type in the password by hand. I then used ceregedit to turn off the power on password (there’s a documented key somewhere on MSDN), which disabled the power on password. A soft reboot took out the password protection.

However—and I didn’t understand why at the time—my applet had been copied into the StartUp folder, meaning that it would always be started when the device booted. Since the applet would never be able to be closed (it would never get a successful response from the underlying password APIs) I was in a bind. Fortunately, it was just acting like any other app—after all, it wasn’t given the instructions to guard the front door (since power on password had been turned off). As a result I was still able to use the device because the Start menu and shell were all working, except that I had this annoying dialog I couldn’t minimize, and it didn’t show up as an app you could kill via the Memory pane on the control panel.

So then I tried to delete it from the StartUp folder, but since the module was actively loaded, I couldn’t do anything. At this point I copied down jshell.exe, which is a neat little tool that lets you view and kill processes. From the jshell command line I ran “gi mod” to determine the module that had the DLL (actually, a .CPL) loaded, and was able to track down the process, which can be killed with “kp 22” where 22 was the process ID. After that, I was able to delete the password applet from the StartUp directory.

The moral of this story—if there is one—is to be careful about how you secure devices. For example, if you’re going to lock down a device by using a power on password that never yields (where the login screen is actually the whole app) then don’t give the end users the password or else they can get around the system.

The tools I referred to here are available as part of the Mobile Application Development Toolkit at http://msdn.microsoft.com/mobility/thekit/.

Recommendations For Blog Engine?

I really like .Text, but I know there are quite a few engines out there. Does anyone have a recommendation for a personal site? As context, I've been given the advice to move my blog to a personal site from a Microsoft-funded site because "I don't want you to be surprised like you were this time with us." The advice wasn't given in a threatening tone, but sometimes you need to read between the lines.

I'd also like to apologize for implying that Robert Scoble got me cut from being syndicated at MSDN. It's probably not true and I shouldn't have assumed the most obvious explanation was the correct one.

Eventually I'll be moving to http://www.sharplogic.com/blogs/ed. It's just too bad I won't have any readers left by then :-)

Scoble Learns The Art Of Subtlety

My blog is no longer syndicated through MSDN. I'm sure there's no correlation. Officially it's because I'm no longer an employee, but we'll see if it applies to the other former employees too...

If I get mysteriously cut from weblogs.asp.net I'll end up somewhere on the sharplogic.com domain (there will be much fanfare).

Coaching Robert Scoble

For context, look at the first few comments to this post: http://weblogs.asp.net/edkaim/archive/2004/12/20/327583.aspx.

Talk about being defensive!

Come on Robert! This is all conversational marketing! I'm challenging you to be a better blogger. I thought criticism in a public forum was how you liked things to be done? Are you saying that perhaps contacting you directly with feedback would make you feel less defensive? Oh well, I have an opinion and a Post button and don't have to think things through! Yippeeeee!

Of course I'm just kidding with you--but you should take what I'm saying to heart because it won't come from someone inside Microsoft where people do fear your blog. While your readership does give you visibility that can't be bought cheaply, it is possible that you may lose out on honest criticism and respect from the people you're trying to help. At times it seems like you may act in a very selfish manner by slamming the teams around you in order to raise your own status in the online community.

If I didn't care, I'd keep my mouth shut--kind of like almost everyone else does. Then again, maybe it would be better off that way.

Maybe "Insulting" Was The Wrong Word...

I wrote over the weekend that I thought Robert Scoble had written a very insulting post on his blog in the form of an open letter to BillG regarding his view of the Windows Media team's lack of performance in a highly competitive market. I thought the passive aggressive process being followed (as well as the condescending tone) were insulting.

Then I read this: http://radio.weblogs.com/0001011/2004/12/20.html#a8946.

It turns out that throwing the WM team under the bus did give Scoble a spike in his readership, so I guess all's well that ends well, right?

At Microsoft, one of the first things you learn is that you have to work to align interests with other people in order to succeed in projects where you don't have clear authority (this is a generic rule that applies equally in any highly-charged political environment). In many cases, an individual's interests are the things they get judged on over the summer in the annual performance reviews. If only the WM team had found a way to boost Scoble's readership in a positive way, he wouldn't have had to resort to throwing them under the bus to pad his score :-)

Of course I'm teasing Robert about this (although I think there's a grain of truth)--he's one of the few people I know can take alternative thinking and use it to grow. After all, how many people will take completely opposing viewpoints (especially ones where people are imflammatory and insulting) and link to them on their blog?

Anyway, I've seen a lot of people do this (and I've done it without realizing) but it's amazing how something that might seem so simple can be so difficult to repair. In this case, the WM PR team has to go into defensive mode to explain to press, analysts, and community influentials why one of Microsoft's own internal people had to resort to a blog in order to make a "change". It implies that things are so broken inside the company that there are no ways to improve products without publicly shaming the product team. I don't think that's the case here (although I don't have inside knowledge) but I'm also trained to be an extreme cynic (it's on day 1 of PR training at Microsoft).

The net result of this whole series of events is questionable--we already know that the open letter to Bill has caused PR and morale damage to the WM team, but will it end up having a more positive impact down the road? I guess only time will tell.

Most Insulting Blog Entry Of The Year?

I thought all the nominees had already been submitted, but then I saw this little gem from Scoble: http://radio.weblogs.com/0001011/2004/12/19.html#a8932. For the record, I've met quite a few people from the Windows Media team and always found them to be very informed and capable. I wonder why Scoble feels the need to be so insultingly condescending in such a public way. This could give Barbie's "yo mama so fat" post a run for its money.

Also, I don't recommend letting "big name" stars design the next versions of the media players. I believe they tried this a few years ago, but Elton John kept burning out EPROMS, Ludacris stabbed two usability engineers, and nobody wanted to buy Eminem's "I'm gonna kill &$(*$& you *#*#@!% Mobile Edition".

Clarification: By "insulting", I'm not referring to Robert's praise for competitive products or encouragement to the internal teams at Microsoft, although I think all private paths should be exhausted before "telling" on a team to Bill through an open blog letter. The reason I found his post insulting (from the WM perspective) is that he simplifies things that aren't that simple. For example, saying "get a plan together and have OEMs bought in on it in the next few weeks" is just not possible--although Robert makes it seem like the WM team hasn't been working on it or that anyone who can't do it is incompetent (discaimer: I have no inside knowledge of any of this). However, if you look at Microsoft's mobile devices initiative, it sometimes takes years (especially for Smartphone) to get unofficial agreements to turn into official product announcements, and even then it takes a really long time to bring these things to market. I just find it insulting--having been part of a very competitive and politically challenging initiative--to see someone trash the efforts of their peers without giving them a fair shake.

SharpLogic Software Proudly Enters The Year 2003
I finally got around to updating http://www.sharplogic.com to ASP.NET. Up next--XAML!
Posted: Dec 13 2004, 05:28 AM by EdKaim | with 1 comment(s)
Filed under:
Unspeakable Pride & Sadness

http://www.nydailynews.com/news/local/story/258114p-221030c.html

Growing up, Daniel Swift was like a brother to me (technically, he's my half-sister's half-brother). I was overcome with pride when I got a call today about his heroics in Iraq. I have great sympathy for all the families out there who have lost loved ones, and for those waiting for loved ones to return home.

Posted: Dec 03 2004, 06:52 PM by EdKaim | with no comments
Filed under:
More Posts