Hamilton C Shell 2009 – The Missing Shell for Windows

Rather than get right down to the details with Hamilton C Shell 2009, I’d like to take a moment to give a bit of software history. The reason I feel this is imperative is that most people buying software today that didn’t use computers until just 3-5 years ago don’t know about the quality of software that used to exist.  When you bought software, you got a big thick manual, a solidly built product that was meticulously optimized for speed and reliability, and a product that didn’t need an upgrade every few days or weeks via some sort of automatic upgrade mechanism because it wasn’t well tested and well delivered.

If you choose to buy Hamilton C Shell 2009, you’ll get such a wonderful product.  That’s rare these days.  I purchase quite a bit of software in my line of work, both for my own use, my companies use, and my client’s use.  The quality of the non-open souce software that I’ve been obtaining has gone downhill considerably.  Gone are the manuals and the optimizations.  To keep the product running, I have to update it sometimes on a weekly basis.

When I first downloaded the demo of Hamilton C Shell 2009, I was wondering how I was going to really put its paces at 10 commands per session.  I’d start digging in then have to restart it.  However the author, Nicole Hamilton, was very helpful and kind and provided me a full copy for evaluation.  Once I installed the full version, I was able to put it though quite a bit.

I should note first that I’m using Windows 7, x64 edition.  I’m not sure if the product has been tested on this platform, but it works on all Windows platforms from modern editions back to Windows 95.  You’d really be hard pressed to find any product for Windows that has such amazing backwards compatibility.

I do a lot of Ruby / Rails development, PHP work, and some occasional C programming as well, so I’m almost always in the shell when I’m in Windows.  When doing Ruby work, I’ve found it easier to just use a Linux machine that I have setup for all of my programming tasks, mainly because of bash, my favorite shell, but also because many of the UNIX tools are there too.

That’s the interesting part about Hamilton C Shell though.  It’s not as a UNIX emulator like Cygwin. The author states that she didn’t want to emulate UNIX, rather design a shell specifically for Windows.  I’ll have to admit, at first, I wasn’t sure if this was a good thing or not, but my opinion quickly changed once I started using the product.  I found myself using UNIX commands to navigate my Windows file system.  Never before had I been able to do that natively.  Sure, Cygwin let me do this on Windows, but not in Windows, natively working with the files and directories in the way that Windows deals with them, not trying to make them bend to the UNIX way.

Being the UNIX/Linux fan  that I am, I really had trouble at first adopting to this paradigm.  Soon though, I had sort of a software epiphany (and yes, you’re truly a computer geek if you have software epiphanies).  I realized that all of my searching for the perfect way to balance the UNIX and Windows world was over, and it was finally time to quit making Windows do things it shouldn’t be doing.

It’s really rare for a piece of software to dramatically change my outlook on a platform or on how I do my daily tasks.  This was the command prompt that I’d always been missing in Windows.  Before I was trying to take bash, the proverbial square peg, and trying to make it fit into the roundish hole that is Windows.  Little did I know the answer to most of my command prompt problems was there all along – since 1988!

The only learning curve I suffered with the product was in that I’m used to the GNU convention on some command line switches.  For example, I’m used to clobbering together command line arguments without separate minus signs (i.e. ls -la instead of ls -l -a), but this isn’t a right/wrong way, it’s just different.  The performance of the native utilities like tar is wonderful, and while I didn’t perform a proper  full benchmark, it seems faster than the Cygwin emulation of tar.

One other item I noticed is that when firing up Mongrel on a Rails project, the CTRL+C didn’t work correctly to terminate it.  I had to use the Task Manager in Windows to terminate it.  No big deal really, I suspect it’s something simple to fix, and likely not Hamilton C Shell’s fault, or even Mongrel’s, but an artifact of the Windows Console.  I’ll dig a bit deeper and figure out what’s going on there, but its a minor problem, and one that’s very easy to work around.

I was able to do all of my usual tasks while working with my files and with Ruby without any other problems, and got them done much more efficiently.  I will have to dig into the manual a bit more to find out about customizing the prompt more to my taste, but I’ll get to this eventually.

This software has even got me to thinking about writing and/or porting some clones of commands that don’t exist in Windows yet, like rsync and top. Yes, I know you can use rsync with Cygwin, but it’s not the same.  It’s not native to Windows.  Before the author told me about her product, I would have said this was fine.  Now I see it’s not, and it has honestly excited me about using Windows again.  The author also told me that she’s working on adding full UNICODE and better UTF-8 support.

As for the price of Hamilton C Shell 2009, at first I thought it was a bit steep at $350 US.  Then I realized that you really do get what you pay for here, and that this product is worth every penny of that price.

Even as I write this, I’m trying to think of the last time a software product changed a paradigm for me.  It’s happened many times for sure, but not lately, and not anything on Windows in recent times.  This review has honestly left me grateful to the author and to her product for breathing fresh air into the Windows console for me again.

Windows command line users and developers, your days of UNIX envy are over.  You now (have had for nearly 20 years, I just didn’t realize it) have a command line to be proud of!

Posted in Productivity, Ruby, Software Reviews, Windows | 4 Comments

TxtFromBin – Copy ASCII Text from Binary Files

I’ve released a small little utility for Windows today called TxtFromBin.

TxtFromBin allows you to grab all of the printable, readable ASCII characters from any binary file (be it an EXE, ISO, Tarball, etc.) and save them to a text file for later reading or processing.  TxtFromBin is ideal for data forensics, debugging, etc.

Download TxtFromBin Version 1.0.0

It’s free to use, just remember it comes with no warranty of any kind.  Any up-to-date Windows XP or Vista machine should be able to run it without issue, but if not, you will need to download the Microsoft .NET Framework 3.5.

Posted in Misc | Leave a comment

The Unsustainable Pattern of Phenomenal Growth

This post is actually a bit late for me.  It’s something I’ve been talking about with friends, family, and colleagues for quite some time now but just haven’t gotten around to putting it into words.  Well, I will procrastinate no longer.

I’m sure we have all come to the conclusion now that phenomenal growth, year after year, is unsustainable.  It is simply unfeasible for a business, country, or anything else to continue to have double digit growth year after year and not have some sort of meltdown.  While the problems that plague our economy are quite complex, one of the basic weak points in its failure is that plans were made only for continued expansion, and no one ever thought to plan for contraction.

It wasn’t just modest expansion either – no, we collectively as an economy planned for big expansion. The future was so bright that we had to wear those proverbial shades just to manage to walk out the door in the morning.  People would always need our services, and markets would always be expanding.  The thought that things could ever go backwards completely seemed to slip our collective minds.

Then we awoke from this dream-like state.  We now realize that things can’t go up forever, and like Newton discovered almost 400 years ago, what comes up, must come down.

Companies, like ours, that lived within its means, didn’t take on substantial debt, and stuck to single digit year after year expansion just might have the fortitude to weather this storm.  Companies and individuals that lived beyond their means, bought more than they could ever hope to afford, are in trouble.  For years I told colleagues that slow growth was best and patient, simple business principals with low-cost but sensible means of self-sustainable would be the way to go.  A lot of people agreed with me, but in general that business model was thrown out the window several decades ago.

Now I don’t want any of this to sound like an “I told you so”, because its not.  But if any of what I’m saying seems to come off as that, then it’s probably repressed frustration from years of hearing about how a company like ours would never become big time because we weren’t outsourcing and taking on a huge debt load or investors to grow 30-50% year over year.  Both directly and indirectly, I was told, “You’re too small”.  Well, so we were.  Big deal!

Now being small and agile seems to be an advantage.  We’re not exposed to complex debt instruments or nervous investors.  Sure, some of our clients are, and we’ll invariably suffer in this depression recession, but I don’t think we’ll be in such dire straits that many firms twice or three times our size will be.

That said, there’s no way to know what the future holds.  We are all in for a rough ride for sure, but one thing is for certain:  The pattern of unsustainable growth is simply not an option anymore.  If you want to grow as a business or even an individual, you have to work to make it happen, prove why it should happen, and be able to back that up with the need for it to happen.  The economics of my grandparents and their parents are back, and this is a good thing.

Posted in Business, Economy | Leave a comment

Install MySQL Gem on CentOS 5

There’s a lot of conflicting information out there on how to install the MySQL gem on CentOS 5, but it’s very easy to do.  On a clean CentOS 5 install, as root, run:

yum install mysql-devel gcc make
gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

That’s pretty much it.  Compile should work fine.

Posted in Linux, MySQL, Ruby | 1 Comment

Review of The Dark Third by Pure Reason Revolution

I want to start this brief review of this amazing album by first thanking my good friend Jesse Gelina for introducing me not only to this album but to this band.  While he sends me many samples of songs and links I should check out of albums he thinks I’ll like, I honestly don’t have the time more often than I like to fully explore what he points me towards.  With this album, I’m really glad I took the time.

The Dark Third by Pure Reason Revolution, released in April of 2006, is a progressive rock album (a genre that I can’t always call my favorite) that has really struck a chord in me.  The UK band members draw inspiration from bands such as Pink Floyd, Led Zeppelin, Porcupine Tree, Nirvana, Smashing Pumpkins and the Super Furry Animals.  Most of these bands I’m fond of, especially the Smashing Pumpkins.  The inspiration of these artists certainly does play into their work, but their sometimes electronic, progressive sound seems to create a whole new sub-genre of the field at times.

Throughout the album, consistent rhythms and chord structures can be found.  Vocal and lead melodies seem very flowing and yet metered as well, which is something that isn’t often done well.  Pure Reason Revolution pulls this unique paradox off well.

The album can almost be termed a concept album, since many of the tracks seem to tell a story and make sense with one another, but less so on their own.  That isn’t to say though that there aren’t stand out songs that could certainly work as singles (particularly the second track, Goshen’s Remains).  Most of the tracks fade into each other, creating an uninterrupted listening experience.

Track by Track Thoughts

  • Aeropause – An excellent introduction to the album, leading wonderfully into Goshen’s Remains
  • Goshen’s Remains – My favorite song on the album. A unique song that fits nicely into the entire album or on its own. Very interesting melody and syncopation.
  • Apprentice of the Universe – The electronic intro becomes a very interesting counterpoint in this sweeping song. Probably my second favorite on the album.
  • The Bright Ambassadors of Morning – A long and spacial song that I didn’t care for at first, but grew on me to become one of my more favorite tracks on the album. I think this track in many ways defies explanation in a conventional way, and I believe that’s what they were going for.
  • Nimos & Tambos – For some reason I can’t quite put my finger on, this song represents to me a weak (and possibly the only weak) point in the album. It works, but isn’t as unique or interesting as the other tracks. That said, on a great album, a weak song is still entirely listenable.
  • Voices in Winter / In the Realms of the Divine – To me, this song seems to be heavily influenced by The Smashing Pumpkins Mellon Collie and the Infinite Sadness, yet holds true to its structure and rhythm patterns laid down in the previous tracks. A very nice track and would also do well on its own as a single.
  • Bullitts Dominae – This track goes through a weak introduction, but quickly picks up into very interesting and dynamic movement towards the middle. The chorus from the middle on of vocals is very pleasing and rescues the track from mediocrity to one of my more favorites.
  • Arrival / The Intention Craft – This song picks up the pace a bit and is a bit edgier than its other companions. It is fast pace and works well. A very good climax to the album.
  • He Tried to Show Them / Magic Ambassadors Return – Serves as a nice conclusion track that brings together previously expressed thoughts and elements well. A very nice guitar part about 3 minutes in really stands out helps to bring this album to a close nicely.

From a production standpoint, the music is mixed for stereo very well.  Overall sound quality is good and doesn’t seem to be aimed towards the least common denominator player as so many modern productions are.  This is something that would sound good both on ultra-modern stereos, MP3 players, and a 70′s analog sound system.

In conclusion, I’d have to give this album a 9 out of 10 rating.  I can’t give it 10 stars because there are parts to me that could use a bit more polish and substance, but most of these are minor complaints that are highly subjective.

Posted in Music Reviews | Leave a comment

Bailout is Codependency in Action

I don't normally post about topics in the political arena, as most of my thoughts expressed here tend to revolve around technology. I just cannot resist though the urge to comment on this abhorrent plan proposed to bail them us out of the economic trouble they we are in.

I'm no economist, but I really don't think it takes one to see that the state of our economy isn't really brought about by some outside force that we didn't really have control over. It has been brought about by, as George Bush called it, a drunken Wall Street. Do we all share in this blame to some extent? I suppose, but your average working citizen doesn't have much ability as a single individual to influence the behavior of large corporations and investors, so any guilt that would be applicable may only be by default association.

Investors got greedy. CEO's were driven, above everything else, to raise their stock price. Not for the benefit of the company or it's services, but strictly for its investors. This is what is supposed to happen, right? Investors should be the primary beneficiaries of a company's success. If the drive is so large for that success and the pressure so high that it encourages executives to make bad long-term financial decisions though, can we really say that's in the best interest of the investor, or the economy at large?

And then we have the bailout. A fund of over $700,000,000,000.00 dollars (looks bigger when you use the 0's, doesn't it) to purchase up bad debts and toxic mortgages that should have never been made, and fund banks that made bad decisions that are now on the brink of bankruptcy. In plain terms, this is lunacy. It's no different than the gambler who tells his family that they just screwed out of their life savings that with just a bit more money, they can win it all back. If ever we needed an example of codependency, this is it.

How can we go along with this bailout plan and still fit within the spirit of the constitution and the free-enterprise market system? We can't. There's no way to justify it. Giving food and aid to people hit by natural disasters is one thing, bailing out people who made bad business decisions is entirely another.

If the wound inflicted by one of the most negative aspects of the human condition, greed, is not allowed to bleed a little, the infection will simply be contained, only to spread again.
<!–break–>

Posted in Politics | Leave a comment

The 80/20 Rule on Credit Card Security

Our web hosting company, OCS Solutions, like any other hosting company, has to deal with one of the highest rate of fraud orders in business. For some reason, web hosts are targeted more often than most other types of vendors.

Because of this, we often require new customers from overseas to fax or securely send us a copy of the front and back of their credit card. While most of them are used to this policy (we are not the only ones that do this, many online merchants now require this), some are not, and it can cause quite an uproar.

Ironically, asking for a photocopy of the front and back of a credit card is no different than handing a credit card to your waiter or at a convenience store. You're proving you have the card in your physical possession. But, when conducting online commerce, most people are actually more cautious than they would be in conducting real world transactions, where the opportunities for fraudsters and criminals are actually greater. It's a classic manifestation of the 80/20 rule, putting 80 percent of effort into securing something that is likely 20 percent of the threat.

I'm not saying that there aren't security risks in online transactions, because there are. Consider this though – most people wouldn't order from a site that didn't have SSL (i.e. https://), but give their credit card number freely over a cordless phone that can easily be listened to with over the counter supplies and little to no expertise. Ironically, it's considerably harder to “listen in” on a non-secure web connection than it is to tap a phone.

So when I see someone have a problem with sending in this sort of verification, I do understand where the fear comes from, but am puzzled as to society's consistent misapplication of security. One customer called their bank and the representative said that it 'sounded suspicious' and recommended them not to do it. They said that this policy made it sound like we had a “credit card copying facility” behind the scenes. That same customer would not have been able to order from many online retailers now that require this proof.

Unfortunately, these myths make honest retailers trying to avoid getting screwed by credit card fraud and protect their own security look like xenophobic paranoids.

Posted in Business | Leave a comment

Does Breaking News Excite You?

If breaking news excites you, you may not be alone. It apparently brings an indescribable emotion to this woman:

There’s not many things that would bring this expression to my face. Most of them won’t involve breaking news though, I can promise you.

I ran into this graphic by ending up on a landing page promoting the “Alot” service.

Posted in Humor | Leave a comment

MySQL Is Easier to Administer than PostgreSQL

I wanted to title this article PostgreSQL sucks, but that wouldn't have been fair to PostgreSQL has it really doesn't suck, exactly. It is a very well featured database, and was the first open source database to have many advanced features. That said, MySQL from the start has been easier to administer, and generally easier to use as well.

Before I dive in further, I should warn that while I've used both MySQL and PostgreSQL for years and have extensive experience with both, I have dealt with MySQL considerably more. This is due mostly to the fact that most projects I work on tend to use MySQL as their database over PostgreSQL.

After years of using them both, I have had much fewer problems out of MySQL. Backups and restores, even the complex binary ones done with LVM have gone mostly without issues. I can't say the same with PostgreSQL. I've had MySQL problems for sure, but I seem to run into PostgreSQL problems with far more frequency over things that really shouldn't have been problems in the first place.

One could make the argument that since I spend more time with MySQL, I know it better and thus know how to avoid more problems than I do with PostgreSQL. I'll buy into that as well, at least in part. But I see far to many developers pulling their hair out on public forums and newsgroups over how to fix a problem in PostgreSQL that simply doesn't seem to be a problem on MySQL. That isn't to say that people don't have problems with MySQL as well, they do. But considering that more people use MySQL, you would expect more problems, but you don't really see that. In fact, it's the reverse.

Could a simpler path to administration and programming be why more people use MySQL? Probably so. Back when it lacked features that PostgreSQL had, it still was more popular. Its ease of use had to have been at least a significant factor in many decisions to use it.

Posted in MySQL | Leave a comment

Amazon S3 Outage

Starting at roughly 11 AM Central Daylight Time, Amazon's S3 service went down and has been down ever since, even at the time of this writing. This 6+ hour outage is the latest in a string of outages that have plagued Amazon's Web Services since their initial offering.

The outage has affected Blingee, which we provide services for, in addition to other popular online services like Twitter, Second Life, Basecamp, and more.

This outage has seriously weakened our confidence in Amazon's Web Services. A provider of this size should not have these kinds of outages. I will be eagerly awaiting a detailed explanation. Our customers spend quite a bit of money with Amazon, and if I'm going to recommend something, I want it to be a good service. Unfortunately, right now, I can't say that Amazon's Web Services are.

Posted in Business | Leave a comment