The Johnson Blog

Ramblings of a geek with a few hobbies…

Category: Uncategorized

  • Perforce

    A while back I discussed needing to look into a new source control solution for Chef.  To recap, CVS had just gotten on my nerves for a few things: file deletion and moving; pretty crappy windows client support (gui); clunky (to me) branch management; and poor infrastructure on my network.  I just don’t feel comfortable using it on Chef going forward.

    Some of my requirements for the replacement system:  stable; reliable; simple backup/restores; good Windows GUI tools for management; inexpensive (read Free); intuitive; good documentation; preferrably a Windows server (to simplify my backups).   The two forerunners were a coworker’s recommended, SourceGear Vault, and Perforce.  Vault was built as a Visual Source Safe replacement and is free for a single user.  Perforce, I learned, is a very popular and robust scm server that is free for 2 users or 5 workstations.  After comparing the two for a while I settled on Perforce mostly because it met all of my requirements, and did so in a very elegant and polished fashion.  Documentation has been spot-on and things work as advertised.  I was able to import Chef, get it backed up and configure Visual Studio’s Source Control integration all in a span of a couple hours.  Pretty impressive. Thank you Perforce for the free license.

  • Registration Keys

    Over the weekend I finally spent some time to tackle the problem of registration keys.  Particularly, generating them.  The last piece of software I attempted this was WakeUp! Alarm Clock, with a very cheesy, homegrown routine for creating a key tied to the user’s name.  I never ran across any cracks/keygens for WakeUp! but I’m 99.999% sure that that’s because I charged a meager $5 for it.

    With Chef, however, I’m planning on a steeper price tag and don’t want to make the mistake of using an easily cracked scheme.  So, I turned my attention to the cryptographic services provided by .NET and now have a simple and, what should be, effective solution using public key cryptography.

    I haven’t integrated it into the application yet, but that shouldn’t take too long.  Once the code is in place, I’ll start strong naming the assemblies and even obfuscate them.  The obfuscation will prevent the casual snooper from using a tool such as Reflector to simply copy code and recompile it into a working replica of Chef.  The strong naming will then ensure that someone cannot release a cracked version of my assemblies with the registration limitations removed.  Pretty cool I think.

    Today I spent some time reviewing several payment processing options.  Currently, RegNow is the leading candidate.

  • Beta by Thanksgiving?

    A while back I tossed around the notion of having a beta of Chef available for testing by Thanksgiving.  So far I’m doing quite well with this goal.  Now that the setup situation has been resolved, I can work on a few other issues that have to be done before I add the few final features that will be in the 1.0 product.  It may not be too far-fetched to see the first beta available in the coming weeks, so if you’d like to give it a try I would be very appreciative.  Just shoot me an email or comment here.

  • Chef, Sql Express, and Installers

    Over the past week or so I have been reviewing the landscape of Installers that I can use to get Chef installed on people’s machines. The landscape has changed quite a bit since the last time I looked, with a lot more small install authoring tools available. Before, it was just InstallShield or Wise Installer – now there’s NSIS, InnoSetup (I know, not new..), AdvancedInstaller, and several other viable tools.

    And after carefully reviewing many of them, I’ve run into road blocks with my setup needs that can’t be fulfilled without spending upwords of $500. So I now have a setup using Visual Studio 2005’s deployment projects. It’s not quite what I wanted when I first started down the road but it’s not too bad either. In fact, I may actually end up liking this method a bit more. Read on for details.

    (more…)

  • Visual Studio Addin

    At work yesterday I created my first Visual Studio Addin.  Now that I know how to do it, I’m going to create one for something I’ve always wanted: launch windows explorer on a folder in the solution explorer.  There apparently used to be a powertoy for this feature, but that was for VS2003.

  • Icon update

    As I watched the Cardinals beat the Tigers tonight I sat and redid most of the toolbar icons for Chef. Every now and then it’s nice to take a break from coding, and for those times there is plenty of graphics and documentation work to be done. Here’s what the current toolbar looks like.

    New Toolbar Icons.png

    What do you think?

  • Taskbar Shuffle

    I’ve been using this great utility for a few months now, and it’s installed on every one of my computers now. If you’re using Windows and find yourself inundated with applications in your taskbar you should give it a shot. I started using it just to rearrange running applications but I just installed the latest version (2.0) and it has some cool grouping options that are going to come in handy.

    Oh, and it’s free. The author does take donations, however.

  • Mozilla Thunderbird Gripe

    Every time I install Thunderbird on a new machine I have a hard time finding the option to have my replies begin before the quoted text in an email.  I can never remember that it’s under Account Settings…Composition and Addressing and not under, oh.. Tools..Options with other composition-related options.  Really pisses me off, but hopefully by writing this out I’ll somehow magically remember in the future.

  • Programming Languages for Beginners

    This article appeared on Slashdot this morning, definitely worth a read. It’s something I have thought about on more than one occasion.

    In grade school, every once in a while my math class would have a computer lab day where we would sit and type in those commands found in the math books (and other exercises). That was on an Apple II, and I remember going home and asking my dad if there was a way to do the same on our PC. After a little poking around on the hard drive, I found qbasic. I also recall saving up $40 to buy… this book. I read every page and did almost every question/exercise at the end of each chapter. I have tossed many of my old programming books, but this one still sits on my shelf.

    I agree with the author that it’s a shame there aren’t accessible languages/tools for curious kids to explore with. I think Microsoft may be starting to realize how important this is, with their attempt with Visual Studio Express. But I think the kids still could benefit from something as simple as the old qbasic to ease them into the programming mindset.
    I cringe when I hear younger relatives and those their age not even considering a use for their computers other than MySpace (more on that in another post), IM, and games. I know that it’s not for everyone, and that that generation has grown up around computers like my generation has grown up around toasters. But it still bothers me that none seem to take any deeper interest in this stuff.

    I guess I’ll shut up now. Hopefully that made some sense.

  • C and .NET

    A coworker and I have been trudging through a lot of code recently. .NET code written by a C programmer. Folks, these things should never mix, because when they do, you end up with:

    byteArray = new Byte[hexString.Length >> 1];
    That’s right. Don’t divide by 2. Bit shift. And nevermind that there is a builtin .Net function that does what this line of code came from. And nevermind yet again that there’s a good helping of HEX shit like this in an ASP.NET web app.