Category Archive for Software

Software Management Guides from an Expert

Long time friend and cohort, Lorne Cooper, has two new posts up on the AccuRev blog that are must reads if you’re in the software development business.  Aside from his role as CEO of AccuRev (I am a board member and investor), which develops and sells software for software developers, Lorne has a long history of running software companies and projects.  In these posts, he shares some of the wisdom he has gained over the years.

Check ‘em out.

Popularity: 16% [?]

Consumed Writing Software

For a good part of the last couple of months, most of the time I’ve spent in front a computer has been used to explore the current world of software development.  Developing software is how I started my career, and is something which I always had a total blast doing - in an obsessive-compulsive, off-the-scale intense sorta way.  My wife always used to tease me that I had two personas - the software development one and the normal one.  Not that it was all that great, but she liked the latter one a lot more. 

It’s probably worth mentioning that while I enjoyed it and got to write a lot of code that people bought for real money, I was never an A-class developer.  Eventually, I discovered that managing development teams was more of a natural fit for me and I only looked back longingly once in a while.

Things have changed a lot since I last delved into development.  C, which used to be used for just about everything, has been replaced with newer, updated, object-oriented languages inside rich environments that actual make it easy to incrementally build software projects and target them at multiple operating environments and platforms.  As with most things, though, all of this power has created new levels of complexity.  To successfully build even moderately complex applications seemingly requires at least a passing knowledge of several languages and environments.  Because of this, it’s not the writing of code that takes all the time (including debugging), but it’s the ramping up on all the various pieces required to create the application.

For example, my recent journey included spending time using Ruby, Rails, C#, Visual Studio, PHP, Eclipse, HTML, Visual Basic, SQL, XML, CSS, etc.  Even with all the documentation and help available on the web, the confusing set of technologies each take some time to understand enough to be able to use them.

After investigating the list above and a few others, I decided to start writing a web application using Visual Studio, C# and of course, HTML and CSS.  My goal was to be able to put a home weather station on the Net.  This was a crappy choice for a first project since I also had to debug serial and TCP communication.  No guts no glory.

It was a fun ride.  Eventually, I had only a couple of hundred lines of code that implemented the project, although I probably wrote several thousand trying to figure things out.  Since I couldn’t find anything like it mentioned on the web, I published it here.  If your interested, there is a complete description of the project as well as the code at the link.

Even though it took an unreal amount of time, I had a complete blast.  My wife frequently said things during the project like, “stay away from your father, he’s programming,” worrying for the safety of her children.  Or, “uh, oh, he’s coding again - we’ve lost him.” 

I’m going to try to continue to do development at some level so I don’t have the same steep learning curve to climb again.  But for now, maybe, I can use my computer for some blogging as well.

Popularity: 17% [?]

Windows Live Writer Beta 2

I’ve been playing with the new beta of WLW for the last couple of days and I really like the way the product is coming along.  I thought the first beta, which I have used for quite some time now, was already the best blogging editor available.  The update solidifies that position even further, IMO.

Beta 2 fixes a raft of bugs in beta 1 and introduces some new ones, of course.  After all, it is beta software . . . There are a load of functional enhancements that really make the product a lot better.  These include:

  • New GUI - much nicer look and feel.  Not complicated, but more complete and aero-ish.  Still very easy to find your way around.
  • In-line spell checking (squiggles).  God forbid you have to wait until you’re done writing to do a batch spell check, but we’ve all become addicted to knowing right away.
  • Much improved detection of blog theme.  WLW retrieves the blog theme for local and offline WYSIWYG editing by creating a dummy post, retrieving it and then deleting it.  In beta 1, if you pinged servers that consumed your feed as you posted, those servers could grab the temporary post before WLW could delete it.  Thus, the large number of “Temporary post for style detection” posts all over the place.  Apparently, while this can still happen, it’ll be rare.
  • Easy in-line table editing - surprisingly complete.  Think Word and Excel.
  • Page authoring (in addition to posts) for Wordpress and Typepad.
  • Easy linking to previous posts in your blog and the ability to catalog favorite links for quick reference and insertion.
  • An API that lets the weblog providers (Wordpress, Typepad, etc.) open weblog features up to the editor.  Some of these have been exposed already by Wordpress and Typepad.

The upgrade from beta 1 was easy.  I just ran the installer over the existing software and had no problems.  You run beta software at your own risk, of course, but the beta 2 release looks pretty stable (see the bugs outlined in the link above) and offers some cool new functionality.  Worth checking out.

Technorati tags: ,

Popularity: 18% [?]

I Feel So . . . Violated

Last night, my little, obscure blog started getting attacked with spam.  24 hours later, it’s slowed a bit, but I’m still getting about 20 spam comments posted per hour.  Keep in mind that there are only about 200 posts on the blog to source that number of comments.  I now know where to buy all of the Viagra, Phentermine, Cialis and teenage porn that I need, as if the spam in my email spam folder wasn’t enough to guide me to the appropriate dealers.

It’s interesting that I never had a spam problem when I used Community Server as my blog engine.  Wordpress appears to attract spam like carbon dioxide attracts mosquitos.  I installed the Spam Karma Wordpress plugin last night and not a single spam message has made it through my new defenses.  That’s great, of course, but I’d rather not have to worry about the problem in the first place.  Oh well.  The spam appears like it comes from a variety of domains, but I suspect it’s all from one place.   

To add insult to injury, I was just looking at my server’s event log and noticed that someone’s been trying to hack in via FTP.  Now, just how stupid do they think I am.  I have no open anonymous FTP and the password for the site gets rotated constantly.  I have had about 5 hits on my server per second (yup, that’s stated correctly) for the last 1:40.  Needless to say, my event logs are filling up fast.  They appear to all be from the same IP address which resolves to mail.e-dcs.de.

Jeez, don’t you have bigger fish for your robots to fry?

Technorati tags: , ,

Popularity: 29% [?]

Made the Move To Wordpress

Well . . . almost.  I’m not completely over yet.  As it turns out, while moving into Wordpress isn’t a piece of cake, moving out of Community Server is really hard.  So far, it’s taken a combination of RSS and XML manipulation and transfer; fooling around with databases - both manually and programmatically; and a lot of copying/pasting and adjusting style manual work.  All of the posts from my previous blog should be over, but not all comments.  I will be able to get the comments over, but it’s taking a long time.  Trackbacks and pingbacks are going to get dumped.  That is, the record of the trackback/pingback in my post comments.  The actually links back to the blog from other blogs should continue to work just fine.

First, you probably got here by linking from my feed.  You might notice that the address of the blog has changed.  It used to be www.herman.org/blogs/2-speed.  It’s now www.2-speed.com.  You get to the same place either way through the magic of URL remapping/redirection.  It should be transparent and the redirects should be permanent, although I did notice a few glitches in testing.  So, you don’t have to change a thing.  Whether you read my feed or my blog, both old addresses and new ones should work the same.

Second, there are bound to be some problems.  Aside from the amount of massaging I needed to do to the data, my Wordpress installation is a bit unconventional.  I decided not to use Apache, which is pretty much the standard Wordpress web server.  I am using IIS running on my own Windows 2003 server.  There’s not a ton of documentation on how to do this, but there is some when you Google it.  In the end, getting that part running wasn’t particularly hard.  It was surprisingly easy to get the server to speak PHP (the hypertext processor required by Wordpress which is written in PHP) .

I am using MySQL for the Wordpress database, even though I have SQL Server already running on my server.  It just seemed too painful to make that change.  I did have some issues getting Wordpress to talk with its MySQL database.  I’m pretty sure that was user error, though.  I think I reinstalled MySQL about 5 times until everything worked OK.  Surprisingly, the graphical tools for poking into the MySQL database pale in comparison to the free stuff available for SQL Server.  This screwed me up a bit since I was so used to how to get things done in SQL Server.

Third and finally, I did most of my testing of the blog in Firefox.  I just looked at it in IE, and it isn’t formatting as nicely.  I’ve already been playing around with the PHP files that make up the theme so, perhaps, I messed this up.  It, obviously still needs some work and will be under construction for a bit longer.

Wordpress is impressive.  Community Server was great, but it’s way more than just a blog server.  Wordpress is amazingly compact and PHP ( this is my first experience with it) is pretty easy to understand even when you don’t know all the syntax.  The Wordpress community is huge, too, so there are an incredible number of plugins, widgets and themes.  The knowledge base on the web is also terrific - I’ve rarely had a problem that I couldn’t find at least some help with quickly.

If you find glitches, I’d appreciate your leaving me a note and pointing them out.  Of course, I’m gonna hack this site to bits while I get to know how this stuff works so some of the problems you find may be fleeting.

BTW - Special thanks to Daniel over at Daily Blog Tips.  Daniel has great advice on how to optimize any blog, but his advice is particularly great if you are a Wordpress user - even a new one.  Without his pointers to resources, this major task would have taken even longer.  Check out tips like the ones in this monthly roundup post.

Technorati tags: ,

Popularity: 21% [?]

Caught in a Geek’s Gravitational Field

I haven’t been posting much lately.  Once in a while, I find that I get interested in fooling with all the technology around me and, having done so, have to scramble to fix everything I’ve broken.  Of course, the more I scramble, the more stuff breaks, creating a technology focus gravitational field that nothing escapes from.  Blogging, being fairly high on Maslow’s Pyramid  is one of the first activities that gets punted when I’m in such a state.  When I demonstrate this level of obsessive-compulsiveness, even nourishment is dangerously close to being omitted from the schedule.

So, I’ve been in this black hole for about three weeks now.  I’ve taken on several projects and have used the wrong Bower Factor to calculate the length of time they’d take to complete.  Meaning that I’ve been off by at least single-digit multiples of time.  For what it’s worth, here’s what I’ve been up to . . .

  1. Server rebuild (while minimizing downtime)
    • Upgrade memory (1GB to 4GB) - Easy
    • Replace single processor with 2 more powerful processors - Harder than I expected (Intel no longer makes processors for the sockets on my motherboard)
    • Convert current 1TB RAID 5 array to 3TB array (4 750GB drives) - WAY harder than I expected (needed new RAID controller and data needed to make an intermediate stop between the two arrays)
  2. Build new screamingly fast, utlra-quiet desktop machine from scratch
    • New everything - soup-to-nuts - Not too bad, machine didn’t want to boot for a while
    • Move to Vista - Relatively painless, I’ve been using it for months
  3. Install new router based on after-market firmware (very cool)
    • Installed DD-WRT on cheapy Linksys Router (WRT54GL) - Easy, other than worrying that I’d turn my router into a brick by screwing something up in the middle of the firmware upgrade
    • Configuring the router to do what I wanted it to do - Moderately difficult since the doc stinks and there are a zillion options.  My router can jump thorough hoops now, though.
  4. Install and compare Microsoft Virtual Server and VMWare Server - Hard, neither did what I expected when I expected it.  Both were also way slower than I would have expected considering the hardware they were running on (see server upgrade, above)
  5. Install LAMP and Wordpress onto each virtual servers
    • Install openSUSE on both virtual machines - WAY harder than I expected.  I don’t know if it’s a SUSE thing, but there were interaction issues with both virtual servers.  And the Linux extensions from both companies refused to work with SUSE, although the documentation said that the operating system was supported.
    • AMP installation on both SUSE implementations was a nightmare - is there a Linux law against application GUIs?  phpMyAdmin, allegedly used to poke into MySQL databases is so arcane, it’s hard to believe that someone doesn’t sit down and just write a reasonable user interface.
    • Install Wordpress - Pretty easy.  It’s amazing the amount of functionality that is driven by a relatively small number of PHP modules.  Very elegant.
  6. Install PHP, MySQL and Wordpress under Windows (yes, because the Linux installs were killing me)
    • Attempt to get both Apache and IIS running on a Windows 2003 machine - Getting them to run side-by-side isn’t the hard problem, getting them to both run on port 80 with only one WAN address to get to them is.  I couldn’t give up IIS, so Apache got kicked out.
    • Once I found reasonable directions to install WIMP (Windows, IIS, MySQL, PHP) - Relatively easy.  It’s clear no one thought that a whack-job like me would attempt to use IIS instead of Apache so there aren’t a lot of instructions to do so.
    • Wordpress still isn’t running correctly and it’s taking me a long time to figure out why not - I think it’s a MySQL protection thing.  At least there’s a really nice GUI for MySQL on Windows . . .

Stuff from this geekfest still pending . . .

  1. The new RAID array on the server is still rebuilding after adding the fourth drive to it.  3Ware’s migration feature is so slow - it’s been running for 4 days now and is only 60% done.  Hope I don’t have a drive failure before then.
  2. Get Wordpress completely working on Windows . . . I fear that this is a hierarchical black hole; one within the one I’m already in.
  3. Migrate my blog from the current Community Server server to the new Wordpress server.  I basically have no idea how I’m going to do the mapping to make all the permalinks continue to work.  Luckily, so few people link to my blog that it probably doesn’t matter.
  4. More sound-deadening for the new desktop.  Not quite quiet enough yet.

Certainly, a lot of the time I’ve spent on this stuff so far has been wasted because I’m such a noob in several of the areas.  Learning is a blast, though, and the inefficiency of self-education doesn’t bother me too much.  Next time that I do this stuff (which will likely never happen), I’ll be much better at it.  ;-)

I’ll probably write about a few of these projects, or at least, aspects of them in the future.  If you’d like more detail on something, just send me a note.

Popularity: 22% [?]

Vista RTM - Driver Workarounds

As a beta tester of Vista, I’ve been hip-deep in the new operating system since it’s early releases.  It’s been an interesting experience, but I can’t say that it’s been fun.  Because of a crash of the RAID array on my previous XP installation, I decided to go with Vista as my one and only working environment on my primary desktop.  That left me no fallback in dealing with the huge number of application incompatibility issues and various states of OS instability.  Yeah, it was probably a stupid decision, but it seemed like the manly thing to do at the time.

Now that some of the versions have RTM’d for release with new systems, I’ve had the opportunity to play with a more stable and significantly faster version of the OS.  It remains visually beautiful with some really cool new features and loads of new levels of protection.  It’s gonna take the world a little while to catch up, though.  Because of new security, any application that expected to have kernel access or accessed the file system in anything but the cleanest way will have problems running under Vista.  This applies to a lot of applications, even some basic ones.

Device drivers are the biggest problem area.  Microsoft claims that there are something like 19,000 drivers on the installation disk.  But during my install of the RTM version, Vista couldn’t find drivers for my color printer nor either of my two scanners.  If you have similar problems, I found a workaround to this particular problem that might help you out.  It worked for two of my three failing devices.

Here’s the process:

  1. Download the latest version of the XP version of the driver for your hardware.  Usually available in the downloads section of your hardware vendor’s web site.
  2. Run the installer application from your disk using the “Run as Administrator” command.  This can be found by right-clicking the executable file for the installer and clicking on the command in the context menu (you will need administrative privileges on your user account to do this, I believe)
  3. This should install your driver, but may just unpack (uncompress) the files for your driver.  Watch the install process and remember where the files were installed.
  4. If the installer just uncompressed the files, go to the directory where they were unpacked to (often a subdirectory located in the root directory of the C: drive) and run the actual installer with “Run as Administrator”
  5. After you have done all this, turn on your hardware.  Vista should tell you that it’s trying to install the driver and, hopefully, will be successful.  Hint: it may take more time than you expect - in minutes, that is.
  6. If that fails, find the directory where the driver was installed and right click on the .inf file for your device.  Click on “install” in the context menu.

If one of those methods works, give your hardware a try.  If not, you’re may be out of luck.  Steps 1 & 2 installed one of my missing drivers and steps 1-4 got my other device to work.

I’m sure that this is not how Microsoft wants you to get these drivers up and running, but it seems to work.  If you’re stuck and your device manufacturer seems to be waiting for the final release of Vista to deliver new drivers, you may want to give it a try.

No warranties or guarantees expressed, written or implied . . .

 

Technorati tags: ,

Popularity: 14% [?]

TrueCrypt File Encryption

There are always certain files on my computer, especially my laptop, that I want hidden from everyone but myself; just in case . . . While Windows has a built-in encryption solution, it’s anything but transparent or convenient.  What I really want is a solution that does it’s job without me being overly conscious that it’s there and to be as secure as possible at the same time.  I don’t want to have to encrypt each new file that is created or enter my password 20 times during each session.

The other day, I ran across TrueCrypt, a free, open-source encryption tool that does everything I want.  TrueCrypt lets you specify a volume on your computer that will always be encrypted on the fly with no user intervention other than having to specify your password to “mount” the volume when you boot up or use it.  The volume doesn’t have to be an actual partition.  It can be a file (think of it as a virtual directory structure inside the file) anywhere on your PC.  I set one up on my PC and on a USB memory stick.  Piece of cake, although it took me a few passes to find the ideal setup for what I wanted.

TrueCrypt supports AES-256, Blowfish (448-bit key), CAST5, Serpent, Triple DES, and Twofish encryption algorithms.  While I neither have the brains nor the skills to try to hack my own encrypted volumes to see if the encryption is truly effective, testimonials I’ve read make me feel comfortable that I’m getting the security I believe I am.  After all, It’s not like I’m keeping national security secrets or anything.

TrueCrypt works fine under Vista, which I can’t say for many other programs screwing with the file system.  If you’re looking for a convenient way to protect your files from snooping eyes, this solution looks pretty good.

 

Technorati tags: ,

Popularity: 15% [?]

Failure Upgrading to Community Server 2.1

Well, I spent the weekend trying to upgrade my server to the latest and greatest release of Community Server 2.1.  If you tried reaching my site over the weekend and it appeared to have been abducted by aliens, that’s why.  After making the dozens of changes required to the virtual directory and the database, though, I couldn’t get the server to serve pages just like it did under version 2.0.  A simple point upgrade just shouldn’t be that difficult, of course.  It’s especially frustrating since the site, itself, came up fine after about 20 minutes of work.  At that point, it wasn’t accessible at www.2-speed.com or www.herman.org/blogs/2-speed - it was only reachable by specifying a URL much further into the site’s directory structure.  I never could get it resolved.

Over the past couple of weeks, I’ve been experiencing similar problems in many facets of my life - nothing seems to be coming together.  I hope it passes . . .

 

Technorati tags:

Popularity: 15% [?]

Vista ReadyBoost is Kewl

This week I made the decision to move my production machine entirely over to Vista.  “Isn’t it still pre-production?” You might ask, or perhaps, “are you a moron?”  On the former, you’d be wholly correct.  On the latter, I hope the jury’s still out, but you’re probably right on that one too.  I’d like to say that I’m a real man and that’s how real men do things - no holds barred, pedal-to-the-metal sorta stuff.  In reality, though, the decision was made for me when the mirrored RAID array that is my C: drive trashed its master boot record in some unknown unrecoverable fashion.  All data was saved, but I could never get the RAID array to boot again.  RIP.  Why install XP again?  I’m only going to be removing it when Vista ships anyway . . .

As I mentioned before, Vista is visually terrific.  I love the visual effects, the gadgets on the desktop, the ease of moving between windows and a real, working desktop standby function.  I can’t do without the search function (think Google Desktop Search, but better) now that I’ve used it and configurability is much improved as well.  Like Microsoft has done at each release of its operating systems, it has included even more utility programs and made the ones already there, like its picture viewer, far better than ever before.

It’s far from a rosy situation right now, though.  Almost half the programs I use don’t run on Vista.  For the most part, the problem seems pretty straightforward.  It looks like the security layer between applications and the file systems is screwing with file I/O from some applications.  I can’t get them to write files even when I run in XP compatibility mode with administrative privileges.  BTW, I’m running RC1 build 5728.  The latest and greatest.

One very cool feature that I just started using is ReadyBoost.  ReadyBoost allows you to use some USB flash devices (I’m using a 4GB SD card inserted in a multi-card, USB 2.0 reader) as a write-through cache for Vista’s page file.  Everything is still written to disk, but seeks are first done on the cache version.  Even though I already have 2GB of memory on my machine, I can feel the difference.  The more windows I have open and the more applications I’m running, the bigger the relative speedup I experience.

Basically, a random 4KB read from flash is about 10X faster than the same read from a hard disk.  Hard drives are way faster for big linear data, but seeks are slower.  By using the flash memory for the seek, big speedups can be had as long as the hit rate is high.  In any event, they shouldn’t be any slower.

Not all USB flash devices are compatible.  Vista does a speed check when you insert a new device and tells you if it’ll work or not.  A list of devices known to be compatible is here.

More information can be found in this Q&A by Matt Ayers, Program manager for this sorta thing at Microsoft - http://blogs.msdn.com/tomarcher/archive/2006/06/02/615199.aspx

Very cool.  Very simple.  Pretty damned inexpensive.  Certainly not a reason to upgrade by itself, but a great addition to what’s looking like a very nice OS upgrade.

Technorati: ,

Popularity: 17% [?]