A cacophony of ramblings from my potpourri of notes
|
Subscribe
| |  |
Search
Categories
On this page...
| January, 2009 (4) |
| December, 2008 (4) |
| November, 2008 (2) |
| October, 2008 (2) |
| September, 2008 (4) |
| August, 2008 (2) |
| July, 2008 (3) |
| June, 2008 (9) |
| May, 2008 (3) |
| December, 2007 (1) |
| October, 2007 (1) |
| August, 2007 (1) |
| July, 2007 (1) |
| June, 2007 (3) |
| April, 2007 (3) |
| February, 2007 (4) |
| January, 2007 (1) |
| December, 2006 (1) |
| November, 2006 (3) |
| October, 2006 (5) |
| September, 2006 (4) |
| August, 2006 (4) |
| July, 2006 (6) |
| May, 2006 (1) |
| March, 2006 (1) |
| February, 2006 (7) |
| January, 2006 (1) |
| November, 2005 (4) |
| October, 2005 (7) |
| September, 2005 (7) |
| August, 2005 (7) |
| July, 2005 (9) |
| June, 2005 (12) |
| May, 2005 (3) |
| April, 2005 (8) |
| March, 2005 (8) |
| February, 2005 (10) |
| January, 2005 (3) |
| December, 2004 (4) |
| November, 2004 (1) |
| September, 2004 (4) |
| August, 2004 (1) |
| July, 2004 (1) |
| June, 2004 (8) |
| May, 2004 (5) |
| April, 2004 (16) |
| March, 2004 (7) |
| February, 2004 (13) |
| January, 2004 (16) |
| December, 2003 (17) |
| November, 2003 (13) |
| October, 2003 (13) |
| September, 2003 (30) |
| August, 2003 (33) |
| July, 2003 (66) |
| June, 2003 (29) |
| May, 2003 (48) |
| April, 2003 (83) |
| March, 2003 (26) |
| February, 2003 (23) |
| January, 2003 (31) |
| December, 2002 (14) |
| November, 2002 (19) |
| October, 2002 (13) |
|

Wednesday, July 30, 2003
Microsoft Identity Integration Server 2003 Update
Yikes...! According to this FAQ MIIS costs $25,000 as it is only available with Windows 2003 Server Enterprise Edition. That removes this from the list of products I can recommend. It certainly won't be something Itron proposes as a strategy.
(Thanks to Stephen Johnson for finding this out.)
Wednesday, July 30, 2003 8:16:14 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Visual Studio Help Integration Kit (VSHIK) 2003
Integrate custom help content into the Visual Studio help collection.
Wednesday, July 30, 2003 2:36:38 AM (Pacific Standard Time, UTC-08:00)
Itron

Tuesday, July 29, 2003
Reporter or the Week - Chris Sells
Each of the links below were reported on Chris' blog in the same day and I found each worth mentioning too:
(Thanks Chris!)
Tuesday, July 29, 2003 7:13:07 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Coolest Tool of the Month: ManagedAdd-ins (and Reflector)
Wow! This is so stinkin' slick!
I downloaded the Managed Add-in and then selected Tools->Managed Add-in->Reflector.VSAddin. Vola! I had a decompiler right there as a dockable window within VS.NET! Nifty! I then downloaded the CommandPrompt and I had a docking window CommandPrompt. Cool, cool, cool! For a list of other add-ins specifically designed for this try the gallery.
Next on my list are a regular expression viewer (either RegexDesigner.NET or Regular Expression Workdbench), FxCop, and NUnitAddin.
Fantastic!! Now what about getting suport native support for this in Whidbey?
Tuesday, July 29, 2003 7:03:58 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Need I say more?

From http://www.managedaddins.net which I hope to write about shortly.
Tuesday, July 29, 2003 5:59:01 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net

Monday, July 28, 2003
ObjectSpaces Update
A co-worker, Sai Ganesh, took a cursory look at ObjectSpaces (which I first mentioned in a post entitled, "ObjectSpaces and other .NET Object to Relational Mapping Products") and made the following observations:
- The MSI file was posted back on 12/21/2001.
- The current MSI file only works with the 2001 PDC .NET Framework build. There are instructions on how to circumvent this, here, however.
- This posting presents the future of ObjectSpaces as a little uncertain.
- However, a later post by Steve Channell speculates the following:
- ObjectSpaces will be replaced by a Business Component Framework (BCF) that may be released as part of Visual Studio or as a separate Great Plains initiative.
- They also said that BCF is likely to be built around a CIL code enhancer (aka Java Data Objects) that adds persistence to regular serializable objects.
- The key points is that Microsoft will implement an entity framework as a rebuttal to J2EE entity beans.
At this point my take would be that there is nothing in the ObjectSpaces Tech. Preview (the one available in the MSN ObjectSpaces group) worth evaluating. Whether Microsoft does or does not continue with this technology is irrelevant to some degree as the 2 year time delay between the Tech. Preview and now is too long to understand what ObjectSpaces would be if Microsoft was doing something with it. The only value in examining ObjectSpaces today would be to learn something about how to implement your own Object-Relational mapping system and perhaps have a starting point to work off of.
Monday, July 28, 2003 8:07:16 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Microsoft Identity Integration Server 2003
It is amazing to me how often I come across products at Microsoft that I haven't heard of even though I believe I am pretty connected with the company. Microsoft Identity Integration Server 2003 (MIIS) is one of these products and it seems to offer some significant functionality. MIIS "helps you synchronize identity information across a wide variety of identity stores; easily provision and deprovision accounts and identity information across systems." Wow... cool! So I could have multiple disparate user management systems and, assuming I could get them integrated with MIIS, it would be MIIS that took care of synchronizing each of the user management systems.
The following quote comes from the MIIS Overview document:
In most enterprises today, each individual application or system has its own user database or directory to track who is permitted to use that resource. Identity and access control data reside in tens and hundreds of different directories and applications such as specialized network resource directories, mail servers, human resource, voice mail, payroll and many other applications.
Each has its own definition of the user's "identity" (name, title, ID numbers, roles, membership in groups). Many have their own password and process for authenticating users. Each has its own tool for managing user accounts, and sometimes dedicated administrators responsible for this task. Further, most enterprises have multiple processes for requesting resources and for granting and changing access rights. Some of these are automated, but many are paper-based. Many differ from business unit to business unit even when performing the same function.
Administration of these multiple repositories often leads to time-consuming and redundant efforts in administration and provisioning. It also causes frustration for users, needing them to remember multiple IDs and passwords for different applications and systems. The larger the organization, the greater is the potential variety of these repositories and the effort required to keep them updated. This labyrinth of inefficient processes and overlapping systems can have significant consequences for:
(Thanks to Stephen Johnson for pointing this application out to me.)
Monday, July 28, 2003 7:30:40 AM (Pacific Standard Time, UTC-08:00)
Computer Related

Sunday, July 27, 2003
Using @ to Disambiguate Keywords from Identifiers in C#
While reading the C# Language Specification today I noticed the use of the @ sign to disambiguate a keyword from an identifier. When you do this the identifier is called a verbatim identifier. So, for example, you could write code as follows:
class
@class
{
static void Main()
{
@static(false);
}
public static void @static(bool @bool)
{
if (@bool)
System.Console.WriteLine("true");
else
System.Console.WriteLine("false");
}
}
Why would you want to do this you ask? Well, what happens if you use an assembly that has a C# keyword for a public name because that keyword did not happen to be a keyword in the original language of the assembly. That would prevent you from calling this assembly perhaps unless there was a way to disambiguate.
Another place I would be very tempted is in the name of the variable that is returned from a function. Often it is difficult to come up with a variable name. "return" would be great but it is a keyword so you have to resort to "ret," which is an abbreviation or perhaps result, which just isn't quite the same. Now I can just use @return.
public string GetName()
{
string @return;
Console.Write("Enter your name:");
do
{
@return = Console.ReadLine();
}
while (@return.Length == 0);
return @return;
}
Cool! How 'bout making this a coding standard?
I am confident this idea will get lambasted but I still like it... so there!
Sunday, July 27, 2003 4:46:20 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Hanna Grows Up a Little More
Over the past month our 9 month old daughter Hanna has experienced a spurt in physical capabilities. To start with she is pulling herself up to a standing position whenever near anything stable enough to support her weight. Next, she is able to crawl up stairs unassisted which is most disconcerting because she has not yet mastered going down and doesn't seem to even be conscious of any danger when she attempts to go down head first. Lastly, she even took a few steps with the push toy we have. It was outside on the grass so it didn't role away from her too fast.
Another note is that she is starting to take a bottle (something she has refused in the past). This means that perhaps mommy can get away for longer breaks as Hanna has already been eating solid foods for two or so months.
Sunday, July 27, 2003 1:42:18 PM (Pacific Standard Time, UTC-08:00)
Personal | My Family
Spokane Locals Build a Car of the Future
Here's a great commuter car built by local Spokane residents none-the-less. Their website is
www.commutercars.com but
the article provides a great write-up.
Sunday, July 27, 2003 9:48:57 AM (Pacific Standard Time, UTC-08:00)
Miscellaneous

Thursday, July 24, 2003
ObjectSpaces Update
A co-worker, Sai Ganesh, took a cursory look at ObjectSpaces (which I first mentioned in a post entitled, "ObjectSpaces and other .NET Object to Relational Mapping Products") and made the following observations:
- The MSI file was posted back on 12/21/2001.
- The current MSI file only works with the 2001 PDC .NET Framework build. There are instructions on how to circumvent this, here, however.
- This posting presents the future of ObjectSpaces as a little uncertain.
- However, a later post by Steve Channell speculates the following:
- ObjectSpaces will be replaced by a Business Component Framework (BCF) that may be released as part of Visual Studio or as a separate Great Plains initiative.
- They also said that BCF is likely to be built around a CIL code enhancer (aka Java Data Objects) that adds persistence to regular serializable objects.
- The key points is that Microsoft will implement an entity framework as a rebuttal to J2EE entity beans.
At this point my take would be that there is nothing in the ObjectSpaces Tech. Preview (the one available in the MSN ObjectSpaces group) worth evaluating. Whether Microsoft does or does not continue with this technology is irrelevant to some degree as the 2 year time delay between the Tech. Preview and now is too long to understand what ObjectSpaces would be if Microsoft was doing something with it. The only value in examining ObjectSpaces today would be to learn something about how to implement your own Object-Relational mapping system and perhaps have a starting point to work off of.
Thursday, July 24, 2003 5:05:22 PM (Pacific Standard Time, UTC-08:00)
Itron

Monday, July 21, 2003
Exchange 2003: New Distribution Group Features
Although I am looking forward to the new distribution list features in Exchange 2003 I am disappointed that they didn't include the ability for users to subscribe and unsubscribe.via email or via the web. Perhaps the most significant feature is the ability to prevent unauthenticated users from sending email to a distribution list.
"In Exchange 2000 and earlier, you can block specific users from
sending to a DL or group, or you can restrict email to a particular
list of named users. However, you can't configure a DL or group to
accept messages only from authenticated users (and not, for example,
from spammers). Exchange 2003's new "Accept messages from
authenticated users only" check box gives you exactly that capacity."
This is a great addition when it comes to reducing spam. We actually had this problem at work with one of our list addresses that somehow an external party go a hold of.
Monday, July 21, 2003 10:32:14 PM (Pacific Standard Time, UTC-08:00)
Computer Related

Sunday, July 20, 2003
PocketConsole
One of the frustrations with using the Compact Framework on PocketPC is that although the wizard enables creation of Console application there is no console available from Microsoft to actually run these applications on PocketPC (the wizard is designed for CE where there is a Console). Fortunately, there is a solution: PocketConsole.
"PocketConsole is a software, which provides a console device for Pocket PCs."
Perhaps this will help Mike with automating NCFUnit.
Sunday, July 20, 2003 5:44:32 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Heavy Plant Crossing (Light Plants Have to use the Bridge Down the Way.)
While vacationing in England we came across several interesting signs but this was undoubtedly my favorite. Don't the English just have a way with words?

Sunday, July 20, 2003 4:25:53 PM (Pacific Standard Time, UTC-08:00)
Miscellaneous | Personal | My Family
Dr. James McAuliffe Found that Baboons Could Program, Use and Test Software
If you thought the job market was bad now just wait...
P.S. I came across this item on Eric Gunnerson's weblog and couldn't resist reposting.
Sunday, July 20, 2003 4:17:43 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
DVD-R Format Compatible with 96.74% of DVD Players (DVD+R=87.32%)
"CDR-Info, has determined that DVD-R is clearly the most compatible DVD recording format on the market."
Sunday, July 20, 2003 4:10:33 PM (Pacific Standard Time, UTC-08:00)
Computer Related
Visual Studio Installer Complaints and Feature Requests
Below is a list of feature requests for the Visual Studio Installer Tool. Frankly, this took currently deserves an F. The list below was contributed to by our Alameda office and the Itron Framework team. (How about Microsoft eating some of their own dogfood with this tool?)
- Ability to add not only files, but also folders and subdirectories also to the file system. (i.e) If we pass the folder it should package all the files dynamically. (Currently much of our help documentation includes generated files and adding these all manually rather than adding all the files in a particular directory (perhaps with a mask) is an absolute pain. We need the ability to "include all files in subdirectories {x} with filename filter mask {y}".
- Facility to install at many networks machines/servers at a time. One click installation at many target machines at a time. Remote deploy to multiple machines.
- Facility to add custom dialogs to 'Add Dialog' dialog list view and ability to include custom dialogs in between the existing UI sequence.
- A means for customizing the existing VS.NET install wizard.
- Ability to add custom actions before copying (installing) the files to the target m/c. It is not possible now. (i.e. Facility to add custom actions before the splash screen starts to initialize our installer or target m/c to a particular state - before actually installing anything into the target m/c)
- Facility to add custom actions before/after execution of each dialog
Integrate a new Design UI for Windows Installer where, we could attach events for tasks carried out before, after and during Install, Uninstall, Rollback and Commit
- Ability to register the components to registry automatically like a "COM DLLs" folder in the file system with properties to auto-register the components.
- Ability to install other applications (other .msi files) before/after/during the installation.
- Creating shortcuts for an .exe at Desktop/Programs Files folder is not working properly.
- A UI to access the MSI database and tables.
- Ability to do selective installation (to add our own component tree where the user would be able to select the components that they want). Preferably this should be hierarchical like in Microsoft Office and Visual Studio.NET.
- A pie chart representation for the disc cost.
- In the existing UI dialog boxes, provide facility to control the size, location and other properties of the controls
, like ability to put the bitmaps vertically or horizontally or wherever we want. We need to be able to customize the UI screens.
- Ability to create our own dialogs using windows forms. Perhaps requiring a deriving from an existing install dialog form.
- Ability to specify parameters (such as defaults) on the command line of the install that are then passed to dialogs within the install.
- Silent install support (this would require the ability to default any options on the install).
- Localization: Ability to change UI culture at runtime. One installer should be enough instead of having to build different installers for different languages. Like, choosing the language of install at the beginning of installation
- Package multi-tired applications in multiple installers. Ability to be able to split install into multiple machines like database server, business server etc at the same time. (for example: an UI which captures multiple install locations to install portions of a single installation).
- Dialogs for creating or using existing databases, schema and tables. Running DML commands (such as a TSQL script). This should be transacted.
- Unattended Installation/Silent install support.
- Ability to pass command line parameters to install or sub components of the install.
- Facility to show the files being copied to the user when Progress dialog is being shown
- 'Register User' is not working properly, throws an exception when we pass executable for custom actions.
- Current VDPROJ files offer no control over whether DLL dependencies should be included or not. We have a "Core" library of DLLs that are placed in the GAC, and then multiple modules for each subsystem. Maintaining these to keep core DLLs from showing up in subsystem directories is a continual burden.
- Current VDProj file is proprietary format, not XML, and there is not any public API for modifying the files.
- Our GAC merge module (~90 DLLs) causes VS.NET to crash without any trace when we try to build a setup project that contains only this module.
- Documentation for merge modules could be improved, especially documentation for "Custom tasks" written in C# installer classes.
- Forced double-deployment of core DLLs
- We are forced to deploy some DLLs in both a web/bin directory and in the GAC, since some inclusion references made from ASPX files sometimes require the presence of a core DLL in the web/bin directory.
- Our installer classes sometimes rely on our core product DLLs to get their work done. But the GAC is not available at the time they run, so we are forced to deploy these dependent DLLs into the application directory as well as the GAC.
- Integration into the VS.NET IDE is sometimes awkward - you could close the IDE and changes would not always be saved.
VDPROJ files take far too long to load into the VS.NET IDE. They should load immediately, and do their dependency-checking work at build time.
- Need to make VDPROJ projects better at detecting to support incremental re-builds. At present, even if I change no files at all, a full re-build occurs.
- In building merge modules, need to detach the need of WEB projects to be referenced by the local WEB URL. This has proved painful in our build environment, where we have to build several code lines of the product.
- There's no way to set the default of "install for me only/for everyone" without resorting to editing MSIs with ORCA, or use InstallShield.
- There's no way to set the version string at build time, without using a tool like PERL to update the version string in a VDPROJ file before a build.
- The UI editor is limited and awkward.
- Integration with source control still is less than ideal. Sometimes I can overwrite a checked-in file without a prompt, other times I am warned to check a file out first (instead of this causing an automatic check-out, as happens with most other files)
- VDPROJ references tend to be saved internally as absolute paths, so a module created on one machine won't work on another -> forces use to use subst to normalize drives. (This may be fixed in 2003?)
- Performing textual DIFFs for different versions of VDPROJ files is practically impossible because the order of items in the file shifts every time you re-save it. This makes it difficult to see whether a file you are checking in has problems or not. As mentioned already these files should be XML.
- Need a more reliable way to update DLLs that are deployed in the GAC with the same AssemblyVersion. The version-numbering scheme does not work well for strongly-typed DLLs, since you cannot bind to an updated DLL without having to modify the app.config file to make it compatible. This is too onerous in a system with > 10 distinct applications.
- Need to include GACUTIL with the .NET framework distribution. In 1.1, we now have to use a DOS command prompt to copy DLLs that have the same AssemblyVersion into the GAC, since the drag and drop does not always work to do this. This is a common task for manually applying hotfixes.
Hotfix support: We currently need to use InstallShield for issuing Windows Installer-integrated hotfixes. It would be nice if this was built into VS.NET.
- The code build system is less than ideal. We build about 30 MSM and MSI files, and build system integration is pretty bad. We use a batch file to call DEVENV To build these in series. In future, we'd like to see stronger support for command-line, automated build tools for all VS.NET projects. We build a large number of projects into our product now, and the partitioned solution approach advocated in MSDN is not sufficient for our needs. Build tools that look like NANT and NMAKE get us part of the way there, but a build system that could operate directly on the VS.NET project file types would be optimal. The ability of a solution to control the build order is helpful, but maintenance becomes impossible when using many projects.
Perhaps many of the above features are somewhat possible via workarounds with the current product. In that case I would love to know the best practices for dealing with these issues and I request that you make it easier in the future. At a minimum documentation on how to do any of the above tasks would be great.
Sunday, July 20, 2003 3:53:44 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
A New Uninvited Addition to the Michaelis Household
Today over breakfast our neighbor asked us if we new we had a wasp nest in the garden.
"Wasp nest? No, of course not, do we really? Hey, check that out...."

Just before spraying I discovered that both the remaining wasp spray cans in the house were virtually empty. Nothing like adding a bit of excitement. Well the spray made pretty good work of it. I sprayed after dark as supposedly the wasps are less active then (though they sure didn't seem to lack any energy based on the buzzing sound coming from the nest once I started spraying.) I was disappointed that the spray dissolved the nest somewhat as I was hoping to save it and show Benjamin. Oh well... perhaps another time.
Sunday, July 20, 2003 2:55:14 PM (Pacific Standard Time, UTC-08:00)
Miscellaneous | Personal | My Family
Trying to Choose an Open Source Software License
I currently have two projects (eBible and Template Code Generator) in the works and I have not yet posted code for either of these because I am not sure what license agreement to use.
Currently I have assigned the GNU Lesser General Public License to the Template Code Generator but I believe I can change it (especially since there is not actually any source code there yet.) In spite of the fact that this license appears to be written in English I am having trouble understanding the full implications of the license.
- If I reference/link to the binary created within the Template Code Generator in order to create some other assembly/package can I distribute that second assembly/package under whatever terms I choose as long as I include the Template Code Generator source code and it's accompanying license agreement of the as part of the distributable for my the second assembly/package? In other words, if I don't wish to distribute the source code or binaries from the second assembly packet under the same terms (free binaries or source code) would that be allowed?
- Also, does the following quote from section 6 require me to re-distribute the .NET framework or VS.NET because I used these "utilities" to compile the binary?
'For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.'
I presume the term "executable" in the above sentence includes DLLs?
- If there is a snippet of code within the Template Code Generator that I share with other software that is not distributed as open source is that allowed?
- Assuming there is some part of the LGPL license that is not acceptable how would I go about modifying and still having it be acceptable to the OSI. More importantly, would this be a long an involved process or relatively simple.
Based on the complexities of this license (IMHO) I am tempted to simply post the code on GotDotNet where I can create any license agreement I like. (This of course is an advantage over SourceForge that I hadn't really considered in my original criticism of Microsoft creating workspaces on GotDotNet and it would not be surprising if this was the only reason Microsoft created the workspaces.)
Sunday, July 20, 2003 4:24:35 AM (Pacific Standard Time, UTC-08:00)
Personal | In Pursuit of God | Computer Related

Friday, July 18, 2003
Degree Confluence Project
Here is an interesting project:
"The goal of the project is to visit each of the latitude and longitude integer degree intersections in the world, and to take pictures at each location. The pictures and stories will then be posted here."
Friday, July 18, 2003 11:48:21 AM (Pacific Standard Time, UTC-08:00)
Miscellaneous | Personal | My Family | Personal | My Travel
TSA Recommends Removing Your Shoes at Security
I have traveled enough over the past few months to be rather baffled by the randomness of this rule. I find that certain checkpoints have no problem with my New Balance 804 sneakers and others let me know in unsubtle ways that if I don't remove my shoes before hand I will be searched once I get to the other side. In fact, I have noticed differences at the two different security checkpoints in Spokane (my home airport) even as I had to go through both checkpoints in one day. The first checkpoint insisted that if I didn't take my shoes off before hand I would be searched. The second had no problem with me walking straight through and when I mentioned that the previous gate had insisted they said that was ludicrous and no checkpoint would force me to do anything. Well perhaps they wouldn't force me but if they are going to insist on searching me at the other side where they will "request" I remove my shoes anyway then.... Frankly, this rule puzzles me almost as much as not allowing nail clippers through. Surely I could hide much larger items (assuming no metal of course) in other locations on my person then in the soles of my shoes. Heck, there are false stomachs I could wear in which I could probably place my entire carry on bag. Anyway.... enough of the attitude. I understand it is for my safety, I just wish I had the aptitude to understand.
Friday, July 18, 2003 5:25:47 AM (Pacific Standard Time, UTC-08:00)
Miscellaneous | Personal | My Travel
MSN Messenger 6.0 Released
Today MSN Messenger 6.0 was released (I previously reported on the preview here) and the fact that one of the key features was a greater ability to be firewall friendly.
A couple frustrations:
- When you try application sharing it tells you that you need to download the current version of Windows Messenger. Dumb... why didn't they install the required components when I installed MSN Messenger?
- Application sharing only works for two users so you can't, for example, hold a conference call between three people and replace webex.
Friday, July 18, 2003 12:53:18 AM (Pacific Standard Time, UTC-08:00)
Computer Related

Thursday, July 17, 2003
BibleReader for Pocket PC
Here some Bible software for the Pocket PC that my brother recommended. I really like the startup page. Rather than requiring you to enter the book, chapter and verse it allows you to drill down by simply clicking the book then the chapter then the verse. Simply but a pretty significant UI helper given the Pocket PC.
Along the same lines, there is a WAP online bible at http://GodBib.com.
Thursday, July 17, 2003 4:16:47 PM (Pacific Standard Time, UTC-08:00)
Personal
VM Ware vs Virtual PC
Itron seems to have selected VM Ware as their primary virtual machine software (for testing purposes mostly). I have been trying Virtual PC (which Microsoft acquired from Connectix) but I have not tried VM Ware. I have been very impressed with Virtual PC, however, and since it is another product that presumably will be supplied with MSDN Universal (if not the OS) it is another licensing cost I can avoid.
Yasser points a key advantage with Virtual PC is the fact that it uses the right device drivers for the hardware versus the virtualized device drivers used VM Ware.
Thursday, July 17, 2003 3:15:08 PM (Pacific Standard Time, UTC-08:00)
Computer Related
Enterprise Localization Toolkit by Todd Abel
This is an interesting as our Alameda office stores resources in the database rather than in resource files and this article describes a toolkit from Microsoft that does the same thing. Hmmm.....
Thursday, July 17, 2003 6:00:27 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Writing Faster Managed Code: Know What Things Cost by Jan Gray
The most noteworthy item in this article was that there was no difference in performance between a property and a field unless the property was marked as virtual (in which case it was 6 times slower.) Hmmmm.... I would have thought the difference to be negligible not zero.
Also, if you wish to do your own timings the high performance API declarations are as follows:
[System.Runtime.InteropServices.DllImport("KERNEL32")]
private static extern bool QueryPerformanceCounter(
ref long lpPerformanceCount);
[System.Runtime.InteropServices.DllImport("KERNEL32")]
private static extern bool QueryPerformanceFrequency(
ref long lpFrequency);
Thursday, July 17, 2003 5:57:06 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
SOAP Futures by Remoting Guru Ingo Rammer
This is an interesting post by remoting expert Ingo Rammer on the future of SOAP and how it too will support channels and formatters. Does this mean we will get a binary formatter as part of Microsofts web services architecture?
Thursday, July 17, 2003 5:49:17 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
An WIN32 API Wrapper
While reading through responses to
Chris Sells' blog about Interop Declarations for Windows.h I came across
this post that seems to be more promising than the automated one provided by Chis. I would like to see Microsoft provide this in Whidbey.
Thursday, July 17, 2003 5:32:10 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net

Tuesday, July 15, 2003
eBible Update Downloaded and Parsed Old Testament
We have successfully assembled the NIV version of the Old and New Testaments. As we started working on the New Testament we encountered problems in our tests when verses were missing (such as Mathew 17:21). We decided that rather than throwing an exception we would log all cases of this problem to a file and check them individually.
The following is a list of the missing versus from the NIV:
Matthew 17:21, Matthew 18:11, Matthew 23:14, Mark 7:16, Mark 9:44, Mark 9:46, Mark 11:26, Mark 15:28, Luke 17:36, Luke 23:17, John 5:4, Acts 8:37, Acts 15:34, Acts 24:7, Acts 28:29, Romans 16:24
Today we had Lisa Hall join our team. We setup a Webex in order to handle the "pair" programming between all three people. In order to better facilitate team development we set up a project on GotDotNet called Electronic Bible. Nothing there yet but as soon as we have assembled the entire version we will post.
Next Steps:
-
Store data in SQL Server MSDE.
-
Prototype the user interface.
-
Check if parser works for other versions.
Tuesday, July 15, 2003 5:00:06 PM (Pacific Standard Time, UTC-08:00)
Personal | In Pursuit of God
More on the NedStatBasic Web Counters
I started using the NedStatBasic web counters almost a week ago now. One of the problems, however, was that each time I went to my own weblog to check that it was posting correctly I incremented the stats.
To avoid this problem I needed to change the script not to run if I hit the web page. To do this I created a web page that would assign a cookie to me. The code was as follows:
<HTML>
<BODY
onload="document.cookie = 'IsWebLogAuthor = true; expires=Fri, 01-Jan-2010 00:00:01 GMT';">
</BODY>
</HTML>
After hitting this page I had a cookie assigned. Not that an expiration date is required to make sure that the cookie survives across sessions.
Next, I added a postStatistics(id, options) function to my #homeTemplate.txt page within Radio as follows:
<!-- BEGIN_CUSTOM_EDIT -->
<script>
function postStatistics(id, options)
{
var isAuthor;
var nameValue;
var cookieArray = document.cookie.split(";");
for(var i=0; i<cookieArray.length; i++)
{
nameValue = cookieArray[i].split("=");
if(nameValue.length==2 &&
nameValue[0]=="IsWebLogAuthor" && nameValue[1]=="true")
{
isAuthor=true;
break;
}
}
if(!isAuthor)
{
nedstatbasic(id, options);
}
}
</script>
<!-- END_CUSTOM_EDIT -->
Finally, in the NedStatBasic HTML source code I changed
<script language="JavaScript" type="text/javascript" >
<!--
nedstatbasic("<my id>", 0);
// -->
</script>
to
<script language="JavaScript" type="text/javascript" >
<!--
postStatistics("<my id>", 0);
// -->
</script>
There was also a <noscript> block but since my browser has scripting enabled this HTML never appears so I didn't need to worry about it.
One thing that puzzled me somewhat about this was the fact that the document.cookie was stored across documents on this site. In other words, setting the cookie on one page made it available to another page event though the cookie was a document property. Interesting.
I would like to thank Palani Thangaraj for help with this.
Tuesday, July 15, 2003 8:38:04 AM (Pacific Standard Time, UTC-08:00)
Blogging | Radio Userland | Computer Related
ObjectSpaces and other .NET Object to Relational Mapping Products
The ObjectSpaces MSN group discusses the Microsoft ObjectSpaces SDK (Technology Preview). This technology is designed to provide object to relational mapping tool. For those considering other options, there is a
recent post listing other .NET technologies (both open source and cost based) targeting the same space. The API documentation for ObjectSpaces is available
here but you need to be a member of the group to view it.
Tuesday, July 15, 2003 8:21:11 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
New Features of IIS 6.0's FTP Server
Tim Huckaby provided a great summary of the new FTP features in Windows 2003. I have encountered the issues with deploying an FTP server on IIS 5.0 and hence I was excited that restricting users to specific directories was supported in IIS 6.0. Unfortunately, as I described here, I was not able to get FTP configured with user isolation. I ended up having to go with the traditional method supported by IIS 5.0.
Tuesday, July 15, 2003 7:03:31 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net

Sunday, July 13, 2003
Book Report: Essential .NET (Volume 1) by Don Box
Today I read the first three chapters of Essential .NET Volume 1 by Don Box. I also started a
book report and will add to it as I read more. So far, I am anxious to read later chapters as the first 3 (at least) were almost entirely review.
Sunday, July 13, 2003 2:57:05 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Long Living Transactions across Service Based Architecture
This is a very high level presentation on creating long living transactions across distributed systems. They key design principal that can be gleaned from this is inclusion of explicit support for rollback and commit in the interface architecture (versus implied commit and rollback built messaging protocols that apply transaction support as part of the protocol.)
Sunday, July 13, 2003 10:45:10 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Microsoft's Beta Program Process
This article provides some interesting insight into the beta testing process at Microsoft.
Sunday, July 13, 2003 10:08:09 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Pocket PC 2003 Upgrades
I originally reported that there were no upgrades to my iPaq 3870. Fortunately, that has changed. Upgrades for H5400, H3900 or H3800 series iPaqs are now available here for $29.99.
Sunday, July 13, 2003 9:50:21 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Handheld Printing with a Handheld Printer
I came across
this on Slashdot and thought it was cool as heck. Check out the RMPT handheld printers written about
here and
here. The technology is from
PrintDreams. One thing I don't quit understand is how the printer knows where on the page you are before it prints the first swipe. Presumably you have to scan over the edge or some such.
Saturday, July 12, 2003 11:57:19 PM (Pacific Standard Time, UTC-08:00)
Computer Related

Saturday, July 12, 2003
Doug's Story of Bob
OK, now that I have come across Doug Purdy's blog I actually read some of it. I think his comment about Bob is really excellent and I know my wife would seriously appreciate it if Microsoft could please do this. One of the problems, of course, is that most of Microsoft technology is actually pretty cool and so even when I finish my work (come on, who am I kidding... I never finish my work) I still come home to play with it. Microsoft, do not read this as a request to stop doing cool things no matter what my wife would like.
Saturday, July 12, 2003 12:00:32 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net

Friday, July 11, 2003
Method Interception Using a Custom RealProxy by Doug Purdy
This is a must watch video regardless of whether you know you are interested in the topic or not. It is just very cool technology and Doug (also see doug here. Hey.... is that my blog he is pointing to? I am truly honored... and of course confused???) has explained it succinctly. (And such nice handwriting too. It clearly distinguishes Doug as the Einstein of the year.) The code is available here.
Now that I have told you how great Remoting and RealProxy is I would like to register my complaints:
-
<%myNote("It should be a standard at Microsoft to never force inheritance!!!", "yellow", "right")%>Dang-it-Larry but would Microsoft please quite forcing me to derive from objects in order to get can do functionality. .NET and C# only provide single inheritance so don't make it no inheritance by forcing me to derive from MarshalByRefObject in order to gain remoting functionality. IT SHOULD BE A STANDARD AT MICROSOFT TO NEVER FORCE INHERITANCE!!! You can allow inheritance for the simplest implementation but provide a workaround via which I can get the same functionality via interface inheritance for example.
- Creating the ProxyFactory is OK but isn't there some way to override or configure new so that it calls the proxy factory automagically rather than manually calling ProxyFactory.GetProxy()? RemotingConfiguration.Configure() can do this so is there some way for me to do this and have ProxyFactory.GetProxy() called when new is used instead? Hmm.... perhaps it is time to do some decompiling.
One idea for using interception is to enable load balancing or fail-over. Imagine that a function call is made that the proxy intercepts. Next, the proxy checks that the requested server is indeed available but if not, it searches (perhaps via UDDI) for another provider of the service and instead forwards the call on to that service. Hey, how 'bout Microsoft providing this functionality too?
Another way I would really like to use this is for UI customization. Imagine that a you publish out your application with a WinForm but the customer doesn't like a particular placement of a control or, more common perhaps, the customer wants to add an additional field. No problem you say. When you code calls new (see my earlier request to configure new to call ProxyFactory.GetProxy) to instantiate your form and instead the proxy steps in and looks in the configuration file to see if there is an entry that a different derived form be created instead. Viola! The customization is made.
Friday, July 11, 2003 5:28:57 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
How do I configure my Windows 2000 and Windows XP computers to print to the DI-704P, DI-714P+, DI-707P, or DI-713P?
OK, so I purchased the D-Link DI-713P wireless router about 1 year ago now and each time I installed computer I went through the hassle of installing the client software in order to be able to access the printer connected to the router. (I purchased this particular router because not only did it have the printer port but it also had a serial port to which I could connect an external modem for fail over if my broadband connection went down. Not that I have ever actually done this and since I only have one phone line I don't believe my wife would even let me but you get the idea.) Anyway, it turns out that the client software is not even needed as there is built in support from Windows 2000 and Windows XP.
Friday, July 11, 2003 4:56:49 PM (Pacific Standard Time, UTC-08:00)
Miscellaneous
Microsoft Professional Developers Conference Registration Open
This is the best conference and even if my company wasn't paying I would foot the bill. The one event offered roughly every 1.5 years that is a must attend event for any Microsoft focused developer. What you see here will be the key development technology released from Microsoft 1-2 years later. I am pretty informed about upcoming technology from Microsoft and I still believe this will be packed of information I didn't know.
Friday, July 11, 2003 4:50:16 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Finding a ASP.NET Hosting Company
Since the cable connection into my brother's town home is not the most reliable in the world and the time it takes keeping a server up and running (especially an Exchange server) is an order of magnitude more than I have to spare, I have often considered moving Michaels.net over to an hosting service. Here are some I have considered. They all support ASP.NET of course:
Perhaps the biggest reason I haven't actually made the switch is because I love how much I learn (mostly from my mistakes of course) by hosting the domain myself.
Friday, July 11, 2003 4:45:29 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Using a Tablet PC To Remotely Control Your Primary PC
For some time now I have been working on a few teams that have been wrestling with how to do teleconferencing and white-board sharing. This has become a very frustrating experience. We first tried the suction cup deal which mounted to the white board and tracked the markers via RF or light. Nope, the suction cups fell down over time and the thing got out of alignment or something. Recently a peer (Rob Simon) tried one of the Wacom Graphire (buy.com caries a number of these) tablet mouses but from what I heard he doesn't seem think it does the trick either. It is kinda cumbersome to draw and watch the screen at the same time. Another option was a relatively cheap webcam but the resolution wasn't good enough to be able to read what was on the white board.
What I would really like is to try a tablet PC but I already have a laptop and I don't want to carry around another one. To bad my IBM T40 didn't come with a TabletPC screen that flipped around. I don't think I could comment on a TabletPC until actually trying one out for a month. I expect my response to be extreme appreciation or extreme disdain.
Anyway, if I was to go with a tablet PC the airpanel V110 one seems like it might suit my needs. It essentially adds a remote control to my primary computer. If I can't have my primary computer with one of these devices then having a TabletPC remote control seems like the next best thing. John, can I buy and one of these please? Pricing ranges around $900.
Friday, July 11, 2003 4:31:25 PM (Pacific Standard Time, UTC-08:00)
Computer Related
Introducing C++0x - Next Generation C++
I came across a link with directions to the next generation C++, known as C++0x, on Slashdot. No detail at the moment but it indicates that the C++ community is aware of the demise of the language if nothing is done.
Friday, July 11, 2003 3:35:51 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
New Radio Spectrum Allocations Help to Bring Wireless Data Worldwide
Here's another article on worldwide agreement on a WLAN frequency.
Friday, July 11, 2003 9:38:50 AM (Pacific Standard Time, UTC-08:00)
Itron
FastCounter Website Counter from Microsoft
I mentioned earlier in the week that I have begun using "Free Website Counters" from
NedStatBasic. It appears that Microsoft has one of these too. The free one is not as extensive as the free one from NetStatBasic but they have a subscription one too. The more extensive ones are perhaps available via Publisher 2002 and Frontpage 2002 but it is not clear to me at this time.
Friday, July 11, 2003 3:18:08 AM (Pacific Standard Time, UTC-08:00)
Computer Related

Thursday, July 10, 2003
Two .NET Centric Articles on Test-Driven Development
Thursday, July 10, 2003 4:14:33 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
How to Set Up an FTP Server in Windows Server 2003 - Not!
In order to begin posting my weblog to a Windows 2003 box I needed to install and configure an FTP server. Unfortunately, getting this to actually work has been way more difficult than the instructions here indicate. Here is what I did:
- Ran the through the How to Set Up an FTP Server in Windows Server 2003 instructions
- Added another FTP site
- On the Restrict FTP users to their own FTP home directory dialog I selected Isolate users (Users must be assigned an FTP home directory within the root of this FTP site.)
- Home directory path was set to c:\Inetpub\ftproot
- Permissions for both read and write were granted.
- Added a directory for the user I was logging in under
Tried to log in as user and got the following error:
"530 User Test cannot log in, home directory inaccessible.
Login failed."
Tried a number of things including logging in as anonymous but still I am unable to log in.
Arrrgghhhhh!!!!!
Thursday, July 10, 2003 10:39:14 AM (Pacific Standard Time, UTC-08:00)
Computer Related
Microsoft Unveils Collaborative Development Environment
OK, so this is cool but...
This is a great example of what I described in my post "Microsoft Innovation: Reinventing What Already Exists" Here Microsoft has created a community website on GotDotNet that I fail to see has anything that is not already available with SourceForge. Am I missing something?
Now as I said before, it makes sense for Microsoft to do this type of thing to gain market share and such but, at least from what I can see, there doesn't seem to be much revenue generated from GotDotNet. So, if Microsoft is going to spend money on building or creating something then how about focusing on stuff that isn't already out there and available and even pretty functional?
Anyway, I have a few projects and I will try placing at least one of them on GotDotNet as a comparison.
Thursday, July 10, 2003 8:08:27 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Compact Framework Limitations
In the Developing Pocket PC applications using the Smart Device Extensions for Visual Studio .NET MSDN webcast Woody Hewitt lists limitations with the Compact Framework (CF) as follows:
- Reflection emit (simply reflection is available)
- Remoting (Ughhh!)
- Serialization* (see Pickle)
- Codedom
- Printing*
- COM Interoperatility*
- Server side functionality (3rd party products are available but not supported by CF)
- XPath and XSLT
* There is 3rd party support for this functionality
Wednesday, July 09, 2003 11:17:49 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net

Wednesday, July 09, 2003
MSDN Webcast: Next Generation Pocket PC and Smartphone Development Platform
I took the time to listen to this broadcast this morning. It was excellent. It covers such topics as
- Rapiconfig for automatically restoring the configuration of a device
- Writing shell extensions more easily (including autocomplete in text boxes)
- SMS Messaging interception and processing along with a virtual SMS radio for testing.
- WAP over SMS (including application wakeup via WAP)
- Native BlueTooth APIs
- Activesync over Internet
- Drivemapping over to the emulator
- PocketPC 2003 SDK overview
If you are doing PocketPC development this is a great introduction to what is possible on PocketPC 2003.
Wednesday, July 09, 2003 10:25:41 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
World Radiocommunications group OKs new spectrum for WLANs worldwide
This is pretty exciting news. The question now is whether a proprietary wireless protocol could be used on this band. If the answer were yes, then perhaps Itron could consider using this band for there wireless communications as well.
Wednesday, July 09, 2003 3:54:05 AM (Pacific Standard Time, UTC-08:00)
Itron
Windows 2000 Service Pack 4
Windows 2000 Service Pack 4 has been released. (I am a little delayed on this post as SP4 was published over a week ago but since I was on vacation and I didn't get around to posting the news until now.)
Wednesday, July 09, 2003 12:41:53 AM (Pacific Standard Time, UTC-08:00)
Computer Related

Tuesday, July 08, 2003
Free Website Counters
Now this is pretty cool! NedStatBasic offers free web counters. It includes number of visits and the linking URLs along with all related statistics. I added counters of my own to this weblog (see the
on the right).
Thanks to Michael Stokesbary for this find.
Tuesday, July 08, 2003 10:10:20 PM (Pacific Standard Time, UTC-08:00)
Blogging | Radio Userland | Computer Related
Finding Users on a Windows Network
This was an interesting tip I had never seen before. Presumably one could do this in code too.
Interesting....
Tuesday, July 08, 2003 8:59:26 PM (Pacific Standard Time, UTC-08:00)
Computer Related
Mt. Rainier Trip Writeup
Although we wrote up our Mt. Rainier trip shortly afterwards I never got around to posting the trip report onto my weblog.
In summary, we didn't make it to the top due to bad weather. However, it was a good climb overall.
Tuesday, July 08, 2003 8:50:43 PM (Pacific Standard Time, UTC-08:00)
Personal | My Sports | Personal | My Family
Receive 15 bonus Continuing Education Credits (CECs)
I got this info. in an MCT email today:
"Earn your MCSD for Microsoft .NET certification by October 31, 2003 and you will receive 15 technical CECs for the 2003 program year and 15 bonus CECs for the 2004 program year."
Well this is cool news. Now all I have to do is find the time to take the exams and perhaps even study for them of course.
Tuesday, July 08, 2003 8:42:59 PM (Pacific Standard Time, UTC-08:00)
Computer Related
How to Build Custom Sink Providers for .NET Remoting
Here is a brief article on how to do custom remoting stuff. If anything I think the samples should help get someone started.
Tuesday, July 08, 2003 12:39:23 AM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net

Monday, July 07, 2003
The Blessing of Watching a Baptism
I must confess that there was a time when I thought that going to a see a Baptism was low on my priority list and wasn't really relevant to anyone except those that knew the person being baptized. Well, that has certainly changed. Over the past few years I have probably attended four or so services where multiple people have been baptized and each time I have come away completely blessed for the time. There is just something about witnessing people from all walks of life declaring public ally their devotion to Christ. Each testimony is unique and each one has a nugget that penetrates my heart in some way and challenges my own walk. I highly recommend these services to other.
By the way, I should mention that aside from simply being an act of obedience to Christ, baptism has no special spiritual implications. In other words, being baptized does not make one into a Christian. You need to already be a Christian before you can be baptized and publicly declare your faith in Christ. For some baptism happens shortly after they receive Christ and for others there may be a long time between when one becomes a Christian and when they get baptized. Being baptized as a baby, however, does not make you into a Christian any more than sleeping in a garage at night makes you into a mechanic. Since baptism is designed to allow Christians to publicly declare their faith, it is best when baptism is left until a person is at an age were they can reasonably communicate their faith.
Monday, July 07, 2003 2:14:15 PM (Pacific Standard Time, UTC-08:00)
Personal | In Pursuit of God
Are Christians Better?
Before you can answer this question you have to first ask better than who? Christians are certainly not better than non-Christians. Absolutely not! However, Christians are better than they would be if they had not become Christians. In other words, if Kevin becomes a Christian he is a better person than what he would have been had he not become a Christian.
Monday, July 07, 2003 5:22:40 AM (Pacific Standard Time, UTC-08:00)
Personal | In Pursuit of God
I Love You This Much
There is this book that we read to Benjamin sometimes called Guess How Much I Love You by Sam McBratney and Anita Jeram (Great book!). In it a baby rabbit tells her parent how much she loves her and the parent responds in kind but with an order of magnitude greater. In one of the interchanges the baby rabbit holds out her hands as wide as she can and says, "I love you this much." In response the parent holds their hands out as wide as they can and says, "I love you this much."
As I reflect on this line I think about Jesus saying, "I love you this much!" as he hangs on the cross with his arms and legs outstretched.
Monday, July 07, 2003 5:02:02 AM (Pacific Standard Time, UTC-08:00)
Personal | In Pursuit of God

Wednesday, July 02, 2003
Pocket PC 2003 Development Development
MSDN recently announced the availability of the Pocket PC 2003 (Windows Mobile 2003) SDK along with updated emulator images.
Wednesday, July 02, 2003 1:20:50 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
PowerToys for Visual Studio .NET 2003
Here are a bunch of cool tweaks/add-ins for VS.NET. I already mentioned the
Custom Help Builder but there are others that look appealing. The one that I am most interested in is the VSCMDShell but unfortunately that is not available quite yet. I only hope this utility performs faster than the one Chris Sells wrote about in MSDN magazine.
Wednesday, July 02, 2003 1:19:03 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Reporting Services Beta Nominations Open
The Reporting Services Beta is now open for nominations via this link.
Wednesday, July 02, 2003 1:15:23 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
Adding Custom Help Topics to VS.NET
Today I came across two different links relating to the adding of custom help to VS.NET.
Wednesday, July 02, 2003 1:13:05 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net
NEC claims fuel-cell laptop battery will last 40 hours
The battery life on these looks fantastic but I have a few concerns.
- How readily can one purchase hydrogen and oxygen for this type of purpose. I mean, unless it is for sale at every gas station I will be carrying gobs of this around with me.
- So when I go through airport security and they say, what is in this fuel cell container, exactly what am I supposed to tell them?
Until they figure these minor details out, I will keep my T40 lithium-ion battery which can at least survive a 3+ hour plane trip.
Wednesday, July 02, 2003 1:08:24 PM (Pacific Standard Time, UTC-08:00)
Computer Related