September 20, 2006
It occurred to me of late that software product editions often have peculiar (though relatively standardized) designations designed to make it easy to tell which edition is more feature rich (and pricey).
For example, given the below choices, which product is more expensive and feature rich?
- Whack-A-Mole Lite
- Whack-A-Mole Pro
- Whack-A-Mole Enterprise
Yep. The Lite edition is probably free. The Pro edition is probably priced for the average mole whacker (many of which may go around whacking moles with a hammer and dirty coveralls, which in my book is not professional in the least), and the Enterprise edition is priced for the discerning executive who simply must have as much Enterprise as possible in his mole whacking endeavors. Enterprise, you see, is an important quality to have at your disposal when whacking moles.
This is a naming convention that’s pretty easy to understand, and was probably started back in the cave-dweller days of software by Microsoft. But Microsoft has decided to violate this easy to understand tradition with their next release of Windows. With five different editions.
In the infamous Words of Shakespeare, “What ho broke yon Window?” Indeed. At least one of the editions has some Enterprise.
Leave a Comment » |
General |
Permalink
Posted by Bob Black
September 20, 2006
I’m working, as time permits, on the installer for Code Toaster. The first few releases will probably be built using Visual Studio installer projects, but when I get the time I’d like to move on to WiX, which is quite robust and has quite a high coolness factor. But no GUI front-end – you have to build your installer by hand-editing the XML, which I actually prefer over a fancy GUI that hides what’s happening behind the scenes.
That’s why a lot of people didn’t like the first few versions of Frontpage, because it changed your code, and created all those weird _vti_ folders.
But anyway, I’m here to relate unto you, dear reader, some peculiarities about VS.Net 2005’s Installer Project Thingies (or whatever they’re called). Firstly, when I add an assembly to a folder that will be eventually created on the user’s desktop, why does VS insist on automatically seeking out and adding said assemblies dependencies? Which you then can’t delete! I want total control over where and when my files get added, and stuff like that right there!
Secondly, it doth appear that if you first add an assembly and its dependencies to any particular target folder, once you’ve done that you can then move the assemblies and/or the dependencies around the target folders so as to bypass (sort of) VS whining about missing assembly dependencies. But they have to be added to the same folder before you can start moving things around, otherwise VS will think your assembly’s dependencies aren’t in the project, and add duplicates!
Which is why I want to start using WiX. VS.Net’s little installer project thingy is great fun and all for little web application deployment projects and such like, but for large apps with crazy installation requirements? I ain’t so sure.
But it will have to do for now. As soon as I can get Code Toaster properly obfuscated and wrapped up nice and tight in an installer, I’ll put it out for y’all to play with. 100% Free.
Later.
Leave a Comment » |
.NET, Code Toaster, General |
Permalink
Posted by Bob Black
September 14, 2006
In my MSDN Wiki post, I made reference to a little problem I’m having with obfuscating Code Toaster because VS.Net is adding references to multiple runtimes. Behold – a screenshot, so y’all don’t think I’ve gone completely off me rocker.
Look – look I tell ye! There’s duplicate references to several System assemblies, one for .Net 2.0 and another for 1.0! What in de wurl is goin’ on?

Well, after diving deep down into the bowels of the situation, I discovered that the ActiPro assemblies (which, as you can see, I’m using) were built using .Net 1.0, and thus reference the .Net 1.0 runtime.
And so because my assembly (CodeToaster.exe) references assemblies created for .Net 1.0 (the ActiPro assemblies), the C# compiler actually includes references for both .Net 1.0 and 2.0 assemblies in my compiled exe! Oh wow, that is just like totally rad man! Like, out of this world with difficult to debug goodness!
So, how does this solve your little obfuscation problem, you ask? Well, I’m not sure. I think I’ll stare comatose-like at the screen, coffee and Gobstoppers at hand, until a solution suddenly pops without warning into my conscious. I’ll let you know what brilliant contrivance I contrive.
And by the way, I did, in fact, purchase the ActiPro license out of my own pocket for use in this project, to increase the coolness factor (and so I wouldn’t have to build an editor from scratch). No, I’m not mooching off of my employer or anything. To be honest, my employer’s not too keen on buying third-party components anyway, but that’s a story for another day.
Later.
Leave a Comment » |
.NET, Code Toaster, General |
Permalink
Posted by Bob Black
September 14, 2006
More word on why GMail just totally rocks, following my earlier post. The law firm at which I am employed uses some new fancy Exchange archiving software that removes the actual email content from the Exchange Server. Actually, I’m not in infrastructure and really had no involvement in the project so I’m not sure how it works – I just know that since the little archiver thingy was installed MSN Desktop Search couldn’t find emails anymore – emails that were still present in my mail folders.
Google, however, retains its own copy of each mail message, so it doesn’t matter if the original message is still present in Exchange or not. If it ever passed through your Inbox (or Outbox) Google Desktop Search will find it.
Dude! What did we do before we had Desktop Search to cover our nether regions when the boss asked for that email we sent two weeks ago, or we forgot if we replied to the Director of Whatever’s email when a reply is expected by Friday?
Thank you GMail, for saving us all.
Leave a Comment » |
General |
Permalink
Posted by Bob Black
September 14, 2006
In my search for the perfect (and free/cheap) obfuscator, I came across this list of totally bodacious .Net tools Microsoft has kindly listed on the MSDN site: http://msdn.microsoft.com/vcsharp/programming/tools/
One thing that caught my attention is the abundance of C# IDEs. I’ve played around with SharpDevelop before, but now there’s another one that’s appeared out of thin air called Antichinus.
To which I say, Why? Why all these IDEs? IDEs are not simple to make, and in my humble opinion you would have to be pretty creative to come up with something better than VS.Net 2005. Sure, it’s good to have lots of choices, but I’m forced to feel a little pain on behalf of these obviously skilled developers, who spent all that time making these pretty cool (but redundant) IDEs, only to have everyone… not really care.
Actually, I used to briefly care about SharpDevelop (way back a long time ago), enough to download it and give it a whirl, but it stalled during installation while attempting to create something called an Intellisense database (why this had to be done at install time, I’ll never know – does the .Net runtime change that often?). So I just uninstalled the sucker and never looked back. Maybe it’s better now! Maybe it’s a really cool IDE with… everything VS.Net Express has. For free.
Dude – I sound like the old curmudgeon himself. But it made for a good blog, now, didn’t it?
Leave a Comment » |
General |
Permalink
Posted by Bob Black
September 11, 2006
I stopped using MSN Desktop Search today because it stopped working. For almost a month I’ve had to resort to reg’lar ol’ Outlook search (which, as we all know, is plain pathetic) because MSN DS just wasn’t findin’ my stuff. I don’t know why, and I don’t really care.
But after 30 minutes with Google DS, I’m rolling again. I could care less about all the little widgets/gadgets that are part of Google DS – I just want to be able to find that email my boss sent me last week. And Google is performing nicely.
Nice try MSoft. In the words of my little nephew, “Too late! You had your chance!”
1 Comment |
General |
Permalink
Posted by Bob Black
September 11, 2006
Dan Appleman explains in his latest post why the new MSDN Wiki is pretty much the coolest thing since online documentation.
I agree. This totally rocks. Check it out at: http://msdnwiki.microsoft.com/
Mr. Appleman’s open-source obfuscator also looks interesting – I’m investigating using it to obfuscate Code Toaster (see previous post(s) if you’re wondering what Code Toaster is). I’m trying to find a handy-dandy obfuscator for .Net that’s either open-source/free or relatively inexpensive. Most commercial obfuscators are just way too expensive for my budget (which right now is close to $0), however I don’t feel comfortable releasing the product of my blood sweat and tears completely unobfuscated.
The Dotfuscator Community Edition included with VS.Net 2005 is throwing some strange errors during obfuscation, which so far I haven’t been able to resolve. It’s saying it can’t find an assortment of .Net 1.0 system assemblies (like System.Windows.Forms.dll and the like). The trouble is, CodeToaster was developed using .Net 2.0, and there are no references in the project to any .Net 1.0 or 1.1 assemblies.
Dude!
The CodeToaster.exe executable, when reflected using Lutz Roeder’s Reflector, indeed contains references to both .Net 1.0 (note: 1.0, not 1.1) and 2.0 system assemblies (System.Windows.Forms, mscorlib, etc). Is VS.Net ‘05 automatically including references to multiple runtimes? I had no idea that was even possible.
I’ll keep poking at it with a sharp stick, and let everyone know what happens. In the meantime, if you know of any totally gnarly (and cheap) obfuscators, post a comment or shoot me an email.
rmblack at gmail dot com
Later.
1 Comment |
.NET, Code Toaster |
Permalink
Posted by Bob Black
September 8, 2006
I’ve been working on a little piece of software for a while now that I’m fondly calling Code Toaster. It’s a code generator, you see, and the idea is that it spits code out like a real toaster spits out toast.
Many coders have mixed feelings about code generation, but after coding the same old data access code 100 million times, I began to think quite fondly of any method that would automate some of the tedium. I had used CodeSmith before, but it’s biggest pitfall (in my opinion) is its like lack of Intellisense support. I wasn’t too fond of flipping back and forth between the documentation and the CodeSmith IDE to try to figure out how to create a new property directive, or get database schema information. I suppose I’ve gotten a tad lazy with Intellisense’s instance gratification and all, but in my humble opinion, getting a code generation template up and running shouldn’t require much more thought than it would to just write the code the old fashioned way.
So I rolled my own tool, built from the ground up not just to generate code (and lots of it), but to make it easy to generate code (specifically, to write the templates that generate code). Full intellisense support (somewhere between the quality of VS.Net 2003 and 2005), and a handy-dandy IDE with common IDE features, like snippets and whathaveyou. And coolest of all…
You can compile templates into a .Net assembly!
No way! Yes way! This means you can easily reuse Code Toaster templates in other .Net projects, which would make it easier to, oh, say… make software-generated emails look snazzy. Or, convert from one file format to another, and just all kinds of stuff. I’m excited.
“Gimme it!”, you say. Well, I ain’t done yet. Gimme a few more days, or, more likely, a couple of weeks, and I’ll put da candy in yer hand. Or should I say, the toast.
Leave a Comment » |
Code Toaster, General |
Permalink
Posted by Bob Black
September 7, 2006
I’ve had a gmail address for some time now, but just recently started really using it. Today I came across this little tidbit that showcases the brilyunce of the folks over at Google. This is the feature I always wanted, but never new I did!
Mega-kudos Google.
Leave a Comment » |
Neat Stuff |
Permalink
Posted by Bob Black
September 1, 2006
I’ve been writing one of those private blog thingies for family and friends only for quite some time now, and decided to maybe start a blog about technology and what have you like that thar. We’ll see how it goes anyway. If, as a matter of curiosity, you’d like to know more about who I is, click on over to the About tab and get yer eyes full.
This blog will be about software related stuff, personal projects, findings, and interesting discoveries that may save another poor soul a few hours of trouble with some wild ‘n’ cwazy pwogwamming pwobwem (can I trademark that phase?). Generally speaking, how to make your code nice ‘n’ toasty, which would theoretically be a good thing, right? Right.
As Scoble says, Onward!
Leave a Comment » |
General |
Permalink
Posted by Bob Black