Archives

Archives / 2005
  • [Tools] Some Great .NET and VisualStudio.NET Tools

    James Avery has produced a couple of "short lists" of tools that are very, very helpful to .NET developers.  Have a look at them.  Actually, don't wast time - just go ahead right now and download the ones that will save you tons of time in your daily work:

  • [.NET C#] A Notable Blog: "Fabulous Adventures In C#"

    For adding some refreshing technical depth to your blog reading, I can recommend Fabulous Adventures In C#, Eric Lippert's fine weblog.  I have found quite a number of his posts and articles engaging and inspiring.  It's nice to see someone in the blogosphere who is not afraid to use words like "idempotence" and who is not embarrassed to actually sprinkle a little mathematics into a post ostensibly targeted at programmers. 
     
    While software developers sometimes like to pretend that math is irellevant and uncool, it really does reside at the very heart of what we do.  Many users would get much better systems from us if we spent a little time thinking about the mathematics of their domain problems.  They would *certainly* get better systems if we paid more attention to mathematical best practices and basic computer science principles as we architect, design, and build their applications. 
     
    Kudos, Eric, for your blogging bravery!
     

  • [Tools] VistaDB 2.1 small-footprint embedded SQL database

    VistaDB 2.1 database for .NET has been released
    This 2.1 update includes over 60 improvements, including new support for .NET 2.0 and Visual Studio .NET 2005. VistaDB is a small-footprint, embedded SQL database alternative to Jet/Access, MSDE and SQL Server Express 2005 that enables developers to build .NET 1.1 and .NET 2.0 applications. Features SQL-92 support, small 500KB embedded footprint, free 2-User VistaDB Server for remote TCP/IP data access, royalty free distribution for both embedded and server, Copy 'n Go! deployment, managed ADO.NET Provider, data management and data migration tools. Free trial is available for download.
    - Learn more about VistaDB
    - Repost this to your blog and receive a FREE copy of VistaDB 2.1!

  • [Tools] SlickRun

    Bayden Systems free  SlickRun is now a regular part of my Windows environment toolkit.  It is self-described as a "free floating command line utility for Windows."  I lets you define "magic words" that are shortcuts to commands you can define.  Some are pre-supplied.  One of SlickRun's  most notable characteristics is its sparse and non-intrusive UI.  It stays out of the way and does not grab too much valuable screen space.  Eric Lawrence has done a great job with SlickRun and, personally, I thank him for contributing this and other freeware applications to the community.

  • [Tools] FreeMind Version 0.8.0 Released!

    A new version of FreeMind has just been released.  Version 0.8.0 represents a major evolution and brings FreeMind to a high level of usefulness.  You really can do a lot of fun stuff with it and it will export mind maps to a variety of targets.  FreeMind is both Open-Source and free-as-in-beer.  As of Version 0.8.0, I can strongly recommend this fine tool.  By the way, I consider mind mapping software an essential element in the software architect's tool kit.  I am very happy that such a cool tool is now available for free to anyone who needs it.  Many thanks to the Authors and Contributors!

  • [Tools] Another SMART tool for UML

    SMART is described on its site as "a UML modeling tool based on UML2.0 ('UML Modeler') with a tool for test driven development of models."  The approach taken for SMART  is very different from most other UML tools.  It is designed for Test Driven Development of Models (TDDM) and is the result of a research project integrating AGILE and Model-based methodologies at Hayashi Laboratory in Kobe-University.  Not all diagrams are supported and, again, the approach is rather different.  It appears that source will be provided at some point, as there is a place-holder for it on the project's web page.  After a walk-through of some of the demos and tutorials, I think this tool bears a closer look.  The TDDM approach and the use of "executable models" mark SMART out as potentially quite useful.

  • [Tools] Some Graphics Tools

    Summary: This is a list of some great Open Source and free graphics editors and utilities that may be generally useful. Also, one interesting non-free, closed-source Microsoft Beta project is included because of its coolness factor.
     
    2D Graphics Editors:
    • "The GIMP":- The canonical attempt at a free Open Source graphics editor.  The user interface is a bit strange, as the GIMP came from the Linux community.  Seasoned Photoshop users may want to see the next link, though.
    • "GIMPshop": - "Basically it is just a hack of the current GIMP-sourcecode changing the menustructure, naming and key-bindings to be more like Photoshop."  See "Announcing GIMPShop": for details.
    • "Inkscape": - "Inkscape is an open source drawing tool with capabilities similar to Illustrator, Freehand, and CorelDraw that uses the W3C standard scalable vector graphics format (SVG). Some supported SVG features include basic shapes, paths, text, markers, clones, alpha blending, transforms, gradients, and grouping. In addition, Inkscape supports Creative Commons meta-data, node-editing, layers, complex path operations, text-on-path, and SVG XML editing. It also imports several formats like EPS, Postscript, JPEG, PNG, BMP, and TIFF and exports PNG as well as multiple vector-based formats."
    • "Paint.NET": is a .NET replacement for Windows Paint.  It adds considerable graphics and image editing capability and is both free and Open Source (MIT license).
    • "ImageMagick": is a free, Open Source (GPL) system for creating and editing bitmapped images.  It includes support for text, lines, polygons, ellipses and Bézier curves and has many advanced features.  "ImageMagick" supports over 90 graphics formats and can convert between them. You can download the Windows-ready binary here.
    • "Microsoft Acrylic Beta": - "Acrylic" is the codename for "an innovative illustration, painting and graphics tool that provides exciting creative capabilities for designers working in print, web, video, and interactive media."  It evolved from Creature House Expression 3, which Microsoft bought in 2003.  Acrylic lets you seamlessly blend vector paths and bitmapped images.  This is a powerful new tool, but do be aware that it is currently a Beta of something that will be part of Microsoft Expressions, a new licensed Microsoft product.
    3D Graphics Editors:
    • "Blender 3D": - Blender is an extremely capable free, and Open Source 3D graphics editor.  See the Gallery  for examples.
    • "Wings 3D": - Wings 3D is a powerful 3D subdivision modeler.  See the Site Gallery for some simple examples of what Wings 3D can do.
    • "Autodesk Gmax": - A free, but not Open Source, 3D modeling and animation software product based on the award-winning Autodesk® 3ds Max® software.  Registration required.  While Gmax is targeted towards game graphics tweakers, it is useful beyond that market.
     
    Image Viewers/Editors:
    • "IrfanView": - This is a "must have" graphics viewing and tweaking tool.  It's great for basic image processing, resizing, and format converting.  Free "as in beer" but not Open Source.  IrfanView also provides excellent screen capture functionality and has many other useful features.
    • "ForceVision": - An award-winning free, but not Open Source, image viewer and bitmap editor.
     
    Other Graphics Tools:
     

  • [Tools] IIS Admin

    This free tool, IIS Admin, overcomes a limitation where IIS only allows one configured default website at a time.  It looks like a potentially useful addition to any Web developer's kit.  See the explanation on the site for details. 

  • [General] HOWTO Restore Lost Shortcuts in your Windows XP "Send To" Context Menu

     
     
    Suddenly, one day, I noticed that none of my target shortcuts were showing up in my "Send To" context menu on XP Pro.  I use "Send To" *a lot* and it saves me quite a bit of time.  What to do?  I looked all over the Net and tried out recommendations from many threads with zero success.  Then I found Shortcuts in the "Send To" folder not appearing in the menu ? , an article on Ramesh's Windows XP Troubleshooting site, that included a quick and easy VB Script that immediately solved my problem.  I'm linking to it here so someone who reads this can find it more quickly than I did.

  • [Tools] UMLet 5 Free UML Tool

    If you are not already using it, go and get the wonderful absolutely must-have "fast and free" UML tool, UMLet.  If you are using it, you may want to know that Version 5 is out now. 
     
    UMLet is a tool for us agile, nimble folk!  No crufty code generation or 200 page pseudo-marketecture reports here -- just what may be the quickest way to sketch UML this side of a whiteboard! 
     

  • [Music Composition] SynthEdit and CSound

    Lately, I have been doing a lot of research and experimentation with VST plugins, particularly synthesizers.  In the near future, I will report many of the cool things I have found.  It is extremely cool to be able to create your very own synthesizers. 

    In the Steinberg World of VST, the most fun tool I have seen yet is SynthEdit. To get a handle on synthesis at a more detailed level, though, it looks like the universal training ground is CSound.  While built with a much older technology, CSound is great if you want to really understand how to go about creating sounds.

    I highly recommend playing with both.

  • [Tools] XmlSerializerPreCompiler and XmlPreCompiler

    Now in frequent use in my dev environment, I can highly recommend Matthew Nolton's XmlPreCompiler, a GUI front-end to Chris Sells' command-line tool, XmlSerializerPreCompiler.  These are very handy when you need to vaidate that some assembly can be serialized.  Unfortunately, it appears that I have to drop the XmlPreCompiler.exe and XmlPreCompiler.exe.config directly into the directory where the assemblies I am testing (and their dependencies) exist; I apparently cannot just drop XmlPreCompiler into my \Bin directory or somewhere on my path.  If I do that, XmlPreCompiler does not seem to find the assembly's dependencies.  The tool still makes my "must have" list.

  • [.NET C#] Embedding Resources Into Your Assembly Manifest

    While integrating some code, yesterday, I discovered how to embed resources "files" - such as JPG or GIF images, htm files and xsl files - into your assembly manifest.  You can then access them via reflection.  The first article to examine about this is John Gallardo's Embedding and Using Resources in C#.  After that, read up a bit more in Chris Sells' Microsoft .NET Framework Resource Basics

    When you are done, you will know about untyped manifest resources and typed resources (stored in resx files).  One advantage of the manifest approach is that you can bundle resources into an assembly that you can distribute to be used in some host application without having to introduce a bundle of files into the host's solution tree.  This is a very cool and useful feature.

  • [Tools] CollapseAll Macro for Visual Studio .NET

    Edwin Evans has created a very useful CollapseAll Macro for Visual Studio .NET.  For the umpteenth time, I had to go looking for it again so I'm quite certain that I want to put a link to it here for my use and yours.  You will find this simple tool extremely handy when you are trying to deal with very large solutions with lots of projects and sub-folders!

  • [General] Again

    Of Tobler.Tech(), someone kindly said, "But you're not a network tech!"  They're right; I'm not.  What do I do?  Well, software architecture.  Alfred Korzybski warned us against the semantic hazards of identification.  I am *not* Tobler.SoftwareArchitect.  Software architecture is something I do, not what I am.  So, let's try Tobler.SoftwareArchitecture().  Hopefully, this weblog name will stick for awhile.  Otherwise I may need to change it to "Nom de Jeur."


  • [Tools] Code<Template>.NET

    I am always interested in code generation tools and handy utilities to reduce the amount of time wasted repeating what has already been done.  I have found Eddie Velasquez's Code<Template>.NET a very handy VisualStudio,NETadd-in.  It just sits up there in the upper right-hand corner of my IDE.  I occasionally put templates into it.  I frequently push the magic button and get nicely formatted and debugged blocks of code that I can tweak a little instead of writing them from scratch.  Yes, there are other tools out there but this one is quite unobtrusive and helps me get the job done.  I strongly recommended having a look at it.  Of course, as always, YMMV.

  • [.NET General] SQL Server Express "incompatible components" failure

    When trying to install the CTP release of SQL Server Express, you may get an error message informing you that "Setup has detected incompatible components, ..." blah, blah, blah.  It will tell you to run the "build uninstall wizard," sqlbuw.exe, but you may not have that installed anywhere on your system.  In fact, it may be rather hard to find. This problem has been discussed on nikop's WebLog

    Having faced the same problem, the absence of sqlbuw.exe, I have found another solution that might help you get the necessary files.

    1. Go through the same install to the point where the error dialog box is on the screen. 
    2. Explore your hard drive and you should see a temporary directory where the SQL Server Express installation files are being cached.  It will be named with a bunch of hexidecimal numbers, probably right under the root on your C:\ drive.
    3. In that directory, find subdirectory "setup tools."
    4. In "setup tools," you should see a "build uninstall wizard" subdirectory.
    5. Copy the "build uninstall wizard" subdirectory to some temporary location on your system.
    6. Kill the install
    7. Run sqlbuw.exe from the command line in the temporary directory you copied.
    This worked fine for me.  YMMV.



  • [Laws] John Tobler's Law

    It is time to stake a claim to my own law and its first corollary.  Here they are:

        John Tobler's Law:
            "Wherever in this world you stand, you will soon be in someone's way."


        Corollary to John Tobler's Law:
            "Wherever in this world you want to go, someone will soon be in your way."

    I penned "John Tobler's Law" on December 21, 2004 and its corollary on April 19, 2005.  If you are aware that "John Tobler's Law" has previously been published under another name, please let me know as soon as possible.

    For many years I have been an admirer of laws and rules, such as those published in Paul Dickson's famous 1978 book, The Official Rules (also, see Paul's other "Official Rules" books).  Capt. Edward A. Murphy, for example, is frequently blamed unfairly for the operation of a principle he observed in effect at Edward's Air Force Base in 1949, while working as an engineer on Air Force Project MX981.  Capt. Murphy saw something essentially true and stated it in a way that, apparently, no one had before.  His project manager wrote it down and labeled it "Murphy's Law."  Actually, Murphy stated it somewhat differently than we usually see it now (see Murphy's Laws Origin for an excellent history).  Anyway, Capt. Murphy is neither guilty nor responsible for how Murphy's law has caused you difficulty; he just stated his observation and someone else restated it and named it in honor of him.  The law was in operation long before Capt. Murphy existed, as any historian will testify.

    I have long thought about these elegant statements of significant observed principle that heretofore went nameless.  And, yes, I have hoped to join the list of those who discovered one.  Now, I believe I have. 

    Why can't I just call it "Tobler's Law?"  Simply because "Tobler's Law" already exists, named for W. R. Tobler, in 1976, and also known as "Tobler's First Law of Geography."  That fascinating law states "Everything is related to everything else, but near things are more related than distant things."   My namesake well deserves to have this wonderful law named after him and he has done the extended Tobler family proud!

  • John Tobler's Law

    It is time to stake a claim to my own law and its first corollary.  Here they are:

        John Tobler's Law:
            "Wherever in this world you stand, you will soon be in someone's way."


        Corollary to John Tobler's Law:
            "Wherever in this world you want to go, someone will soon be in your way."

    I penned "John Tobler's Law" on December 21, 2004 and its corollary on April 19, 2005.  If you are aware that "John Tobler's Law" has previously been published under another name, please let me know as soon as possible.

    For many years I have been an admirer of laws and rules, such as those published in Paul Dickson's famous 1978 book, The Official Rules.  Capt. Edward A. Murphy, for example, is frequently blamed unfairly for the operation of a principle he observed in effect at Edward's Air Force Base in 1949, while working as an engineer on Air Force Project MX981.  Capt. Murphy saw something essentially true and stated it in a way that, apparently, no one had before.  His project manager wrote it down and labeled it "Murphy's Law."  Actually, Murphy stated it somewhat differently than we usually see it now (see Murphy's Laws Origin for an excellent history).  Anyway, Capt. Murphy is neither guilty nor responsible for how Murphy's law has caused you difficulty; he just stated his observation and someone else restated it and named it in honor of him.  The law was in operation long before Capt. Murphy existed, as any historian will testify.

    I have long thought about these elegant statements of significant observed principle that heretofore went nameless.  And, yes, I have hoped to join the list of those who discovered one.  Now, I believe I have. 

    Why can't I just call it "Tobler's Law?"  Simply because "Tobler's Law" already exists, named for W. R. Tobler, in 1976, and also known as "Tobler's First Law of Geography."  That fascinating law states "Everything is related to everything else, but near things are more related than distant things."   My namesake well deserves to have this wonderful law named after him and he has done the extended Tobler family proud!


  • [Music Composition] The Free OpenSource Psycle Music Creation Studio

    Here some facts about Psycle:

    - 32 Tracks Pattern Editor (this limitation will be removed in the future)
    - Stereo Sampler unit, that supports high quality
    stereo .wav files and .iff samples as well (more formats will eventually come)
    - 8 internal Plugins (Sampler & Effects)
    - more than 35 Native Plugins (Generators & Effects)
    - VST + VSTi Host (still limited but most plugins will work fine)
    - Internal .wav output
    - .fxb loading for VST's
    - Midi-In Support
    - Configurable Keyboard Layout
    - themes and skins support
    - much more...

  • [Music Composition] The Free Buzz SoftSynth

    According to Buzzmachine.com, "Buzz is the first ever 'easy to use' free modular software based synthesizer."  I have just started playing around with it and I must say that I am seriously impressed.  One caveat for Windows XP users, you may need to set Compatibility for "Windows NT 4.0 (Service Pack 5)" for Buzz.exe (or in your Buzz shortcut properties) in order for Buzz to work at all.  That may, in turn, cause some other problems.  Unfortunately, while free, Buzz is not OpenSource.


  • [General] Renamed again

    As long as I'm renaming, I have decided to follow the Principle of Concision and further simply this technical weblog's name.  As a side benefit, we can now better enjoy the alliteration (by the way, Onelook is my favorite dictionary resource).  I think that should permanently do it for name changes.  Done deal.

  • [General] CSharpener's Weblog Name Change

    I'm not for willy-nilly changing the names of things that have been around for awhile but it's time for me to label this technical weblog with my name.  Please adjust your Blogrolls, etc., accordingly.  The new title is:

    "John Tobler's Techno-Log"

    I am apparently a repeat victim of "alias theft."

    Even though I  am firmly convinced that I was the first to use "CSharpener" for anything, and a Google Search for 'CSharpener' currently lists my weblog at the very top, it appears that some company that doesn't know how to use Google, or any other search engine, for that matter, has decided to co-opt this alias that I have been using since the very early days of C# and .NET.  I should sue them, I suppose.  =))  The questionable company in question produces C-Sharpener for VB, a VisualStudio add-in that converts VB.NET to C#.  The product may be just fine but I do resent them stealing my little personal identifier. 

    My old alias, "GrepNinja," which was given to me by a very good friend *many* years ago, was also pilfered.  My previous technical weblog, GrepNinjaLog, has been on the NET for years and a Google Search for 'grepninja' still pulls me up first.  In spite of this, someone who shall remain nameless apparently had no moral or ethical problems whatsoever with appropriating my well-established alter-identity as his own when he put Grepninja.com out there for public consumption.

    Personally, I would never even consider consciously doing this to someone else.

    Perhaps this is a sign to me that the technogeek aliases that were once popular are no longer useful.

    So, from now on this weblog will simply bear my name.

    Incidentally, although I am a musician (multi-instrumentalist, composer, and songwriter), I am *not* the rock music journalist and author who wrote these books.

  • [.NET C#] A Public Domain, "Dogfoodable" C# Compiler!

    Mike Stall has just released Source for a C# compiler written in pure C# that can compile itself.  Mike states that this project is simply a "just a glorified reflection-emit demo."  Yeah, right!  But the rest of us are envious, anyway, Mike!   Mike's code provides a great starting point for any prospective language devs out there to play with.  This gift to the C# community well deserves CSharpener's "Contribution of the Month" award!


  • [Tools] Three Little Web Development Tools

    Thanks to Larkware News and The Daily Grind 572, I discovered three cool little web development tools:  ieHTTPHeaders, FullSource, and ToggleBorders.

    Regarding FullSource and ToggleBorders, it has been a long time since I have seen so much useful functionality in so little space (less than 4K for both)!

    An old friend just reminded me that the Web Developer Extensions for Firefox offer similar tools for that fine browser (my default browser, in fact, even though I spend a lot of time in MSIE because that's what we .NET'ers regularly target for our ASP.NET-based products).   If you develop for Firefox, you will definitely want this great extension toolbar.

  • [General] Allegiance - I never thought to see this day!

    I never thought to see the day when Microsoft would release the source code for a Microsoft-developed multi-player space combat game, but, here it is:  Allegiance!  The FreeAllegiance.org site is your gateway to Allegiance information and your point of entry to the game system   To get started as a player, your journey begins at the Allegiance Academy.  Batteries (Allegiance source code) included!  What is the (software development) world coming to?!

  • [Tools] A Free Fast PDF Reader

    Do you, like me, get weary of waiting for Adobe's PDF reader to do whatever it is that it feels that it needs to do at the moment before it lets you read your document?  Try the free Foxit PDF Reader, a lightweight and very fast alternative.  Sorry, Adobe, thanks for all of the free tech, and all that, but, over seven versions of evolution, your venerable Acrobat Reader has become *really* slow.  It used to be wonderful, back in the days when it was a simple PDF reader.  Foxit's contender weighs in at less than 1 MB and is lightning fast by comparison.  This bout was just won in round one by a KO.  New champ:  Foxit Software!

  • [Tools] XSD Inference Utility

    Microsoft has a useful and free XSD Infererence 1.0 utility somewhat hidden on GotDotNet (linked from the worthwhile XML Tools page).  The download contains a core library, a simple command line utility, and source code.  The XSD Infererence 1.0 page (in spite of missing some image links) contains a "workable" Web interface you can use to quickly test the idea by submitting your own small XML file.  The overview page gives some description of the idea and the utility and points to Generate XSD Schemas by Inference and Modeling biz docs in XML, two articles about this technique and tool.  The download link on the is bad, so use the link on the page (or above).  MSDN currently hosts a very solid tutorial article, Using the XSD Inference Utility, that gives you most of what you need to know to go beyond the simple Infer.exe command line utility and use the Microsoft.XSDInference.Infer class from your own code.

    Consider your results from using the XSD Infererence 1.0 utility as a starting point rather than an end product.  You should carefully review the inferred schema and intelligently edit it into something real.  What you get from XSD inference probably will not give you a really good schema.  That still takes some thought, however, and the tool certainly can save you some time.  It certainly is cheaper than buying an expensive commercial XML IDE just to autogenerate some XML Schemas!  If you ever worked for a company that bought XMLSpy just for this purpose, you know what I mean.  Be sure to read about the tool's caveats and limitations - particularly, don't miss the 1 MB size limitation part.  The download contains an excellent help file.

    I have found this tool useful and certainly recommend adding it to your .NET tool belt.

    Also, if you have used the Xsd.exe tool, you may also want to have a look at the XSD Object Code Generator tool on the XML Tools page.  While similar to Xsd.exe, the XSD Object Code Generator tool claims to create an "enhanced class structure" and to handle "many more common schema types."


  • [Languages] Another .NET language list

    I just found a new .NET language List at  Brian Ritchie's Dotnetpowered.com site and discovered a couple of .NET languages that are news to me.  In particular, it looks like the ADA community is now on the boat with A#, a port of ADA to .NET, and Microsoft Research is at it again with Comega, an extension of C# that provides "A control flow extension for asynchronous wide-area concurrency (formerly known as Polyphonic C#)" and "A data type extension for XML and table manipulation (formerly known as Xen and as X#)."  I have been wondering whether Xen/X# would eventually develop some traction.  A# has been developed by the Department of Computer Science at the United States Air Force Academy and is "freely distributed" under the GPL.

    Thanks to Brian for mentioning this Weblog as one of his "Other Sources!"  I'm only too happy to have contributed something useful.