Entrepreneurial Leadership and Management . . . and Other Stuff


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: ,
 June 5th, 2007  

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: , ,

 March 20th, 2007  
 Computers, Software  

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: ,

 March 2nd, 2007  

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.

 February 3rd, 2007  
 Computers, Software  

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: ,

 November 25th, 2006  
 Comments Off on Vista RTM – Driver Workarounds

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: ,

 November 13th, 2006  

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:

 November 12th, 2006  

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: ,

 September 28th, 2006  
 1 Comment

A Day with Vista RC1

I took the plunge yesterday and installed Vista RC1.  My goal was to see if I could switch to it as my primary OS.  I had played with previous beta releases, but gave up on them quickly as they became too difficult to test.  After hours of loading the latest release and the applications I use everyday and subseqently trying various combinations of activities, I concluded that while it has come far and is a very good step up from XP, it’s not ready for prime time yet.

First, installation was a snap.  Completely unattended and when I came back ALL the drivers for my hardware had been found and loaded.  Others may not have such luck, but it’s not like I’m running totally run of the mill equipment.  Vista even found audio and video driverrs for an old television tuner that I have in my machine.  Easy installation continued when I loaded up the latest beta of Office 2007, too.  A few clicks and I was up and running (OK, after some install time, of course).  Obviously, Office worked great with Vista.  Something I can’t say for all applications.

I next tried to install Directory Opus, my can’t-do-without file manager and Explorer replacement.  Pictures and icons might be good for some, but I’m so used to thinking about directory structures as trees, there’s nothin’ like a good textual file manager.  It wouldn’t install.  It seems others have gotten it to work, but not without some registry hacking that I’m not willing to do right now.

Next, I tried to copy saved files from a USB memory stick (Corsair Flash Voyager).  I backup all critical files on my system to a USB stick.  When I tried to restore them to the new Vista installation, Vista didn’t want to work with the encryption program needed to read the data from the device (the standrad Corsair encrytion program).  All kinds of installation problems.  Some of these were attributed to InstallShield, but after applying InstallShield’s patch, nada – still couldn’t get the encryption program running and, therefore, couldn’t read the data.

So now I didn’t have the data I needed and I was missing my favorite way to see that data.  All with workarounds, of course.  I copied the files from XP (on the same dual-boot machine in another partition) to my server then down to the new Vista partition – all requiring several re-boots of the machine they shared.  Using the built-in Explorer, I saw the files and could manipulate them.

Testing an even higher hurdle, I installed several audio and video editing programs next.  Happily, they all installed.  Several refused to run or gave spurious errors while trying to run.  I spent some time playing with compatibility modes, but that didn’t seem to change anything. Some worked.  Others didn’t.

My last test was with the installation of the latest release of the ACDsee Photo Manager, my favorite photo organizing software.  I had several hiccups during the installation, but it did install.  Once installed, though, it ran pretty slowly.  I’m not sure if that was because certain components didn’t load correctly, or there is still a ton of debug code in RC1 that’s slowing it down.  There were other functions, outside of ACDsee, that also seemed slow to me during my testing.

I’m afraid that after those strikes, I lost my ambition to keep throwing more applications at it.  I was impressed with the look and feel (blown away at points, actually) and the way a lot of the built-in functions of the OS worked seemlessly.  Graphically, it looks fantastic.  I think a lot of what is under the covers is more intuitive and readily accessible for those who are interested in playing or manipulating.  It’s easy to see options and functions taken direclty from UNIX and MAC OS – selectively chosen features that work nicely in the Windows context.  Even though my tests showed me that it’s not ready to leave Microsoft’s hands, my playing has turned up my interest in the release of Vista a notch.  I think there’s a lot to look forward to in the new OS.

tags: , ,

 September 20th, 2006  

My Windows Live Writer Wish List

I’ve been using Windows Live Writer to create blog posts for a few weeks now and I really like it.  It’s still in beta, though, and like any beta product, it has its bugs, quirks and incomplete features.  None of these prevent me from creating posts fairly easily and the beta product has never crashed or lost my data. 

The Help menu has an entry labeled “Send Feedback . . .”  When I click on it, I get taken to an MSN Spaces page where I have to sign in to leave feedback.  IMO, you just shouldn’t have to do this (the signing in part) in a public beta testing situation, but that’s neither here nor there because I can’t actually sign in – I get a message telling me that the service is temporarily unavailable.  So, I’ll dump my feedback right here.

First, let me say that Writer has three features that make it better than any other blogging tool that I have used.  [Disclaimer: I haven’t tried every tool out there and I’m sure that there are some with more features or are better in other ways.]

  1. Writer imports the style sheets from your target blog so that all your editing is in context and looks exactly like it will be published – fonts, colors, background, everything.
  2. The tool is fairly easy to extend with plugins and a community has already emerged creating a variety of them, a couple of which I’m using.
  3. Writer handles the insertion of stuff – links, pictures, maps, tags, etc – more elegantly than the other tools I’ve used.  This is hard to explain, because it doesn’t have a load of additional features (although map insertion is very cool), but it just always does the right thing.  Perhaps I’m biased here since I could never get my previous favorite, Blogjet, to FTP images to my server behind the scenes.

It’s also important to note that unlike doing a post in Word (versions prior to 2007), the HTML appears to be clean and compressed for the most part.

All that positive stuff said, here’s what I’d change . . .

  • No scroll bars?  When a post is longer than a displayed page, the only way to see the text above or below what is visible in the window is to use the keyboard arrows.  There are no displayed scroll bars nor does the wheel on the mouse work.  Weird.
  • Open and Save to a specific location.  Right now, Writer can open and Save documents to any directory as long as it’s named “My Weblog Posts” and it’s in the current user’s “My Documents” tree.  I should be able to specify whatever directory I want drafts or completed posts saved in and this should be assignable as a preference so I don’t need to always enter it.  To be clear, posts can already be opened in the current version from the Drafts directory, the directory of previously posted docs or from the the blog itself.
  • New/Open creates a new window, always.  IMO, Writer should use an MDI window or should ask me whether it should replace the current window when I do a New or Open.  One of the reasons I moved to Firefox was that IE opened a new window for every site clicked on, making window management too difficult.  Keep everything in one window, even if there’s only one document displayed at a time.
  • Remember where my last window was.  This is standard operating procedure for software these days.  Just open the window in the same place I closed it last time.  Writer, for some reason, wants to open a new window to the left and lower on the screen than where the previously closed window was.  If others like this, please give me an option to remember the location or not.
  • Spelling squiggles.  Writer has a spell checker that can be invoked automatically prior to posting or manually at any time.  It does not, however, do it dynamically like Word.  I know that the Writer team probably has a goal to keep this free software as lean as possible.  For me, size doesn’t matter too much and I’d be happy if the team loaded up Writer with a bunch of great Word-like features – especially on-the-fly spelling and grammar checking.

That’s all I can think of right now.  For the most part, I think it’s a very good beta release.  Writer, apparently works with most blog servers out there.  I am using it with Community Server and it works very well.  There are features I haven’t used and I haven’t been able to get Insert . . . Picture from Web . . . to work like I think it should, but that could be user error or my misinterpreting what it’s supposed to do – there’s no documentation.

I don’t work for Microsoft and I have no interest in promoting any products because they’re from Microsoft.  I think this is a good tool that’s worth a look, though.  It’ll be even better if the above bugs and feature requests are addressed.

tags: ,

 August 28th, 2006