| |
 |
Saturday, September 11, 2004 |
Applications: Running 32-Bit Applications with Windows Running on AMD Opteron and AMD Athlon 64 Systems
Google Search It
I came across this title in the release notes for the beta version of Windows 2003 for 64 bit AMD with SP1. It seems innocuous enough at first. The problem is in the details which I quote below:
Generally, you can run 32-bit applications on Windows Server 2003, Standard Edition; Windows Server 2003, Enterprise Edition; and Windows XP 64-Bit Edition without making any changes. Applications that meet the following criteria, however, are not compatible with Windows products running on AMD Opteron and Athlon 64 systems:
- Applications with 16-bit installers
- Applications that install 32-bit kernel-mode drivers
- Applications with dependencies on any version of Microsoft .NET Framework
We recommend that you contact your software vendors to verify whether one of these exceptions applies to your software.
Hmmmmm... I think that could be a problem for me. Uggghhhhhhh!!!!!! Besides, wasn't the .NET Framework supposed to deal explicitly with this problem?
11:08:54 PM
|
|
 |
Friday, September 10, 2004 |
One omission from .NET 1.0 that would have been extremely useful is a Stopwatch that can report accurate time (presumably using the high performance counter APIs). It is needed especially for doing any type of small scale testing. Unfortunately, there is no such class in .NET 1.0. However, 2.0 does have such a class in the System.Diagnostics namespace called Stopwatch.
If you are stuck in the 1.0 world still then Daniel Strigl has defined a class on CodeProject called HiPerfTimer that could easily be converted to look like the Stopwatch class in 2.0.
10:24:59 AM
|
|
 |
Thursday, June 03, 2004 |
In the past I have been a big fan of NewsGator and pretty much used it exclusively. However, one particularly irritating feature of some blogs is that they only supply the title, posting URL, and date in the RSS feed, forcing one to go to the website to view the body. intraVnews deals with this issue displaying the posting URL content below the blog content. This is a fantastic feature that allows one to still follow blogs that don't provide a body. (This begs the question that perhaps blogs that don't provide a body should continue to be boycotted regardless of the tools to overcome the problem.)
I am currently giving intraVnews a try and so far I am reasonably pleased. In fact, I have NewsGator and intraVnews installed simultaneously without problem. My two negative comments on intraVnews relate to
- Moving blog folders - The UI for this is rather cumbersome and time consuming if there are lots of blogs.
- The scheduler to download doesn't appear to autostart (presumably a setting I haven't found yet.)
One of the key items I need to investigate soon relates to exporting the settings of the RSS reader and then importing them once I re-install the OS.
12:34:50 AM
|
|
 |
Wednesday, June 02, 2004 |
Here is an interesting device especially if you already own a Windows Media PC and want to add cassette capabilities. The PlusDeck 2 is an internal cassette deck for your computer that can help convert cassettes to their WMA/MP3 equivalent. I have lots of cassettes, especially talks from Willow Creek, that I would love to convert just so they can be digitally organized. I would then listen to the MP3s on my not-yet-existent mini Smart Phone with built in MP3 player (and Bluetooth of course).
10:59:23 PM
|
|
When .NET was first released I was disappointed by the fact that they had not provided a definition for the term "component." The term was common in the COM days but it was never clearly defined as referring to a particular COM object or the DLL in which the COM object was implemented.
Under .NET the definitions remain ambiguous and at this point too many leading engineers have placed a stake in the ground one side or the other so it is unlikely to get resolved any time soon. Some, like Juval Lowy, firmly believe it corresponds to a class. Other sway more toward it referring to an entire assemble.
I share Michael Platt's amazement that these terms remain ambiguous given the length of time they have been pervasive in the industry. Furthermore, the frequent need to create designs that include classes as well as the containers of the class definitions would lead one to expect that their definitions were firmly established. Perhaps what makes this even worse is that "module" now has a definite meaning in the .NET space. Therefore, it cannot be used as the generic term for a container of compiled code.
Personally, I prefer the component to mean assembly (or container of compiled code) as I don't believe there is any need to provide another word for object or class as these have firm O.O. definitions. Furthermore, there is not really any generic term for the files (or streams) that contain a series of bytes implementing a feature (or class etc.) Component seems like a great term to fill this hole. Recently I read Michael Platt's discussion of the terms Object, Component, Model, and Service and was pleased to hear I am not alone in my leanings.
Thoughts?
5:10:32 PM
|
|
 |
Tuesday, June 01, 2004 |
I recently wanted a button or keystroke that could automatically toggle the Lock Anchor state for shapes in Microsoft Word. Unfortunately, there didn't seem to be a built-in Word action for doing this. Using a tip from Cindy Meister I created the following macro that does the trick nicely:
Sub ToggleShapeAnchor() Dim newlockAnchorSetting As Boolean If Selection.Type = wdSelectionShape Then If (Selection.ShapeRange.Count >= 1) Then newlockAnchorSetting = Not Selection.ShapeRange(1).LockAnchor End If For Each Shape In Selection.ShapeRange Shape.LockAnchor = newlockAnchorSetting Next End If End Sub
I also had a problem with trying to make fine adjustments of the shapes. Each adjustment caused the shape to jump a couple inches up the page. Further adjustment caused it to jump again. Cindy informed me that this was generally indicative of damage in the binary structures of the control page layout and advised I tried round tripping the file to RTF, WordML, or HTML. I also found that turning on and off the anchor sometimes seemed to get particular images positioning correctly again.
9:40:54 PM
|
|
The current C# 2.0 specification includes the following quote:
"A comparison operator (==, !=, <, >, <=, >=) has a lifted form when the operand types are both non-nullable value types and the result type is bool. The lifted form of a comparison operator is formed by adding a ? modifier to each operand type (but not to the result type). Lifted forms of the == and != operators consider two null values equal, and a null value unequal to a non-null value. Lifted forms of the <, >, <=, and >= operators return false if one or both operands are null."
What does this mean?
Perhaps the most significant concept in this paragraphs is at the end where it declares that the operators <= and <= versus the operator == behave differently for Nullable<T> types when that have the value null. As a result, even though == may return true, the >= operator and the <= operator will sometimes return false. Let's consider an example.
int? x, y; // Declares two variables of type Nullable<int> x = null; y = null;
Assert.IsTrue(x == y); Assert.IsFalse(x <= y);
When null is involved with a nullable type, therefore, the >= operator would not be equivalent to the combination of the > and == operators. In other words, the expression x>=y would not be equivalent to the combination of x>y || x==y. Perhaps what is most unusual about this is generally they operator >= is called greater-then-or-equal but in the case of both operands being null, the result of the >= operator would be not equal even though the == operator indicates they are equal.
Furthermore if you were to sort a list of Nullable<T> types using the > operator for ascending order and the < operator for descending order then regardless, all items with the value null would sort to the same location regardless of which operator (< or >) was used (null items would always sort to the top or the bottom regardless of which operator is used.)
Note that currently the May 2005 Visual Studio.NET Tech. Preview does not support the >= and <= operators. Also, the == operator is marked as obsolete.
I would be curious to know what folks think about this implementation?
(This topic is also being discussed at on the GotDotNet C# Language Message board here.)
4:21:35 PM
|
|
 |
Sunday, May 23, 2004 |
For those of you who were not able to make it to Tech Ed 2004 this year, here are several of the developer related talks that will be broadcast over the web (in date order):
I am not sure why these are the only ones showing up on the Microsoft Event Search pages so if you come across others please let me know.
10:05:05 PM
|
|
 |
Thursday, May 13, 2004 |
My primary responsibility at work over the past year has been to be lead a team of developers that is responsible for building a Framework on top of the .NET Framework that fills in all the holes the Microsoft left and defines best patterns and practices for my companies .NET development. I admit that unfortunately sometimes we don't always get everything completed perfectly due to various constraints and then we have to go back in a later release and "fix" the problems we introduced. The Making AP Is Obsolete practices documented here provide good guidelines on how to make changes to APIs in future releases. Note that to depricate an API one decorates it with the ObsoleteAttribute attribute.
9:05:43 PM
|
|
 |
Wednesday, May 12, 2004 |
For the Inductive Bible program (previously called eBible) I am working we are currently using MSDE (assuming no SQL Server available). Unfortunately, MSDE doesn't come with any management or query tools. However, there are some free solutions out there that fulfill the purpose and are worth checking out.
MSDE Manager Includes both a .NET and an unmanaged version. This is free for personal use. The big plus of this tool over the others is that it includes database administration not just query capabilities so it is more than simply a replacement for query manager, offering more like the functional equivalent of Enterprise Manager. The company, White Bear Consulting, also provides versions as controls that can be bundled into you applications for a reasonable fee.
MSDE Query The first tool I tried. It works much like SQL Server's query manager, allowing you to select the database and then execute queries against the database. It has an MDI interface so each query can be in its own window. Results are reported either as text, the default, or into a grid. Overall I would say this is a fully functional replacement for SQL Server's query manager. The same company also has a program similar to Enterprise Manager at minimal cost that is worth checking out if you need such a tool.
MSDE GUI Based on the screen shots this looks like another viable option that includes source code so you could perhaps include it into your own application. Certainly worth checking out if you need to bundle something in your application.
There are a couple issues with our choice for MSDE. Firstly, I don't expect users of the software to have the most cutting edge computers or connections. MSDE is a 45 MB download which would certainly be a hitch to telephone modem users especially given that they are also going to have to download the .NET Framework redistributable. Secondly, it is not exactly clear whether we should install even when there is already a SQL Server installation in order to protect the copyrighted material that we include. Given our own MSDE instance we can control the security on the database but this would mean duplicate binary installs as well.
(Updated 5/14/2004 by adding reference to MSDE Manager which is currently my favorite because of the database administration functionality.)
11:33:30 AM
|
|
 |
Sunday, April 25, 2004 |
I have been playing around with the inaccuracies of floats and decided to share some of the simplest comparisons that might surprise folks that use the equality comparisons of floats indiscriminately.
The following code listing pretty much captures the issues:
using System.Diagnostics; ... decimal decimalNumber = 4.2M; double doubleNumber1 = 0.1F * 42F; double doubleNumber2 = 0.1D * 42D; float floatNumber = 0.1F * 42F;
Trace.Assert(decimalNumber != (decimal)doubleNumber1); // Displays: 4.2 != 4.20000006258488 System.Console.WriteLine("{0} != {1}", decimalNumber, (decimal)doubleNumber1);
Trace.Assert((double)decimalNumber != doubleNumber1); // Displays: 4.2 != 4.20000006258488 System.Console.WriteLine("{0} != {1}", (double)decimalNumber, doubleNumber1);
Trace.Assert((float)decimalNumber != floatNumber); // Displays: 4.2 != 4.2 System.Console.WriteLine("{0} != {1}", (float)decimalNumber, floatNumber);
Trace.Assert(doubleNumber1 != (double)floatNumber); // Displays: 4.20000006258488 != 4.20000028610229 System.Console.WriteLine("{0} != {1}", doubleNumber1, (double)floatNumber);
Trace.Assert(doubleNumber1 != doubleNumber2); // Displays: 4.20000006258488 != 4.2 System.Console.WriteLine("{0} != {1}", doubleNumber1, doubleNumber2);
Trace.Assert(floatNumber != doubleNumber2); // Displays: 4.2 != 4.2 System.Console.WriteLine("{0} != {1}", floatNumber, doubleNumber2);
Trace.Assert((double)4.2F != 4.2D); // Display: 4.19999980926514 != 4.2 System.Console.WriteLine("{0} != {1}", (double)4.2F, 4.2D);
Trace.Assert(4.2F != 4.2D); // Display: 4.2 != 4.2 System.Console.WriteLine("{0} != {1}", 4.2F, 4.2D);
I find the results notable in several regards:
-
You can use a double to expose the inaccuracy of a float.
-
Comparing decimalNumber and floatNumber reveals they are not equal even though printing the values out to 20 decimal places indicates they are equivalent.
-
doubleNumber1 and floatNumber are not equivalent even though they are both assigned the exact same calculated value in the code. (In fact, the IL reveals the values are different.)
-
This is not just an issue of calculation as the last two assertions reveal.
The obvious question at this point is why?
-
float is only accurate to 7 digits so if you cast it to a data type that can hold more than that you will inevitable expose the "insignificant" portion such that it becomes significant. (This is why (double)4.2F does not equal 4.2D.)
-
decimal, float and double get initialized with different calculated values because they require different levels of accuracy. The decompiled IL code is as follows:
decimal decimalNumber = 4.2; double doubleNumber1 = 4.200000062584877; double doubleNumber2 = 4.2000000000000002; float floatNumber = 4.2000003;
In response to and appreciation of Julian's post here I took the time to correct my post. Thanks Julian!
I should perhaps delete the entire post but I think my carelessness requires a correction. The primary modifications are as follows:
- I updated the IL code. Converting the hex values displayed by ILDasm.
- Deleted the "Trace.Assert((decimal)4.2F != 4.2M);." "Trace.Assert(!4.2M.Equals(4.2F));" was what I should have posted.
- I updated the variable names to be slightly better.
- Deleted: "Even though floatNumber and doubleNumber2 are assigned the same values in IL they still don't evaluate as equal." This was incorrect. They are not assigned the same value in IL, only in C#.
- Delete: "Any time you compare one <of these> types against another the Equals(object value) method is called and it returns false if the data type is not the same. " It didn't really fit as I didn't use the Equals() method in any of my code and generally the Equals() method is overloaded with a parameter that takes the class type.
- Deleted: "If you remove the calculations and simply assign 4.2F ...." This was just incorrect (see colophon).
Colophon: The root cause of all the errors was the fact that I was using csc.exe for compiling and not VS.NET. As a result, I forgot the /D:TRACE switch so assertions were ignored. I am amazed that only one of the assertions in the end was invalid but regardless I should have been more careful.
8:07:40 PM
|
|
 |
Friday, April 23, 2004 |
I unexpectedly received the following dialog from Microsoft Outlook 2003 after dialing in to my VPN.

Perhaps what puzzles me most is exactly who "I'm" is referring to. I was not aware that my computer had feelings of remorse -- or any feelings for that matter.
10:51:41 PM
|
|
I came across two NNTP news reader add-ins for Microsoft Outlook recently. The first is NewsLook and the second is from MAPILab's. It appears none of the have the fast efficient newsgroup reading support that comes with Agent Newsreader but still, the idea of integrating email, newsgroups and RSS (via NewsGator) is intriguing.
By the way, why doesn't Outlook support the efficiencies of Agent? I can go through hundreds of messages in Agent in short order and Outlook is an order of magnitude slower. Perhaps the key differentiating factor is the single key accelerator keys (R versus CTRL+R for example) but I think there is more than that.
Note that there is a host of Outlook tools from MAPILab's including a Redirector, Mailing List Service, Duplicate Email Remover and more that I would really like to try.
4:45:10 AM
|
|
This article contains a good introduction into the NAS and SAN storage options.
I recently received a quote for a custom built half-terabyte computer with hot swappable hard drives and an ATA serial controller. The price was over $2,500, however, and this seemed higher than necessary. You can by off the shelf NAS devices for less than that. The unexpected costs were in the case (SuperMicro SC742T-550 for $600) and the AMD mother board (TYAN AMD-8000 Chipset Model: Tomcat K8S for $295).
I am interested to learn more about the Microsoft storage solutions that are coming out but the OEM hardware I have seen so far is similarly priced to the custom system.
4:31:08 AM
|
|
There is little that can be added to Chris Anderson's post on writing a book. As an author of several, I think he hits the mark quite well. However, I must agree with Mike's comment that, "Writing is a great way to learn something." This is perhaps the greatest motivator for me.
4:19:54 AM
|
|
This story is noteworthy just because it puts Spokane on the map in a technology rag which is a pretty rare occurrence. I confess, however, I have never connected to the "city-wide" wireless network as I rarely go downtown (although it is only 20 minutes drive from my house) and when I do it is usually for recreational purposes and my laptop doesn't accompany me.
As it turns out, I am more likely to use the wireless networks in Chicago's airports than the ones in Spokane as I travel there and through relatively frequently and I really like to connect when I travel.
4:15:38 AM
|
|
KB article 555025 and 829361 describe a way to decrease the shutdown time of Windows 2003 Server with Exchange 2003. What amazes me is that there is no way to configure the dependency between services so that this happens automagically (they seem to be configured already but the delay still exists.) Neither does there appear to be any Windows support for auto-starting a process at Shutdown time (to automatically do as the KB article suggests.) By the way, Exchange 5.0/5.5 appear to have the same problem as described here.
I was also frustrated again by the fact that the dependency tree between services is read-only in the Services dialog. However, as the JSI FAQ TIP 0069 indicates, you can modify the dependency tree from registry key HKEY_LOCAL_MACHINESystemCurrentControlSetServices and modifying the DependsOnService key of the particular service you want to modify.
2:29:31 AM
|
|
This article provided some interesting insight into the power of the Windows XP FOR command that I appreciated as I was trying to do some renaming to a name that included the file date myself.
2:22:09 AM
|
|
 |
Friday, April 02, 2004 |
Some time ago now I commented on my need for synchronizing folders between computers and the fact that I was unable to find the ideal solution. Ted Kekatos pointed me to Second Copy which look promising.
5:36:22 AM
|
|
I have been wanting a portable access point for some time now and I happened to run across this one while browsing the ASUS site. The description is as follows:
As small as a deck of cards, the Pocket Wireless AP WL-330 is not only a wireless access point (AP) but also a wireless bridge/ repeater and wireless Ethernet adapter.
Seems just about perfect except that it still requires the AC Adapter rather than charging off of USB. Now that would be ideal.
5:27:33 AM
|
|
 |
Thursday, March 04, 2004 |
The SharePoint customization site seems like a useful resource if you are looking to do that type of thing. The key tool is FrontPage 2003. The site includes a bunch of How-To articles and Code Samples (Next time I am board I will switch the VSS FAQ to use this code). I am intrigued by the XML/XSLT editor that can be done on live data as my team previously had trouble with accessing data except via web services.
8:16:37 AM
|
|
Informative article on developing against new Outlook 2003 features.
6:37:46 AM
|
|
 |
Wednesday, March 03, 2004 |
Ted Kekatos (founder of sysadminday.com) pointed out to me some of the not-so-well known features of Google such as the calculator, dictionary, search by number (support VIN, package tracking, area codes, etc), and more. Also, if you wish to modify your Google search preferences such as number of items returned and default language go here.
9:27:28 PM
|
|
 |
Wednesday, February 25, 2004 |
 |
Tuesday, February 24, 2004 |
 |
Tuesday, February 17, 2004 |
Well, here's a simply approach to reducing the chance of installing spy ware. This download is simply a registry setting that sets common spyware sites as restricted sites within IE. After downloading I went to Gator's site and tried to download and sure enough, I was blocked. Simple but elegant!
9:11:14 PM
|
|
 |
Monday, February 16, 2004 |
This article, entitled "Planning a Service-Oriented Architecture", takes a long winded approach to getting to the point but it is an interesting read none-the-less. The conclusion is simply that in order to successfully implement a Service Oriented Architecture (SOA) architecture you need to plan and execute in short iterations.
9:21:53 AM
|
|
In the past I commented on Regular Expression utilities here. Today I came across another one that I really like called Regulator that appears on GDN. Unfortunately, the source code is not yet posted publicly but presumably that will happen with time. Until then I also presume you can join the workspace to gain access.
While taking a look at it I finally figure out that the reason Regex.Split() exists is because it is especially difficult (meaning I don't know how) to parse expressions that begin with the same pattern but don't have any meaningful ending pattern especially when they cross the line boundary. In my case I was trying to split the following string:
<<What is your name <enter name>?: >>Inigo Montoya <The person's name> <<Your name is "Inigo Montoya."
In my case I wanted to split the input into each string following "<<" and ">>" and allowing a match to span a line. Doing this using Regex.Match() is beyond my capabilities but Regex.Split() with a regular expression of "(>>|<<)" was relatively easy. It is more cumbersome to retrieve the exact value you want as I don't believe they can be named but still, I was able to get this to work.
P.S. I am trying to parse the above text for an NUnitConsole program I am in the process of writing. The program is designed to provide a unit testing tool for command line programs. To begin this will be callable from NUnit but in the not too distant future I hope to make it a command line tool as well.
7:18:02 AM
|
|
 |
Sunday, February 08, 2004 |
Here are two interesting links for those addicted to dual monitors.
Dual monitor support across two different computers:
http://www.maxivista.com/
A toolbar for your second monitor. This seems really useful for those that use dual monitors on their laptop when on a docking station and then find they can't get to certain screens when undocked.
http://www.mediachance.com/free/multimon.htm
P.S. Thanks to my brother, Andrew, for sharing these with me.
4:15:57 PM
|
|
Initially this post began as a long question to Microsoft but as I began to describe the problem I realized the rather obvious solution. Anyway, since it took me a little while to solve I decided to post it anyway:
If you previously had the 1.2 Framework installed and then you uninstalled it in order to install the most recent drops you may find that the "Lib" environment variable still contains the 1.2 path. You need to update this environment variable to no longer include the 1.2 path and instead only have the path to the 1.1 Framework. In my case this required updating both the system and user "Lib" environment variable. (It appears you do not need to add the 2.0 path if you happen to have a more recent drop than the PDC bits.)
The exact error that occured for me appears below:
Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: CS1668: Warning as Error: Invalid search path 'C:Program FilesMicrosoft Visual Studio .NET WhidbeySDKv1.2Lib' specified in 'LIB environment variable' -- 'The system cannot find the path specified. '
Source Error:
[No relevant source lines]
Source File: Line: 0
Hopefully this doesn't happen for anyone else but if it happens to hopefully this will save you some time.
3:09:58 PM
|
|
 |
Saturday, February 07, 2004 |
A useful link if you have to do this type of thing and you don't have the correct software installed. I should mention that the Windows 2003 Resource Kit also includes DVDBurn.
3:43:24 AM
|
|
 |
Thursday, February 05, 2004 |
Has your IT group locked down your Internet access to such a degree that you can no longer do anything useful? Check out Open VPN. With this tool and a server on the outside of your corporate network, all you need is one outgoing port (Port 80 is presumably available). This is some really nice software!
8:40:11 AM
|
|
For some time now I have been working on getting an unattended (initially I used the word unintended here but that wasn't what I meant) installation of Windows going. It took a lot more effort than I expected, especially to get the pathing inside CmdLines.txt working. Anyway, in the process I came acrros several invaluable resources:
8:34:34 AM
|
|
 |
Friday, January 23, 2004 |
I was doing to many things at once an accidentally hit the OK button on an ActiveX Control dialog. Barf!!! I suddenly had a thousand programs installed all designed to somehow bombard me with ads! Ugghhh!! I spent hours uninstalling and stopping and deleting the stuff. Truly there seem to 20-30 programs that got installed. Even after uninstalling them all (I thought) I still have random pop-behind ads showing up when I browsed the web. Anyway, I came across Ad-Aware and gave it a try. It found over 100 items still lurking on my computer ready to pop-up at any time. The program removed the stuff and the problem seems to have gone away. I highly recommend it even if you haven't accidentally hit the Trust button.
3:49:40 AM
|
|
I gave Bart's PE Builder... very, very cool! Not quite as good as Knoppix but this is a great tool to have. I was even able to boot to the CD and use SetSFN to set the short files names of my Program Files and Documents and Settings directory on my primary boot partition. Excellent.!
3:37:53 AM
|
|
For some time now I have been wanting a good program for synchronizing folders between multiple computers. The computers are not necessarily part of the same domain and I can only count on http or ftp access in some cases. Lastly, I would like to tool to run as a service. Well, I haven't selected a tool yet but this post has a good list of options. Unfortunately, none of them fit all my requirements...at least not out of the box.
3:10:17 AM
|
|
 |
Monday, January 12, 2004 |
I recently came across an image editing program called IrfanView. It included the ability to edit IPTC information in addition to the EXIF information. I hadn't heard of this standard so I looked it up. Turns out that the IPTC information includes keywords and categories, two key items that I am looking to embed in my photos. I am not sure I would go this route as EXIF seems to be more common and supported at least some degree by windows. However, it was interesting to note that it was out there.
8:29:06 AM
|
|

I am guessing I would miss feeling the keys, especially the knobs on the F and J keys that help determine if your hands are in the right place. Regardless... how cool is this!
Discussion of this can be found here.
7:34:35 AM
|
|
 |
Tuesday, January 06, 2004 |
DasBlog has done a good job identifying what security rights are required for the read/write directories. If you happen to continue to get a configuration error that indicates a security problem you should also check that files (site.config for example) are not marked as read-only. Dah!
9:49:37 AM
|
|
I have written before about my experiences with Virtual PC and how I am using it with my team to automate testing, especially testing product installs. I love the idea of this and have got it working reasonably well. Unfortunately, however, Virtual PC does not come without headaches. Currently the issue described here and quoted below is driving me nuts.
I am trying to access files on the host system via a network share (not shared folders). I am able to successfully browse the network share but every time I actually try to access/read/write the files the windows explorer freezes.
Also, why the heck is VPC not supported on Windows 2003?
7:08:01 AM
|
|
 |
Monday, January 05, 2004 |
I had some trouble getting the GotDotNet Windows Forms souce code control tool to work. Each time I tried to go to source code control for a project an error would occur giving me the option to re-downoad the tool an re-run the tool. The exact error was:
"Before the GotDotNet Workspaces Windows Forms control can be run, some changes must be made to the .NET Framework security settings on your computer."
Fortunately, there was also a link that described how to manually configure the security settings. After some investigation I discovered that the problem related to the fact that Whidbey was installed. To overcome the problem I had to follow the instructions using the .NET 2.0 Configuration Tool. The instructions are as follows:
- Click Start, Control Panel and open the Administrative Tools.
- Start the Microsoft .NET Framework Configuration tool.
- Using the treeview on the left, navigate to My ComputerRuntime Security PolicyMachineCode GroupsAll_Code
- Start the Create Code Group Wizard by clicking 'Add a Child Code Group'
- Provide a code group name: GotDotNet_Workspaces
- Provide a code group description: Security group for GotDotNet Workspaces
- Provide a condition type: URL
- Provide a trusted URL: http://www.gotdotnet.com/community/workspaces/*
- Use an existing permission set: FullTrust
- Finish the Create Code Group Wizard and close the Microsoft .NET Framework Configuration tool.
- Close all Internet Explorer windows and restart your browser.
7:38:36 AM
|
|
 |
Friday, January 02, 2004 |
Over the past few days I have been digging into the DasBlog. As part of that effort I needed to check out an item's link element in the RSS 2.0 Specification. It was surprising to me (I don't follow this stuff very closely) that this is essentially the last version of RSS as described at the end of the specification and quoted here:
"The purpose of this work is to help it become a unchanging thing, to foster growth in the market that is developing around it, and to clear the path for innovation in new syndication formats. Therefore, the RSS spec is, for all practical purposes, frozen at version 2.0.1."
3:24:32 PM
|
|
Shadowfax is a workspace dedicated to a reference platform workspace that demonstrates Service Oriented Architecture (SOA). At a minimum I recommend folks listen to the Shadowfax WebCast.
3:18:02 PM
|
|
Here is a good description of how the Memento Pattern works.
3:12:53 PM
|
|
Here's a simple but useful tip I wish I had known a long time ago.
"Sometimes it may be necessary to point to a Web site, file name, or other resource link (FTP, TELNET, NNTP, and so on) that contains spaces in the reference. In these situations, you can enclose the hyperlink that references these resources within the angle bracket characters...."
2:45:45 PM
|
|
Here is a cool program: Ozi Photo Tool uses the tracking log from a GPS to set the EXIF location on your pictures by matching up the Date Picture Taken time with the tracking log.... This provides a is somewhat compelling reason for me to buy a GPS.... Nice!
While on the topic of EXIF let me point out that you can obtain the specifications here along with a EXIF file format description paper.
Also, GotDotNet has a workspace called JPEG Hammer for modifying the EXIF info. on a photo. For example, rather than actually rotating a graphic the program changes the EXIF Orientation data. Cool! I don't really like the UI (I would prefer an Windows Explorer integrated solution) but the architecture seems to be such that one could use the components and provide a different UI on top of them. (P.S. Given the number of projects that I have been interested in that overlap involvement by Omar Shahine (a list of his projects can be found here) I am beginning to think that I should make it a rule to evaluate any workspaces that Omar is a member of. )
12:20:10 PM
|
|
 |
Wednesday, December 31, 2003 |
Here is combination wiki-onenote pad. This is a rich client program not a web interface. I really like this idea for things like taking notes and interlinking these notes. This is partly what I want to be able to support with the Inductive Bible Study Software.
6:29:41 AM
|
|
Here is a class for converting between time zones.
6:26:14 AM
|
|
 |
Monday, December 29, 2003 |
I find "Documents and Settings" and "Program Files" extremely cumbersome names that the OS creates by default. I am reluctant to change the names (by changing the HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileListProfilesDirectory string for example) because some programs my hard code these paths. Instead, what I would like is to change the short file name from something like "Docume~1" to "Data" or the like. I located the setsfn.exe program that is able to set short file names. The command line is as follows:
Set Short File Name [Version 1.00]
Sets the 8.3 SFN (Short File Name) for the specified file or folder. Requires Windows XP or later.
Syntax: setsfn /F:filename [/SFN:shortname] [/Y]
/F: Specifies an existing file or folder to modify. /SFN: Specifies the new short name. Must be a valid 8.3 format name. /Y Suppresses the 'Are you sure' prompt. /? or -? displays this syntax and always returns 1. A successful completion returns 0.
Copyright 2003 Marty List, www.optimumx.com
Unfortunately, this doesn't work on the two directories I specify above because of the fact that they are always in use. My next attempt is to see whether I can set them during an automatic install.
9:52:54 AM
|
|
 |
Wednesday, December 24, 2003 |
- EventTriggers
Allows you to create commands that are triggered by particular entries into the event log. Cool!
- Setx (Windows 2003 only as far as I can tell)
Nice in theory but doesn't seem to be available
- Forfiles
Iterates through a set of files
- fsutil hardlink
Great for creating a hardlink (a secondary name for a file in any location) but doesn't appear to have an equivalent delete and doesn't work on directories like the junction.exe does from sysinternals.
- IIS* (Iisapp, Iisback, Iiscnfg, Iisext, Iisftp, Iisftpdr, Iisreset, Iisvdir, Iisweb)
Manages ftp and web sites and directories
- Irftp
Send files over an IR link
- Netsh
:Lots of network configuration stuff
- Openfiles (More functional on Windows 2003)
View/disconnect open files. For locally open files a reboot is required.
- Reg
Command line registry manipulation
- Reset session
Deletion/reset terminal services session (important for Windows 2000 when you easily run out of sessions because the same user can get multiple sessions.
- sc
Allows control of services similar to the Services MMC snapin
- SystemInfo
Dumps data about the computer such as memory, name, etc.
- TaskKill/TaskList
Controls processes
- Timeout (Windows 2003 only)/Sleep
Pauses the command processor
- Takeown
Gives an administrator ownership of a file
- Waitfor
Allows signal betweens computers... looks like a great means for automating Virtual PC sessions and allowing communication between those sessions.
- replace /a
Copies files that are not already in the destination directory. Unfortunately replace /s /a is not allowed.
4:56:49 AM
|
|
Recently I have an install program that required setting a system environment variable. The problem was that to do this required setting a registry value and then rebooting. Yuck! I then found a command line utility called setenv (named after the UNIX command I believe) that did all this for me (I nearly wrote one too.) This morning I happened to notice in the help that there is a native windows command line utility called Setx that does the same thing. Well what do you know! Unfortunaely this is only available in Windows 2003 from what I can tell although I read it was also in thw WindowsXP reskit.
3:48:50 AM
|
|
 |
Tuesday, December 23, 2003 |
My Mom recently asked me about blogging software... "How do I get my own blog up an running." This prompted a search on blogging software and I came across the following reviews:
Personally I use Radio Userland but I wouldn't recommend this I don't think, at least not for my Mom. I am looking to switch as well but I want something build on ASP.NET. Dasblog is currently what my thinking is but since I haven't yet got it up and running I can't comment on whether this is realistic or not.
6:38:12 AM
|
|
 |
Saturday, December 13, 2003 |
I found this story interesting because if the immensity of the prime number discovered (6,320,430 digits long) and the use of the Great Internet Mersenne Prime Search program, something I actively participated in for some time a several years ago.
P.S. Thanks to Ted Kekatos for pointing this out to me first.
12:09:39 AM
|
|
Check this out.... it makes the address bar on Internet Explorer look like you are on the Microsoft web site even though you are not. Interesting!
12:05:03 AM
|
|
Here is a great tool for creating images of CDs as ISO files. I previously wrote about this problem but could not recommend a free solution. Sai Ganesh, a co-worker of mine mentioned this one and it seems to do the trick quite well at least for the Data CDs that I tried it on.
12:02:37 AM
|
|
 |
Friday, December 12, 2003 |
During a previous attempt to set up Windows 2003 FTP server in Isolated Storage mode I was unsuccessful. This link, however, provided the additional information I need such a that I could get it working even with the DFS share I configured. The keys were to create a directory named after my domain (MICHAELIS) in the root folder and then to place each user's directory (using the users logon name) within that folder. For anonymous access I needed a folder called "LocalUser" which included a directory called "Public". That got everything working.
A few comments:
- When I create the ftp site couldn't the wizard optionally create these directories for me?
- I would really like to have each users default ftp directory map to their corresponding directory under Documents and Settings. Alas, this would require creating a virtual folder for each user from within IIS (I presume this would work?).
- The Isolated Storage mode using Active Directory option seems really lame. It is supposed to be specifically targeted at ISPs, however, it requires a special script be run for each user that is to have ftp access. LAME! One would think that this type of thing would be auto-configurable. Oh well, I guess my expectations are a little to high.
Anyway, I kinda of agree with some on the comments on my last ftp post indicating that it is kinda poor. For a server based product that has been available for more that 10 years one would think they could create a better ftp server. That said, the insecure nature and push for users to use WebDav, perhaps explains Microsoft's behavior in this area.
11:38:29 PM
|
|
I tried to set up the Windows 2003 Distributed File System (DFS) this evening. I wanted to use this as the root for my FTP and Web directories. The process went relatively smoothly at first. After opening up the Distributed File System MMC I elected to "New Root...." This prompted me as to whether I wanted a domain root or a stand-alone root. The stand-alone option creates a DFS share using the name of the computer on which the root is configured. Since I wanted this to look as though it was on the domain and not a particular computer I instead elected to use the Domain Root option and selected my domain (MICHAELIS.NET) at the next dialog. After selecting the computer (LION) I provided a DFS "Share" name (Data). Next I selected the "Documents and Settings" directory as this is what I wanted to make distributed. That was it! Now when I browse to \Michaelis.netdata I see the DFS as though it was a Share on a computer named Michaelis.net.
Now for the problem: Every time I tried to perform any write operation I received an Access Denied message. Bummer! I checked the file security permissions but since I could write directly to the Documents And Settings directory (outside of the DFS) this didn't appear to be the problem. I wrestled with if for a little while and eventually realized that when the DFS share was created a Share was added to the computer (LION) with the same name as the share DFS name (Data). Checking the security properties of this share revealed that it indeed it was read-only and changing that solved the problem. (I should have purchase a Mac - fewer options and it just works.)
11:03:19 PM
|
|
© Copyright 2004 Mark Michaelis.
|
|