36
I Use This!
Inactive

News

Analyzed 1 day ago. based on code collected 1 day ago.
Posted over 16 years ago by Eric Kemp
When I posted my Vista rant a few weeks back, I listed "Mysterious file locking" as one of my gripes. However, a recent discovery has lead to believe that the blame for this issue may not rest solely on Vista. In the interest of full disclosure, I ... [More] should admit that I'm back on Vista (64-bit no less - ouch) for a variety of reasons that I won't go into. Let's just say that I figured every operating system deserves a second chance, and fortunately KB938194 and KB938979 have made the daily grind a little less painful. Does the following scenario sound familiar? You try to delete a folder, but receive a prompt telling you that "access is denied." Setting security permission and taking ownership of the folder does not help. However, if you delete everything inside it the folder first, you can remove it without problem. With a little help from handle.exe, I discovered that in my case the source of the problem was actually TortoiseSVN, or more specifically TSVNCache.exe, which retaining handles on these folders that I was unable to delete. By default, TortoiseSVN will attempt to monitor the status of all directories on all drives, adjusting file and folder icons to reflect that current state of versioned files and folders. However, if you attempt to keep any order to your development projects (or even if you don't) the actual paths on your machine that need to be monitored represent only a subset of the overall directory. This means TortoiseSVN is spending a lot of effort (and disk I/O) watching irrelevant directories. Fortunately, there's a simple way to control this which directories TortoiseSVN will monitor. From the TortoiseSVN help file: "TSVNCache.exe also uses these paths to restrict its scanning. If you want it to look only in particular folders, disable all drive types and include only the folders you specifically want to be scanned." To make this adjustment, simply open up your TortoiseSVN settings (right click on any folder and select TortoiseSVN > Settings) and select Look and Feel > Icon Overlays. Your settings will probably look like the following:  To restrict the monitored paths, uncheck Fixed drives and then use the Exclude paths and Include paths values to narrow the scanning. If the specified directories should be acted on recursively, make sure you add a * to the end of the path. Sure enough, once I made this change, the folder locking problem disappeared. Hooray for small victories! Escape from Hotfix Hell If you ever had to get a hotfix from Microsoft PSS, you know what a time consuming process it can be. You can spend upwards of half an hour on hold before reaching a screener, and subsequently an engineer, both of whom you'll need to convince that you are indeed to experiencing the problem that the hotfix addresses. So needless to say, I was thrilled when I discovered the following page this morning: Hotfix Request Web Submission Form Kudos to Microsoft for finally making it easier to get hotfixes!  [Less]
Posted over 16 years ago by Eric Kemp
When I posted my Vista rant a few weeks back, I listed "Mysterious file locking" as one of my gripes. However, a recent discovery has lead to believe that the blame for this issue may not rest solely on Vista. In the interest of full disclosure, I ... [More] should admit that I'm back on Vista (64-bit no less - ouch) for a variety of reasons that I won't go into. Let's just say that I figured every operating system deserves a second chance, and fortunately KB938194 and KB938979 have made the daily grind a little less painful. Does the following scenario sound familiar? You try to delete a folder, but receive a prompt telling you that "access is denied." Setting security permission and taking ownership of the folder does not help. However, if you delete everything inside it the folder first, you can remove it without problem. With a little help from handle.exe, I discovered that in my case the source of the problem was actually TortoiseSVN, or more specifically TSVNCache.exe, which retaining handles on these folders that I was unable to delete. By default, TortoiseSVN will attempt to monitor the status of all directories on all drives, adjusting file and folder icons to reflect that current state of versioned files and folders. However, if you attempt to keep any order to your development projects (or even if you don't) the actual paths on your machine that need to be monitored represent only a subset of the overall directory. This means TortoiseSVN is spending a lot of effort (and disk I/O) watching irrelevant directories. Fortunately, there's a simple way to control this which directories TortoiseSVN will monitor. From the TortoiseSVN help file: "TSVNCache.exe also uses these paths to restrict its scanning. If you want it to look only in particular folders, disable all drive types and include only the folders you specifically want to be scanned." To make this adjustment, simply open up your TortoiseSVN settings (right click on any folder and select TortoiseSVN > Settings) and select Look and Feel > Icon Overlays. Your settings will probably look like the following:  To restrict the monitored paths, uncheck Fixed drives and then use the Exclude paths and Include paths values to narrow the scanning. If the specified directories should be acted on recursively, make sure you add a * to the end of the path. Sure enough, once I made this change, the folder locking problem disappeared. Hooray for small victories! Escape from Hotfix Hell If you ever had to get a hotfix from Microsoft PSS, you know what a time consuming process it can be. You can spend upwards of half an hour on hold before reaching a screener, and subsequently an engineer, both of whom you'll need to convince that you are indeed to experiencing the problem that the hotfix addresses. So needless to say, I was thrilled when I discovered the following page this morning: Hotfix Request Web Submission Form Kudos to Microsoft for finally making it easier to get hotfixes!  [Less]
Posted almost 17 years ago by Eric Kemp
Exhibit A   Let's break down the pieces of information provided... Link to remedial firewall theory documentation Name of the program (which was knowingly just launched) Publisher of the program (which was knowingly just launched) Path of the ... [More] program (which was knowingly just launched) Very broad (i.e. Private, Public) destination description Link to a definition of the Vista network location model. No wait, it links to "Choosing a network location"and the best one of all: "This program has already been blocked or unblocked for a different network location." Should I Keep Blocking or Unblock? Well, without knowing where it's trying to connect to it's rather hard to decide. In fairness, this isn't really a Vista problem. It's an issue that began Windows XP SP2, via the firewall additions and the enhanced Internet Explorer security, which also demands security decisions without providing useful information. However, with Vista UAC, this "Ask, Don't Tell" approach to client security is now threaded throughout the Windows experience. As annoyed as I am about the lack of useful information here, I can see reasons to attempt to hide the complexity. But why include so much useless information? People don't want to read dialog boxes. And if they're going to spend the time, they should at least come away with information that commiserate with their investment. If software can't inform, it shouldn't pretend to. [Less]
Posted almost 17 years ago by Eric Kemp
Exhibit A   Let's break down the pieces of information provided... Link to remedial firewall theory documentation Name of the program (which was knowingly just launched) Publisher of the program (which was knowingly just launched) Path of the ... [More] program (which was knowingly just launched) Very broad (i.e. Private, Public) destination description Link to a definition of the Vista network location model. No wait, it links to "Choosing a network location"and the best one of all: "This program has already been blocked or unblocked for a different network location." Should I Keep Blocking or Unblock? Well, without knowing where it's trying to connect to it's rather hard to decide. In fairness, this isn't really a Vista problem. It's an issue that began Windows XP SP2, via the firewall additions and the enhanced Internet Explorer security, which also demands security decisions without providing useful information. However, with Vista UAC, this "Ask, Don't Tell" approach to client security is now threaded throughout the Windows experience. As annoyed as I am about the lack of useful information here, I can see reasons to attempt to hide the complexity. But why include so much useless information? People don't want to read dialog boxes. And if they're going to spend the time, they should at least come away with information that commiserate with their investment. If software can't inform, it shouldn't pretend to. [Less]
Posted almost 17 years ago by Eric Kemp
I've been wanting to write this post for quite some time and today seems as good a day as any. I'm currently in transit from Boston to New York for the weekend on my new favorite form of transportation, the LimoLiner. High speed Internet, power ... [More] ports, satellite television, big comfortable seats - now I understand why John Madden rides around the country in one of these things. Yeah, it's still a bus, but with a street price of $550,000 it's a damn nice one. Oooh, they're bring around the snacks! So I bought an iPhone last Sunday. In and of itself, this really wouldn't be that big a deal for me, if it weren't for the fact that it ended my 10 year Apple embargo. And that would also not be a big deal, were it not for the fact that I was once the most insane, stark-raving Apple fanatic to walk the face of this earth. For a period of time I even considered getting an Apple tattoo. Seriously. This is a story that goes back a good 25 years and covers several stages of my life. My first computer was not an Apple. That distinct honor goes to the Timex-Sinclair ZX-81, a rather nifty device for its time. It featured membrane keys not all that dissimilar to those you would find on the front of a contemporary microwave, which served double-duty as letters and BASIC commands, meaning that "G" was also "GOTO." Like my subsequent machine, the TI-99/4A, any programs you wrote had to be saved on audio cassettes via a tape recorder. I still have a cassette lying on a bookshelf scrawled with names of my earliest programs, each one identified with start and end tape counter numbers so I could locate them to open. The TI-99/4A was a somewhat bulkier beast than the Timex-Sinclair, but still portable enough that I was able to fashion a custom hard-shell carrying case from one of father's old briefcases. But none of these were an Apple II, my childhood ideal of computing perfection. For most of my childhood my mother worked for our weekly home town newspaper, acting in almost every capacity at some point during her tenure. The paper was a labor of love for those involved, and managed to maintain a consistently high degree quality integrity up until just a couple years ago, when it was sold the media conglomerate responsible for New England's garbage tabloid, The Boston Herald, at which point it became, well what you would suspect given its ownership. In the early days of the Harvard Post, everything was done on CompuGraphics typesetters, massive blue monstrosities offering primitive word processing capabilities and basic archival capabilities via massive 8-inch floppy disks. However, the real strength of these devices was their ability to output high quality type at a before the availability of laser printers through a process that transferred type as photographic projections on to long, narrow rolls of special paper. After being run through some manner of chemical cocktail, these became the individual article columns which were used in the layout of the individual pages sent to the printer in the predawn hours each Thursday morning. During one of the rare periods of time that the Post found itself with expendable income, someone made the decision to purchase an Apple II, and later for some unknown reason, an Apple III. Perhaps it was lure of VisiCalc, or an overly optimistic belief that this machine could do the same job as the CompuGraphics machine, in a fraction of the space and without the need to dispose of hazard chemicals. This would have been a difficult task for the Apple II, if no other reason than a lack of lower case letters. Whatever the intent, I was the primary, if not sole user of the device, which I dutifully visited each and every afternoon after school until my mother was ready to go home. My original dream machine    Software was hard to come by in those days, as the BBS scene was primitive, long distance phone calls expensive, and with 300 baud representing state-of-the-art in communications, file transfers were a maddeningly slow process, even by the standards of the time. But with the built in BASIC capabilities, there was plenty of opportunity to write your own software. Of course, this was a process that required a certain degree planning and linear thinking due to the fact that AppleSoft BASIC lacked a renumber function, resulting in programs that quickly became a mess of GOTO statements. Eventually, however, someone realized that keeping me entertained was not the most effective use of the paper's resources, and the decision was made to sell the machine. My mother tried to break it to me gently, but despite her best efforts, I still cried myself to sleep that night. To this day I'm not sure why this machine made an impression on me that other failed to match, but from my first encounter I was Apple obsessed. I don't think my parents quite understood the attachment, especially my father who, attempting to fill the void left by departure of "my" beloved machine was making arrangements to get me my very own DEC Rainbow, only to discover that I was about as interested in this clearly superior piece of hardware as I was in getting a dollhouse. At that point my father finally succumbed and bought me a used Apple II  with a mountain of floppies loaded with what seemed at the time like every piece of software available. I couldn't have been happier. If my allegiance ever in question, any and all doubt vanished on the night of January 30th, 1984 when, at 11 years old, I became the original Mac Fanboy.   To be continued... [Less]
Posted almost 17 years ago by Eric Kemp
I've been wanting to write this post for quite some time and today seems as good a day as any. I'm currently in transit from Boston to New York for the weekend on my new favorite form of transportation, the LimoLiner. High speed Internet, power ... [More] ports, satellite television, big comfortable seats - now I understand why John Madden rides around the country in one of these things. Yeah, it's still a bus, but with a street price of $550,000 it's a damn nice one. Oooh, they're bring around the snacks! So I bought an iPhone last Sunday. In and of itself, this really wouldn't be that big a deal for me, if it weren't for the fact that it ended my 10 year Apple embargo. And that would also not be a big deal, were it not for the fact that I was once the most insane, stark-raving Apple fanatic to walk the face of this earth. For a period of time I even considered getting an Apple tattoo. Seriously. This is a story that goes back a good 25 years and covers several stages of my life. My first computer was not an Apple. That distinct honor goes to the Timex-Sinclair ZX-81, a rather nifty device for its time. It featured membrane keys not all that dissimilar to those you would find on the front of a contemporary microwave, which served double-duty as letters and BASIC commands, meaning that "G" was also "GOTO." Like my subsequent machine, the TI-99/4A, any programs you wrote had to be saved on audio cassettes via a tape recorder. I still have a cassette lying on a bookshelf scrawled with names of my earliest programs, each one identified with start and end tape counter numbers so I could locate them to open. The TI-99/4A was a somewhat bulkier beast than the Timex-Sinclair, but still portable enough that I was able to fashion a custom hard-shell carrying case from one of father's old briefcases. But none of these were an Apple II, my childhood ideal of computing perfection. For most of my childhood my mother worked for our weekly home town newspaper, acting in almost every capacity at some point during her tenure. The paper was a labor of love for those involved, and managed to maintain a consistently high degree quality integrity up until just a couple years ago, when it was sold the media conglomerate responsible for New England's garbage tabloid, The Boston Herald, at which point it became, well what you would suspect given its ownership. In the early days of the Harvard Post, everything was done on CompuGraphics typesetters, massive blue monstrosities offering primitive word processing capabilities and basic archival capabilities via massive 8-inch floppy disks. However, the real strength of these devices was their ability to output high quality type at a before the availability of laser printers through a process that transferred type as photographic projections on to long, narrow rolls of special paper. After being run through some manner of chemical cocktail, these became the individual article columns which were used in the layout of the individual pages sent to the printer in the predawn hours each Thursday morning. During one of the rare periods of time that the Post found itself with expendable income, someone made the decision to purchase an Apple II, and later for some unknown reason, an Apple III. Perhaps it was lure of VisiCalc, or an overly optimistic belief that this machine could do the same job as the CompuGraphics machine, in a fraction of the space and without the need to dispose of hazard chemicals. This would have been a difficult task for the Apple II, if no other reason than a lack of lower case letters. Whatever the intent, I was the primary, if not sole user of the device, which I dutifully visited each and every afternoon after school until my mother was ready to go home. My original dream machine    Software was hard to come by in those days, as the BBS scene was primitive, long distance phone calls expensive, and with 300 baud representing state-of-the-art in communications, file transfers were a maddeningly slow process, even by the standards of the time. But with the built in BASIC capabilities, there was plenty of opportunity to write your own software. Of course, this was a process that required a certain degree planning and linear thinking due to the fact that AppleSoft BASIC lacked a renumber function, resulting in programs that quickly became a mess of GOTO statements. Eventually, however, someone realized that keeping me entertained was not the most effective use of the paper's resources, and the decision was made to sell the machine. My mother tried to break it to me gently, but despite her best efforts, I still cried myself to sleep that night. To this day I'm not sure why this machine made an impression on me that other failed to match, but from my first encounter I was Apple obsessed. I don't think my parents quite understood the attachment, especially my father who, attempting to fill the void left by departure of "my" beloved machine was making arrangements to get me my very own DEC Rainbow, only to discover that I was about as interested in this clearly superior piece of hardware as I was in getting a dollhouse. At that point my father finally succumbed and bought me a used Apple II  with a mountain of floppies loaded with what seemed at the time like every piece of software available. I couldn't have been happier. If my allegiance ever in question, any and all doubt vanished on the night of January 30th, 1984 when, at 11 years old, I became the original Mac Fanboy.   To be continued... [Less]
Posted almost 17 years ago by Eric Kemp
SubSonic on InfoQ James Vastbinder did a write up on SubSonic for InfoQ. If you've never check out the site before, it's a great news resource tracking the enterprise software development community. Definitely one to add to your bookmarks and/or RSS ... [More] feeds. Thanks James! The SubSonic Drive-Through Window Don Worthley wrote a great post about a reflection technique that can be used to retrieve ActiveRecord objects by name at runtime. Some truly inspired thinking that gets the gears turning and might just makes it into the trunk (with Don's permission, of course). If you haven't had your coffee aren't quite ready to jump into reflection on a Monday morning, I also recommend his insightful post: What is a Software Architect? iScaffolds In case anyone out there was wondering, yes, you can use SubSonic scaffolds from an iPhone. It's certainly not the easiest way to update your database content, but in a pinch, it does the job.   [Less]
Posted almost 17 years ago by Eric Kemp
SubSonic on InfoQ James Vastbinder did a write up on SubSonic for InfoQ. If you've never check out the site before, it's a great news resource tracking the enterprise software development community. Definitely one to add to your bookmarks and/or RSS ... [More] feeds. Thanks James! The SubSonic Drive-Through Window Don Worthley wrote a great post about a reflection technique that can be used to retrieve ActiveRecord objects by name at runtime. Some truly inspired thinking that gets the gears turning and might just makes it into the trunk (with Don's permission, of course). If you haven't had your coffee aren't quite ready to jump into reflection on a Monday morning, I also recommend his insightful post: What is a Software Architect? iScaffolds In case anyone out there was wondering, yes, you can use SubSonic scaffolds from an iPhone. It's certainly not the easiest way to update your database content, but in a pinch, it does the job.   [Less]
Posted almost 17 years ago by Eric Kemp
In the spirit of attempting to make for frequent, incremental releases, the SubSonic team is proud to present SubSonic 2.0.3. Following 2.0.2 by less than three weeks, SubSonic 2.0.3 is primarily a maintenance release, with a few significant ... [More] enhancements. What's New and Changed The template execution engine has undergone a complete overhaul with an emphasis on optimizing execution performance, with improvements of up to 800%. If you've used 2.0.2 or earlier, you're definitely going to feel the difference. Three new provider configuration parameters: enableTrace - Allows tracing to be enabled or disabled, addressing certain performance and medium trust issue. Defaults to false. fixDatabaseObjectCasing - Allows case transformations on database objects to be enabled or disabled, preserving the original database casing. Default is true. additionalNamespaces - An optional comma-separated list of namespaces to be added to using/Imports blocks at the top of generated code. The PreUpdate() and PostUpdate() virtual methods in ActiveRecord.Save() have been deprecated and will be removed in the next release. They have been replaced and enhanced with: BeforeValidate() - Executes before any record validation is performed. BeforeInsert() - Executes before the insert command is generated for  new records. BeforeUpdate() - Executes before the update command is generated for existing records. BeforeCommit() - Executes just prior to execution of INSERT/UPDATE command. Fixes and Work Items Work Item 9495 - Allow User-Specified Namespace References in Generated CodeWork Item 10237 - StarterSite Default Permissions Allow Administrator Access to All UsersWork Item 10924 - All StarterSite Pages and UserControls Should Inherit from a Single Base ClassWork Item 11228 - ExecuteJoinedDataset Doesn't Fully Qualify Table Reference with Schema OwnerWork Item 11306 - Logical Deletes do not Properly Deal with Null ValuesWork Item 11330 - VB Scaffold Templates v. 2.0.2Work Item 11359 - QuickTable Generates Errors when Used with ViewsWork Item 11361 - ODS Controller Templates Generate Code with Logical and Physical Deletes both Marked as DefaultWork Item 11370 - BuildProvider doesn't Properly Identify Current LanguageWork Item 11379 - VB Classes aren't Generated with Nullable PropertiesWork Item 11449 - Scaffold Improvements and Fixes: GUID PK, Hiding ID Column, Fully-qualified Table NamesWork Item 11484 - Column Values not Properly Initialized When Wrapped in TransactionScopeWork Item 11496 - Allow User-Specified Columns to be Hidden in Scaffold EditorWork Item 11517 - PreUpdate() called too late when savingWork Item 11557 - QuickTable Does not Prevent Sorting of Large or Binary Data TypesWork Item 11583 - Incorrect Type Mapping in OracleDataProvider for CLOB/NCLOB Data TypesWork Item 11595 - Paged query is not sortedWork Item 11606 - Sugar.Validation Does not Properly Validate Credit Card NumbersWork Item 11627 - Non-nullable Reserved Columns Fail ValidationWork Item 11630 - Collection.ToDataTable Does not Set TableNameWork Item 11630 - AbstractRecord TableName Property is Never Set Download [Less]
Posted almost 17 years ago by Eric Kemp
In the spirit of attempting to make for frequent, incremental releases, the SubSonic team is proud to present SubSonic 2.0.3. Following 2.0.2 by less than three weeks, SubSonic 2.0.3 is primarily a maintenance release, with a few significant ... [More] enhancements. What's New and Changed The template execution engine has undergone a complete overhaul with an emphasis on optimizing execution performance, with improvements of up to 800%. If you've used 2.0.2 or earlier, you're definitely going to feel the difference. Three new provider configuration parameters: enableTrace - Allows tracing to be enabled or disabled, addressing certain performance and medium trust issue. Defaults to false. fixDatabaseObjectCasing - Allows case transformations on database objects to be enabled or disabled, preserving the original database casing. Default is true. additionalNamespaces - An optional comma-separated list of namespaces to be added to using/Imports blocks at the top of generated code. The PreUpdate() and PostUpdate() virtual methods in ActiveRecord.Save() have been deprecated and will be removed in the next release. They have been replaced and enhanced with: BeforeValidate() - Executes before any record validation is performed. BeforeInsert() - Executes before the insert command is generated for  new records. BeforeUpdate() - Executes before the update command is generated for existing records. BeforeCommit() - Executes just prior to execution of INSERT/UPDATE command. Fixes and Work Items Work Item 9495 - Allow User-Specified Namespace References in Generated CodeWork Item 10237 - StarterSite Default Permissions Allow Administrator Access to All UsersWork Item 10924 - All StarterSite Pages and UserControls Should Inherit from a Single Base ClassWork Item 11228 - ExecuteJoinedDataset Doesn't Fully Qualify Table Reference with Schema OwnerWork Item 11306 - Logical Deletes do not Properly Deal with Null ValuesWork Item 11330 - VB Scaffold Templates v. 2.0.2Work Item 11359 - QuickTable Generates Errors when Used with ViewsWork Item 11361 - ODS Controller Templates Generate Code with Logical and Physical Deletes both Marked as DefaultWork Item 11370 - BuildProvider doesn't Properly Identify Current LanguageWork Item 11379 - VB Classes aren't Generated with Nullable PropertiesWork Item 11449 - Scaffold Improvements and Fixes: GUID PK, Hiding ID Column, Fully-qualified Table NamesWork Item 11484 - Column Values not Properly Initialized When Wrapped in TransactionScopeWork Item 11496 - Allow User-Specified Columns to be Hidden in Scaffold EditorWork Item 11517 - PreUpdate() called too late when savingWork Item 11557 - QuickTable Does not Prevent Sorting of Large or Binary Data TypesWork Item 11583 - Incorrect Type Mapping in OracleDataProvider for CLOB/NCLOB Data TypesWork Item 11595 - Paged query is not sortedWork Item 11606 - Sugar.Validation Does not Properly Validate Credit Card NumbersWork Item 11627 - Non-nullable Reserved Columns Fail ValidationWork Item 11630 - Collection.ToDataTable Does not Set TableNameWork Item 11630 - AbstractRecord TableName Property is Never Set Download [Less]