Home | Categories | Sources | Sites | Languages | About
Note: The project has been discontinued
Jerry Dennany's Occasional Clue [Site] [XML]
Last Update: 17:44:47 03/06/2006

Additional Info

First Fetched: 00:16:50 01/31/2004
Last Updated: 17:44:47 03/06/2006


<< >> 1 2
Save C#?
DonXML's Pre-emptive strike against the future. This is really too funny.
12:31:00 September 15, 2005, Thursday (PDT) Source: Jerry Dennany's Occasional Clue
PDC 2005, Day 3 @ 1:44 pm (Windows Compute Cluster Solution)
One of the keynote presentations today was on Windows Compute Cluster Solution. Now, I've been working with Windows Clusters in a High Availability environment for some time now, so I've been very interested in what Microsoft's message was going to be in this product space. Microsoft has been getting their lunch handed to them in this area by Linux clusters for a long, long time. While it is currently possible to build High Performance Clusters on Windows without the Compute Cluster Solution, it is certainly not straightforward. There are a number of hurdles that Microsoft faces in this product space: * Linux clusters are a mature solution. Most existing clusters are built on Linux, and programmers/administrators are familiar with this environment. * Linux is more flexible and scriptable from the command line. While third party tools do make Windows relatively scriptable (for example, you may install a Unix-like shell on windows using Cygwin), these tools merely bolt-on pieces that ...
09:48:00 September 15, 2005, Thursday (PDT) Source: Jerry Dennany's Occasional Clue
PDC 2005, Day 1 @ 1:21 pm
Well, everyone else has been posting about the PDC - I thought that I would have written by now, but I haven't really seen anything that is really exciting. So far, most everything seems to be a refinement of things introduced in PDC 2003. Oh, Office 12 was mentioned. Since use Office as a glorified Wordpad.exe, that's really not that exciting.I am currently sitting in the session, "High Performance Computing with Windows Server Compute Cluster Solution." It's a slide-show fest, with very little demo or bits to see. This session is a basic review of of Clustering, and is mostly review if you are familiar with these concepts.There's actually very little about what microsoft is doing in this space, and more about what high performance clustering actually is. I'm still not impressed. Show me, don't slide-show me.
09:29:00 September 13, 2005, Tuesday (PDT) Source: Jerry Dennany's Occasional Clue
Local Variables No Longer Exclusively on the Stack
Sometimes things that everyone just knows aren't always true.For example, when I look at c# code, I know that local variables are stored on the stack. Or, I thought I knew that. However, Ian Griffiths notes that in .NET 2.0, this isn't neccessarily true. This change was made to support anonymous methods, and mutability of variables in the enclosing scope. Time for me to 'unlearn' a few things.
01:27:00 August 23, 2005, Tuesday (PDT) Source: Jerry Dennany's Occasional Clue
MSDN Documentation
So, over the last couple of years, I've been what I consider a 'defender' of MSDN documentation. After all, the docs are miles ahead of what they used to be. As a user, I've also taken to reporting doc bugs to Microsoft. My first couple of experiences with this was pretty good. In one case, the doc team actually rewrote an entire code example based on my feedback. I was impressed. Recently, however, my experience has not been as good. Most of the doc bugs I report now get a generic response from a support specialist that is little more than a glorified secretary. It's obvious that these support people have no idea what I am talking about. They merely take the email, and forward it on to the appropriate team. When they get a response, they cut and paste that response in an email. It is frustrating, because these support people have no clue. The other thing that I'm finding is a resistance to change. I've found a few examples where the docs were wrong, and I could prove it through ...
16:33:00 August 18, 2005, Thursday (PDT) Source: Jerry Dennany's Occasional Clue
Are 'They' really smarter?
An interesting meme I've encountered a number of times amongst c#/Java programmers: Low Level c/_asm programmers are 'smarter' than the rest of us. Kernel hackers are psuedo-gods. Ok, I've worked with a wide variety of programmers. Embedded programmers, Driver developers, EE/ board designers, Windows Programers, Unix 'hackers', Java devs, .NET developers, etc.One of the things that I've noticed is that each developer usually considers his technology superior, and others just don't get it.Actually, I think that they are all correct. Or all incredibly wrong. Take your pick.Embedded Developers: Can hack 'C' like there's no tomorrow. Typically push memory around like it's ice cream. These developers excel at handling low- and out- of memory conditions. You'll rarely see an Embedded programmer fail to handle a memset failure (or new(), though that command would be rare..!). My experience is that C++ is a major leap for many embedded developers, and Classes are certainly a difficult ...
16:23:00 August 13, 2005, Saturday (PDT) Source: Jerry Dennany's Occasional Clue
New Tech: JAXASS
My new favorite line of code: FUC.Queue("AJAX"); From Tobin Titus's new JAXASS.net.
15:33:00 August 10, 2005, Wednesday (PDT) Source: Jerry Dennany's Occasional Clue
The Wild, Wild West - Undocumented APIs
Larry Osterman and Raymond Chen are constantly pointing out that third party developers use undocumented APIs and implementation side effects of the Windows APIs, and other OS internal details. A common refrain among developers is that such things shouldn't be done, and Microsoft shouldn't be afraid to 'break' applications that dare to use undocumented features. Unfortunately, I think that we are looking at the past through 'revisionist history'. If I hit F1 in VS.NET today, or go to msdn.microsoft.com, I can easily find information on just about anything I want to do. If MSDN is insufficient, I can hit Google, and I'm all set. There are plenty of books lining the local Barnes & Noble, and I can always ping people like Yang Cao, or Paul Wilson if I need an answer. But that's not how things have always been. Back in the '90s, programming against windows wasn't so easy. There was no google. Microsoft API documentation was anemic, and often incorrect. It was common for a programmer to ...
18:43:00 April 7, 2005, Thursday (PDT) Source: Jerry Dennany's Occasional Clue
Build Failed: Visual Source Safe corruption
I really, really dislike Microsoft Visual Source Safe. I've worked with it day in and day out for the last seven years. I've come to learn its quirky ways, and for the most part I get by. I do warn my employers that putting your source code in VSS is akin to putting your life savings in a wet paper bag in the back alley, but most PHBs see that it's 'free' with MSDN, and that's the end of the topic. Over the course of years, I've seen vss databases 'corrupt' themselves. This is often recoverable using analyze.exe, but not always. I schedule regular vss database maintenance to prevent this, and I've been fortunate enough lately that nothing has happened. Until today. We use CruiseControl.NET and nAnt to run our continuous integration builds. We get regular emails after checkin, and these usually assure developers that their code didn't 'break' the build. We do get the occasional 'Build Failed' email, but these are easily rectified with a quick turnaround. (Continuous Integration ...
10:37:00 April 5, 2005, Tuesday (PDT) Source: Jerry Dennany's Occasional Clue
C# User Group - April 4, 2005
I went to last night's C# user group. Although I've been to a few DNUGs, I had not been to the C# group before. I was not disappointed. The pre- networking session was somewhat lively, with several people carrying on a discussion of the pros and cons of DotNetNuke. It was interesting, as I don't normally pay a lot of attention to what is going on in ASP.NET space. I also met the .NET Regular Guys, pretty cool. Brendon has a picture of the back of Clark Allen's head. Paul Wilson is the invisible guy sitting to the right of Clark. It was really good to see Paul and Clark again. I really don't get a chance to see them as often as I'd like. Keith Rome had a really good presentation of Asynchronous Programming, with one of the best descriptions that I've seen on locking issues. He's delivering the same presentation at the Atlanta Code Camp next month. Don't miss it! Also presenting on new c# 2.0 language features was Mitch Harpur. My favorite part was his talk on preconditions on ...
08:28:00 April 5, 2005, Tuesday (PDT) Source: Jerry Dennany's Occasional Clue
[OT] : Behind Every Great Man...
There's an un- attributed saying: "Behind every great man, there is a great woman." I'm not "great", but I certainly owe a portion of my relative success to Mrs. Dennany. So, Blessing, here's to your own success. I'll be certain to be behind you for yours.
08:01:00 April 2, 2005, Saturday (PST) Source: Jerry Dennany's Occasional Clue
Sysinternals Procexp.exe adds .NET support.
I've always been a fan of the tools from Sysinternals. Now, I've got even more reason to be happy (besides the fact that the tools are free!) The latest version of Procexp.exe now enumerates appdomains in a process. This is actually incredibly useful, as I'm currently working on a project with multiple appdomains.
11:27:00 March 31, 2005, Thursday (PST) Source: Jerry Dennany's Occasional Clue
Atlanta DNUG - March 28, 2005
I attended the local Atlanta .NET users group meeting last night. The first thing I'd like to mention is that I'm very disappointed that the speaker, Eric Marvets, was a no- show. However, Doug Ware did an excellent job of extending his talk on "Deploying .Net Applications Using Visual Studio". Unfortunately for me, this session was a re-run. It's kind of like never watching Alias, and then you tune in one night, and it's an episode you've already seen? After re-viewing Doug's presentation, there was one philisophical issue that I disagreed with: Doug makes heavy use of .vbs scripts as MSI custom actions. However, as I've told anyone who would listen, VBScript sucks. Rob Mensching, author of WiX, agrees in his rant, "VBScript (and Jscript) MSI CustomActions suck". Unless you enjoy support calls that are difficult to resolve, please avoid using VBScript Custom Actions. Cheers to Doug for presenting (again) a dry but important topic. On a related note, I'm thinking about dropping by ...
09:16:00 March 29, 2005, Tuesday (PST) Source: Jerry Dennany's Occasional Clue
SQL Server 2005 will be 'slipstreamable'
So, while looking for information on the upcoming SQL Server 2000 SP4 release, I noticed that SQL Server 2005 is 'slipstreamable'. I'm pretty certain that most of the developers here don't really care, but I am also responsible for the build / release cycle on my dev team. Slipstreaming almost crosses over into the 'must have' category. The SQL Server 2000 installation was a strange mixture of coolness, and archaic. For example, while the Service Packs are cluster aware and very scriptable, they are launched from a SETUP.BAT file. How 1990s.It's also worth noting that even for a Y2K software release, Microsoft was still using Installshield 5.x for SQL Server installs, and not the much ballyhood "Windows Installer" engine. I'll be putting the SQL Server 2005 install through it's paces soon, checking out Cluster installations, as well as silent installs. I'll keep you posted.
17:10:00 March 24, 2005, Thursday (PST) Source: Jerry Dennany's Occasional Clue
Atlanta .NET Regular Guys Lunch chat with Paul Wilson
The Atlanta .NET Regular Guys (namesake of the ex-Atlanta Radio show duet) post about their lunch with Paul Wilson. Anyone in Atlanta should take Paul up on his lunch offer. He's a really fascinating person to talk tech with.
10:56:00 March 12, 2005, Saturday (PST) Source: Jerry Dennany's Occasional Clue
WS-SecureConversation - A Per User Story
As I mentioned a few posts ago, I’ve been spending some time with WSE 2.0. One of the cool things in the new WS-* specs is WS-SecureConversation. SecureConversation maintains the ability to enforce authentication and authorization at a per call basis, while lowering the runtime burden of actually performing a full authentication for each round trip call. I’m not going to go too far into details here, as there’s plenty of information on WS-SecureConversation available on the web. The problem that I had with the Microsoft WSE 2.0 implementation of SecureConversation is that all of the Microsoft examples that I saw used policy files to set up the “Conversation.” This really works great out of the box, and allows two applications to set up a conversation with little more than wiring up some incredibly complicated XML configuration files. This conversation is enforced at the AppDomain level. However, my application model required that the secure conversation take place at a “user” level ...
13:22:00 March 10, 2005, Thursday (PST) Source: Jerry Dennany's Occasional Clue
Yang Cao (finally) starts his blog
Yang Cao has started a blog. I've worked with Yang for several internet eons now, and I've learned to pay close attention to what he says. (He's forgotten more about threading than I ever knew!) Nice to see that peer pressure still works!
07:25:00 February 22, 2005, Tuesday (PST) Source: Jerry Dennany's Occasional Clue
I'm looking at WSE 2.0 SP2
I've recently been spending some quality time with WSE 2.0 SP2, and let me tell you, this wiz-bang framework provides a lot of bang for the buck. I've implemented a prototype communications layer for our application, replacing our custom TCP based RPC mechanism with a SOAP / WSE Framework. Lots of 'interesting' steps along the way. I'll expand on these later, but my initial impressions are: 1. Lots of documentation, but it's not very descriptive. For a quick example, what's the difference between the Microsoft.Web.Services2.Policy.WSEPolicy Class and the Microsoft.Web.Services2.Policy.WSPolicy Class? If we review the docs we find that the first one "Defines policy assertion constants that are specific to the Web Services Enhancements" and the second one claims that "these constants map to elements and attributes defined in the WS-Policy specification". But nowhere in the documentation does it say why these classes are important to me. (Actually, they are not, but there is so much ...
07:49:00 February 21, 2005, Monday (PST) Source: Jerry Dennany's Occasional Clue
Quote of the Day
The quote of the day goes to Sandy Khaund for "Pimp My Application Blocks."
19:17:00 December 29, 2004, Wednesday (PST) Source: Jerry Dennany's Occasional Clue
WebForms, Winforms, XUL, XAML?
I was recently following a thread on Chris Sells' WIN_TECH_OFFTOPIC. The original request was for a good rich edit text box for a WebForms App. After much discussion, Rob Nimmo came back with the following remark: "Mind you it got me thinking - I had a chat with one of our devs as to what the advantages or disadvantages to doing an in houseapp as Winforms over Webforms... To tell the truth, I hadn't given it an awful lot of thought..." Hopefully, in the future, none of us will have to give it any thought. Eventually Web Applications and "Thick" applications will merge, and there will really be no choice. All applications will provide rich user experience with the convenience of readily available updates and all the other advantages that come with Webforms. One-Click Updates, XUL (and Microsoft's copy of XUL, XAML) are merely steps in this journey.
13:02:00 December 18, 2004, Saturday (PST) Source: Jerry Dennany's Occasional Clue
Have ildasm, will travel.
I'm suffering from a severe form of Senior-itis. I never finished college the first time around - instead, I spent my time touring the world behind a gun turret, courtesy of Uncle Sam. After leaving the service, I entered the world if IT through a rather circuitous route, and am now more likely to disassemble a .NET module using ildasm than I am to disassemble an M-16. But, I digress. I've finally put in the immense amount of time necessary to finish my Bachelors of Science in Computer and Information Science. It is indeed the eleventh hour of my time as an undergraduate. I have one more task to complete. A rather simple task, though a time consuming one. I've merely to write up a semester's worth of biology lab results. However, I find myself longing to do anything but schoolwork. In maybe a dozen hours worth of work, I could be done. Instead, I find myself diving into the Windows ICF API documentation, writing proof of concept applications. It's interesting, actually. I have a ...
11:15:00 December 14, 2004, Tuesday (PST) Source: Jerry Dennany's Occasional Clue
Code Complete, 2nd edition
Well, I had recently complained about some of the pre-publishing hype for McConnell's Code Complete, 2nd Edition. Every book deserves its chance, so I picked up a copy. My conclusion? For too many pages, I felt like I was reading the first edition. This book is pretty good, but I don't really know if it's worth reading if you've already got the first edition. McConnell's treatise on the proper placement of brackets went on for entirely too many pages. I thought my eyes would bleed if he mentioned indentation structure one more time! I readily admit that I am a fan of McConnell's Rapid Development. However, Code Complete will be busy gathering dust on my bookshelf.
08:48:00 November 18, 2004, Thursday (PST) Source: Jerry Dennany's Occasional Clue
Updating the Path environment variable from nAnt scripts
I couldn't seem to find a way to update the Path environment variable using the 'stable' build of nAnt. Setting sys.env.Path doesn't update the system environment variable, though the ${sys.env.Path} property will appear to be updated. This can be somewhat confusing. So, I've written a target, instead. This "updatepath" target will update the path for the length of the nAnt build. Set the "build.appendpath" property before calling this target, and be certain to call the <sysinfo/> task as well. A similar method could be used for any environment variable: <target name="updatepath"> <script language="C#"> <code><![CDATA[ public static void ScriptMain(Project project) { string currentPath = project.Properties["sys.env.Path"]; // make certain that there is a trailing semicolon if(!(currentPath.EndsWith(";"))) currentPath += ";"; string updatedPath = currentPath + project.Properties["build.appendpath"]; SetEnvironmentVariable("Path", updatedPath); } [ ...
07:57:00 November 8, 2004, Monday (PST) Source: Jerry Dennany's Occasional Clue
I like semicolons, but underscores like me...
I’m pretty much a C# fan. I admit it, I like semi-colons. Frankly, I think that I’m addicted to them, and I go through withdrawal every time I find myself fumbling through Visual Basic .NET code. I’ll find my fingers sneaking in a friendly ; . Of course, the IDE politely reminds me that I’m an idiot. As soon as possible after my VB.NET experience, I usually scurry back to the comfort of C#. However, there are a few things that VB.NET just does for you that C #doesn’t. For example, take the following code C# snippet: using System; namespace Dennany.Examples.Test { class MainClass { static void Main(string[] args) { Customer c = new Customer(); c.Name = "Jerry Dennany"; ProcessCustomer.ProcessCustomerName (ref c.Name); } } public class Customer { private string _name; public string Name { get { return _name; } set { _name = value; } } } public class ProcessCustomer { static public void ProcessCustomerName(ref string NameProperty) { // Do something here } } } Ahh, I’m ever so fond of ...
10:15:00 October 18, 2004, Monday (PDT) Source: Jerry Dennany's Occasional Clue
SQL Server Assertion: MSKB 885290
This one hit my team pretty hard. FIX: An assertion error occurs when you insert data in the same row in a table by using multiple connections to an instance of SQL Server We had a customer with a major production issue - The SQL Server was throwing stack traces at random intervals, and the SQL connection would die. We traced the issue to a specific stored procedure, and from there, to a specific line of T-SQL. The problem was, the T-SQL was perfectly legal, and valid. I searched the newsgroups, and http://support.microsoft.com, but had no luck. So, next stop was Microsoft's Product Support Team for SQL Server. It wasn't the dream experience I had hoped for. I've dealt with the MSMQ PSS team on several occasions, and it's always been a pleasure. However, there were several turn-offs when dealing with SQL Server PSS. 1. I didn't deal with a Microsoft employee. He was a contractor (as noted by the 'v-' prefix to the email address. Note to MS: You give away too much business ...
03:18:00 October 14, 2004, Thursday (PDT) Source: Jerry Dennany's Occasional Clue
Can we please add support for String overloads wherever we see char[] in the framework?
Aaahhh! One of my pet peeves, actually, is that sprinkled throughout the framework are many places that insist on taking a char[]. The instance method String.Split() is one such example, though I am certain that you will see many others. Why, oh why didn't we overload these methods to take a String? It's not like I keep a char[] in my pocket, just waiting to use. I've got to dust off a Char.Parse(), or some such ugly construct. The String is one of the most natural objects in the framework. Microsoft really got something right here, with a unified string type, instead of the mess of BSTR and LPSTR and char* and CString and wchar and TCHAR and LPCTSTR and basic_string and (breath, Jerry, breath!!)... And, I'm not even mentioning the custom strings that people write for C++. I think I would run out of blog space here. So, since the String class is one of the most "natural" types in .NET, a string parameter should be the type of choice when passing charactor data. Does anyone really ...
09:08:00 October 8, 2004, Friday (PDT) Source: Jerry Dennany's Occasional Clue
VB.NET to C# Web Project Conversion
I work for a pretty cool company, on a pretty nifty product team. When ASP.NET first came out, the team took part of our application and web-enabled it, standardizing on the VB.NET language. It made sense at the time, as much of our previous ASP work was VB based. However, most of our application is written on C++, and the transition to C# from C++ is a much easier transition than from VB.NET. So, despite our present VB.NET code base, the team is standardizing on the C# language. We've tossed around the idea of converting our VB.NET code to C#, but it seemed like it would be too much work. Now, I've seen plenty of C# to VB.NET code translators, but it's pretty rare to see something that goes the other way. So, I looked around, and I saw a few products out there, mostly in the $200 price range. It's a pain to put a Purchase Order through for a tool around here, so free was going to be a better price range. Then I found SharpDevelop. Now, I've played around with SharpDevelop in the ...
15:47:00 September 16, 2004, Thursday (PDT) Source: Jerry Dennany's Occasional Clue
Backing Up Windows Clusters
A little bit ago, someone asked for the best method to back up a windows cluster. Instead of trying to cover all the bases myself, I'll point to this technet article: http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/clustering/sercbrbp.mspx
08:08:00 August 17, 2004, Tuesday (PDT) Source: Jerry Dennany's Occasional Clue
In the real world...
 This is certainly the blog site to go to for Microsoft centric conversation - I'm deluged with very interesting articles on everything from “Source Safe Power Toys” to the interesting concept of UI Mappers (I'm not certain that I fully get the concept, but I am always a bit slower on the uptake than Paul). However, my day to day is not necessarily consumed by ASP.NET, or even just plain old .NET. I live, and work in the real world, a world full of old C++, MFC, and Delphi code, and "Heritage" systems. (The word "Legacy" is just so, so, 20th century, isn't it?) When I get the opportunity, I like to use .NET where it is useful, and makes sense. One of the ways that I've found to help pave the way for future .NET use in Enterprise level projects is to use it in the Installer. Usually using either Wise or InstallShield, I write as little as reasonably possible in the Install Scripting language. I then write my Custom Actions in C#. There are quite a few advantages to this. The install ...
16:56:00 July 22, 2004, Thursday (PDT) Source: Jerry Dennany's Occasional Clue
Code Complete, 2nd Edition
I'm getting a bit tired of people recommending McConnell's Code Complete, 2nd Edition. The book isn't even released yet! No one that I know has read it, so why is everyone recommending it? I recently read one post that went so far as to claim that it should be on every developers bookshelf. Now that would be a neat trick! Now, I recently re-read the first edition, and while McConnell's main points still hold true, many of his examples are rather dated. That's to be expected with a text of this age, and it is time for an update. Let's withhold the irrational exuberance until we can actually read it, eh?
12:28:00 June 13, 2004, Sunday (PDT) Source: Jerry Dennany's Occasional Clue