Friday, December 22, 2006

Time Travel Around the Windstorm

Hi. How is it going for you? I'm off way away from Redmond, surrounded by wonderful people who think "Mini-Microsoft" is a derogatory term for an aggressive technology start-up and nothing more. It's wonderful.

This is a post I originally started writing on 10 December, and puttered with, deleted a discussion about that NYTimes Gambit article, and then as I was feeling good about wrapping it up Whoosh! our Dark December Windstorm whupped-up on the area and then power (forget indulgence in insufferable blogging) became our one and only priority. I hope that if you're in the Seattle area that all ended well for you and that you're warm and have power.

So, let's see, where was I... imagine the screen getting all wavy as we travel back in time a little bit...


Holy Shamoley, MSFT closed above $30.00 today. Cha-ching and Happy Holidays!

Clouds parting... heavenly voices singing... sun breaking through... criticism... waning, replaced with... deep desire to do... The Mexican Hat Dance! Olé! Hey Mary Jo - la da da - maybe you're - la da da - right (when we hit $40, you'll certainly be right).

But seriously, the last six months look pretty way better than anything else in the past five years. Positive stock price ascent! Well, of course, there was that whole plunge thing that gave us a nice hole to dig ourselves out of, so no joyous back slapping in the executive room, please.

Just a few random other things going on during this quiet time of year:

Town Hall meeting: last Friday's Town Hall meeting on campus was fine and dandy and enjoyable, for me. Maybe I wasn't paying attention, but nothing new stuck in my craw. It sounds like all senior VPs need to go on the college circuit so that they can get a dose of what hard questions are like. Too bad that seems to be the only source they can find such. I really value these meetings and the information they provide.

Udell, my Belle: +1 to Microsoft and Jeff Sandquist for hiring Jon Udell. In the self-Q&A in A conversation with Jon Udell about his new job with Microsoft regarding why he would join Microsoft at this point in Microsoft's history, Mr. Udell calls out specifically the personalities at Microsoft and the technology that they are working on: Ray Ozzie, Kim Cameron, Jean Paoli, Jim Hugunin, J.J. Allaire and then in a later blog post Tim Fahlberg, Dan Thomas, and Mike Frost.

That collection of technical leaders reflects the continuing change Microsoft is going through as new leadership steps up. Will Udell be the Scoble replacement? Well, no, not quite, in my opinion. Scoble is a prolific super-connector but he is in no way a geek's geek. I've often lamented our loss - well, total lack, actually - of mindshare in the Alpha-Geek demographic. I'm willing to go in the wrong direction with respect to employee growth if someone like Mr. Udell can come on-board and champion going after the Alpha-Geek and ensuring our ecosystem is the best, most delightful place to be to develop software and services that matter.

If anything, now is certainly the best time for Mr. Udell to be joining, if only to end up retelling of a time that Microsoft was in the middle of a great transformation.

(Okay, time-wavyness returns us to the present)

Patent Dis! Oh, the echo-chamber is not happy about United States Patent Application 0060288329, which would seem to patent the RSS platform incorporated into the IE7 technology. Mr. Dave Winer (aka, Mr. RSS [a designation that's always a good way to start a divisive conversation with the blogerati]) no-likey: "This should be denounced by everyone who has contributed anything to the success of RSS."

Clarity. That's what I like in a writer.

Personally, I've never liked software patents in a completely naive old-school sort-of-way. The granting of software patents was one of those moments where software development lost its innocence. So it's here. And as long as it is here, I recognize that it is a necessary evil to pursue every patent you possible can. I don't like it. But if you don't, someone is going to. And as long as you have your massive patent stockpile deterrent, you can avoid the business-world equivalent of nuclear warfare with other BigCos. "Hey, don't sue me, because I'll sue you for your infringements and then we'll all be clustered f'd up. How about we," (lean in seductively and refill their wine-glass) "cross-license?"

So that's why you see a patent like this. Do I think it has much intellectual merit to it? Nope. Do I see a strategic business need for it? Yup. It's going to lead to yet another set of junk patent cubes. I hate those patent cubes. But I hate being sued for bogus patents granted to someone else and technologically bent over even more.

Mr. Winer can at least take comfort that Microsoft can be shamed into doing whatever right thing he thinks is appropriate (e.g., freely licensing the technology or such). As long as software designs can be patented and until the Open Source world becomes as enthusiastic about getting patents, things aren't going to change.

InsideMS: you folks who are passionate about following comments here have my respect. Man, I don't even try on the internal InsideMS blog. It's overwhelming. You'd think that everyone got their frustrations out once-and-for-all right here until you read through the quantity - and quality - of the comments within the InsideMS blog. What's LisaB going to do with all of this? There's still praise for her smattered amongst the comments, sure, but people are angry over just about everything you see right here... and then some. The cork is out of the pig, so to say, and the unhappiness is not just on some snarky external anonymous blog with dubious participants.

One non-linear suggestion I'd like to give after reading the latest "Pay" thread: bring back the full mid-year review. We go through just as much work as we ever did with the mid-year review except for the numbers. At least give people a rating and the potential for a bonus. Now that the major review has become an all-or-nothing gambit, we owe it to the employees to own up and say, "Bad idea not giving you a rating check-point." We already go through a stack rank. Let's just communicate to people where they currently are and divert some of that Partner compensation back into the workforce to reward people doing a great job.

Ups and Downs: this comment, which just came in as I finish this post up, has an interesting proposal about promotions and demotions:

What happens to the bottom 10%? They automatically get demoted to the next lower level (this insure no resters&vesters get a rest), but then they automatically get ranked at their new lower group (as management is essentially saying “you executed at the lower level”)

I'd be very happy for Microsoft to embrace the concept of demotion... or... re-leveling or right-leveling or whatever you might want to call it.


Wednesday, December 20, 2006

AxCreateNewProject tool Version 1.2

I made some additions and modifications to the AxCreateNewProject tool.
The link to the orignal post about the tool:
AxCreateNewProject Version 1.1.

Modifications are descriped on the homepage:
AxCreateNewProject HomePage

Thursday, December 7, 2006

A little modification / add-on to Sidax:

I use one of the features of Sidax most of all - it's the recent projects tab. (we have a lot of projects and I have to work with a lot of them at the same time). So performance of this tab is most critical to me.

And what was wrong is that from time to time I would stumble onto project names that didn't exist anymore, but still were up high in the list of recent projects.
So what this modification does is just verify that the project exists before showing it in the list of recent projects.
(this verification is performed only when the recent projects tab is opened, so it won't cause any performance issues)

To add this modification into your sidax installation, you have to do the following:
1. Add a method to Forms\Sidax:
void updateMruProjects()
int i;
TreeNode privateProjectTreeNode;
TreeNode sharedProjectTreeNode;
TreeNodeName projectName;

boolean existsProject(TreeNodeName _projectName)
TreeNode project;
project = privateProjectTreeNode.AOTfindChild(_projectName);
if (project)
return true;
project = sharedProjectTreeNode.AOTfindChild(_projectName);
if (project)
return true;
return false;
privateProjectTreeNode = SysTreeNode::getPrivateProject();
sharedProjectTreeNode = SysTreeNode::getSharedProject();

for(i = 1; i <= conLen(MruProjects); i++)
projectName = conPeek(mruProjects, i);
if (!existsProject(projectName))
if (element.openedProjects().exists(projectName))
MRUProjects = conDel(MRUProjects, conFind(MRUProjects, projectName), 1);

2. Modify an existing method Forms\Sidax\toglleBut, adding 2 lines at the end:
    if ( == && !collapsed)

That's it. Now the next time you open the recent projects tab, the unexistent project won't be shown. Enjoy!

Tuesday, December 5, 2006

Adding Menu References

Many developers often find it very confusing when trying to add a menu reference into an existing menu.
The reference just doesn't want to be added. :)
And what confuses even more is that some of the menus are added normally, while others are not!

Let's look at an example:
"After creating of a new menu - menu1, I want to add 2 existing menus into it as references: Cust and Vend.
I right-click the menu1 node and select add->menu reference. Drag over the Cust menu (and everything goes fine), and then I try to drag over the Vend menu - and it DOESN'T work! I am lost. what can be the reason for this?"

The explanation is simple:
The menus that were expanded since the time you launched the client, can't be added as references.
You can experiment with this: Try opening the AX client and dragging over a menu as a menu reference. You can see that it works. Now, expand the menu in the AOT and try adding it as a menu reference again. You can see that it is impossible to add it any more. So, to avoid having problems when adding a menu as a reference, you should re-enter the Axapta client and, before expanding the menu, add the needed menu as a reference.

Original article: