AboutSQL Server, Analytics, .Net, Machine Learning, R, Python Archives
About Me
Mitch Wheat has been working as a professional programmer since 1984, graduating with a honours degree in Mathematics from Warwick University, UK in 1986. He moved to Perth in 1995, having worked in software houses in London and Rotterdam. He has worked in the areas of mining, electronics, research, defence, financial, GIS, telecommunications, engineering, and information management. Mitch has worked mainly with Microsoft technologies (since Windows version 3.0) but has also used UNIX. He holds the following Microsoft certifications: MCPD (Web and Windows) using C# and SQL Server MCITP (Admin and Developer). His preferred development environment is C#, .Net Framework and SQL Server. Mitch has worked as an independent consultant for the last 10 years, and is currently involved with helping teams improve their Software Development Life Cycle. His areas of special interest lie in performance tuning |
Monday, April 30, 2007AnkhSVN: Visual Studio 2005 Subversion Plugin
I'm not currently using Subversion on a day-to-day basis, but if I was I'd definitely be keen to have it integrated into the Visual Studio 2005 IDE (even SourceSafe, the enfant terrible gives you this ability!), rather than using TortoiseSVN, which integrates into Windows Explorer. Back in January this year (2007), Arild Fines released version 1.0 Final of AnkhSVN, a Visual Studio 2005 plugin for Subversion. You can download it here.
The source code is also available for free, and there is a AnkhSVN Wiki. Labels: ankh, ankhsvn, IDE, source control, subversion, visual studio 2005 Thursday, April 26, 2007Free e-book: Basics of Compiler Design
Those long winter evenings will soon be with us here in Perth Australia, so what could be better than curling up with a nice thick, free e-book on the Basics of Compiler Design!
It might not be of interest to everyone(!), but if you do fancy a free e-book, Torben Mogensen has made his book available online as a PDF here. If you're interested in this kind of thing, check out Joe Duffy's and Joel Pobar's PDC session, Good For Nothing Compiler (PDC - TLN410) Tuesday, April 24, 2007Expresso 3.0 Beta, a Regular Expression Editor and Tester
I mentioned Expresso, a regular expression tool written by Jim Hollenhorst, on my blog back in February along with several other regular expression tools and resources. Version 3.0 is now in Beta and is well worth a look.
Expresso is not only a great tool for building and testing new regular expressions, but it's also great for understanding existing expressions, as it provides an explained English breakdown of the various parts of an expression as a tree. It’s rapidly becoming my favorite regular expression tool. NUnit 2.4 Final Release (2.4.0.2)
Most of the time I use the version of NUnit that happens to be installed on my system, and I only infrequently check for updates. When I visited the home NUnit site today I noticed that the final version 2.4 of NUnit has been released. You can download it here (release notes). It was released over a month ago and includes several enhancements such as a new syntax and internal architecture for Asserts based on the constraints found in JMock and NMock.
Tuesday, April 17, 2007Get Visual Studio 2005 Intellisense with Google Earth KML files
In fact, given a custom XSD schema definition file you can use this method to get Visual Studio 2005 intellisense with just about any XML based file, including NAnt and NAntContrib schemas (see here for a build task to generate the combined NAnt and NAntContrib schema).
1) Download kml21.xsd from http://code.google.com/apis/kml/schema/kml21.xsd and paste it into C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas 2) Open regedit at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Editors\{fa3cd31e-987b-443a-9b81-186104e8dac1}\Extensions and add a DWORD value of "kml" with value '2A' (the value may vary depending on the editor). For other file extensions (such as .build) add the extension to the relevent editor at the \Editors\{GUID}\Extensions level. 3) In each .kml file, set the xml namespace to: <kml xmlns="http://earth.google.com/kml/2.1"> Updated: Jonathon Howey kindly pointed out that I missed the \Extensions part of the registry key, which I've now fixed. Thanks Jonathon. Thursday, April 12, 2007Form Design and Label Placement
While James Avery was working on a side project he ended doing some research into form design and label placement, the results of which he blogged here, The Art of Label Placement in which he links to several interesting articles:
Web Application Form Design by Luke Wroblewski - This article covers the best ways to arrange labels and submission buttons.Our eyes and brain constantly ‘trick’ us into believing that much more of a scene is in sharp focus than actually is. In fact, the area of sharp focus, or fovea, is actually quite a small area of the total field of vision. Try it by staring ahead and checking things that are off centre. In the last article, there is a marked difference in eye tracking times between the right aligned labels and the labels positioned directly above a control. When the labels are directly above the start of an input field, the label and start of field are obviously in focus at the same, greatly reducing eye movement, but how does this then relate to further cognitive processes? There is obviously a correspondence between saccade times (the time taken for the eye to center on an area of interest) and cognitive friction, but it is not clear whether it is in a strictly linear relationship. “Eyetracking can show which parts of your user interfaces users see and which There’s no denying that good layout and interaction design is essential for creating happy users. And strangely, I’ve never seen any articles from Microsoft on the topic of eye-tracking for testing usability? Now we are in the Age of User Experience I’m sure that will change! Sunday, April 08, 2007Upgrading to SQL Server 2005
There's an interesting post over at the SQL Programmability & API Development Team Blog discussing dynamic object name resolution and default schemas. In particular it discusses the differences which exist between SQL Server 2000 and 2005, and possible (fixable) decrease in query throughput when using unqualified object references.
Saturday, April 07, 2007Influential Software Development Blogs
Like many developers, I read several blogs every day. Not quite as many as I’d like, and certainly not as many as Robert Scoble, who by his own account reads 1000. This seems a tad high to me, as it works out to be 16+ hours a day if you spend just 1 minute at each blog (8.3 hours if you spend just 30 seconds reading each one).
Here are the ones I think have influenced me more than others (although it was a hard task to reduce this list from around seventy to just six). I’m sure many of you read these already: Kathy Sierra: Kathy’s blog is insightful, entertaining and big on content and ideas. She is one of the visionarys behind O'Reilly's Head First series of books. The focus is designing great software by creating passionate users. How do we do that? By writing software that really helps the user at each step of a task. The difference between good software and great software is the way it makes users feel. Empower them to be great and do a great job! Recently, she has stopped blogging, but I’m sure she will start again… Scott Hanselman: Scott and his army of Hanselman clones(!) have covered just about every topic under the sun. Does he ever sleep? He covers pretty much everything including design, development and architecture. I’ve had more than one epiphany at Scott’s blog. His Hanselminutes webcasts are great. Go and grok him! Jeff Atwood: Jeff has an easy, very enjoyable writing style. Jeff covers a diverse range of topics. Always food for thought and excellent, balanced observations. He never ceases to amaze with his originality and breadth of subject matter. Scott Guthrie: For ASP.NET you can’t pass this blog by. Superb! Scott’s PDC presentations never fail to entertain and get his points across. His Tip/Tricks section is required reading for all ASP.NET developers. Scott is a program manager for so many areas of .NET, you be forgiven for assuming he’s also been cloned! ArcCast hosted by Ron Jacobs, has a large number of podcasts and webcasts available, with an architectural flavour but also covers other topics such as usability. Great resource! I met Ron when we were lucky enough to have him present here in Perth, and he’s an amazing guy. Joel Spolsky: not as active as it once was, but Joel’s archive is worth reading. Try reading his Unicode article…The first time I read it, I felt so dumb!... I have several of his collections of essays on software development in hard copy, but most of the material is free to read on his site. These six blogs cover many of the important areas that developers are required to be familiar with. Who do you read? Friday, April 06, 2007Enterprise Library 3.0 Released
The Microsoft Patterns & Practices team has announced the official release of Enterprise Library 3.0 - April 2007 for the .NET Framework 2.0 and 3.0. [Saw this via Tom Hollander’s blog] Nice one guys!
Tuesday, April 03, 2007C# Code Snippet: Ensure Filename is Unique
OK, this is not exactly going to be the most complicated C# code snippet you will ever see. I’ve often wondered why the .NET Framework does not include similar functionality to Explorer when copying and pasting files (if it does and I’ve somehow missed it, please post a comment and let me know!). I’ve often needed the simple logic of ensuring that saving a file to a specified folder does not clash with one of the same name. There are basically two ways of doing this: (1) simply modify the filename to include a string representation of a GUID (via Guid.NewGuid().ToString()), or (2) or modify the filename to prepend something like “Copy (?) of “ checking until the name is unique. Here is a minimalist implementation of the second:
/// <summary> /// See main overload. /// </summary> /// <param name="fullFilePathname">a fully pathed filename</param> /// <returns>a unique fully pathed filename</returns> public static string EnsureUniqueFilename(string fullFilePathname) { string destFolder = Path.GetDirectoryName(fullFilePathname); if (String.IsNullOrEmpty(destFolder)) throw new ArgumentException("You must pass a fully pathed filename"); return EnsureUniqueFilename(fullFilePathname, destFolder); } /// <summary> /// Return a unique filename of the form, 'Copy of (?) OriginalFilename.ext' /// NOTE: Does not adhere to the full semantics of the file explorer copy logic. /// which creates first copy named as 'Copy of OriginalFilename.ext' /// Nor does it rename any files. It simply returns a filename which is unique /// It does not take into account multiple threads attempting to make use /// of the same filename. /// </summary> /// <param name="fullFilePathname">a fully pathed filename</param> /// <param name="destFolder">a destination folder</param> /// <returns>a unique fully pathed filename</returns> public static string EnsureUniqueFilename(string fullFilePathname, string destFolder) { string filename = Path.GetFileName(fullFilePathname); string renamedFile = Path.Combine(destFolder, Path.GetFileName(fullFilePathname)); // Check if a file with same name exists in folder and try a modified name if neccessary... int intCopy = 0; while (File.Exists(renamedFile)) { intCopy++; renamedFile = Path.Combine(destFolder, "Copy (" + intCopy.ToString() + ") of " + filename); } return renamedFile; } Photoshop Tutorials
Mastering PhotoShop seems to take a lifetime. Not that I would put myself in that esteemed camp. I came across a few surprisingly easy but effective tutorials at the Photoshop Café here and here.
If you are a keen photographer, it’s hard to pass up this gem of a book The Photoshop CS Book for Digital Photographers by Scott Kelby. If you can find a better hands-on book, buy it and please let me know what it is! Here’s just one very simple tip of many more involved examples from the book: to display your work press ‘f’, ‘f’ and then ‘Tab’. The first ‘f’ centers your work; the second hides the menu bar and displays a black background. ‘Tab’ hides the toolbars, Options bar and palettes. Just press ‘f’ and ‘Tab’ to return to normal working mode. Sunday, April 01, 2007Sign Up for Free Broadband!
Good to see the folks at Google have a sense of humor!
|
ContactMSN, Email: mitch døt wheat at gmail.com LinksFavorites
Blogs |