I actively use the language, and have done so since before the Turn of the Century. I’ve built, and now maintain
- gulp build chains for various sites, including cantremember.com and this Shiny New Blog you’re reading
- a Node.js app which replaced my ancient Perl CGI scripts
- a MaxMind-backed geo-lookup HTTP service used by the Java stack powering my radio station’s Current Lister World Map
- a dirt-simple MongoDB-backed REST API for my radio station’s track library
Plus a couple of other one-off experiments that I’ve end-of-life’d.
And of course, there’s all of the increasingly legacy client-side code which you’ll find on my various sites. There’s plenty of it, and it’s on the slow train to Dustware.
I did my share of Rails work for previous employers,
and in the process I grew to love the Ruby language.
I use it for practically anything I need to do from the command-line that
bash won’t cover.
So, let’s see here. I’ve got
- multiple generations of Thor scripts which process MPEG tags to support my radio station’s MongoDB track library
- a collection of bots for Twitter – (which I still find amusing) – backed by a DSL for random sentence generation
- Rake and Capistrano tasks for provisioning web stacks via Chef and deploying them to AWS
- a slighty-AJAX-y Rails 2.x CRUD app for the Ambience for the Masses MySQL database – (which should still run today if I Bundler‘d it correctly)
- a home-rolled bit.ly client from back when the service launched
- and, of course the compulsory Rails Facebook App – (which I never launched)
This project would be the Chef-based provisioning toolkits for my three individual server instances. Well, technically one of them runs in DigitalOcaan and monitors the other two.
I hand-built my first AWS instances back in 2009 on top of crusty old Fedora 8s. I wrote Capistrano tasks to interact with AWS, then eventually automated their reconstruction from my detailed notes.
Funny story, that …
In Spring of 2017 – recent to this writing –
one of my Reserved Instances ran out, so I decided to save some money.
It looked like transitioning from an
m1.small instance to a
t2.small would be a cost reduction.
At the same time I decided to upgrade Ubuntu from Trusty 14.04 – which had been truly trustworthy – to Xenial 16.04.
This wasn’t so bad, once I had fought through some Vagrant issues and migrated my services from Upstart to Systemd.
But having gone with a
t2.small, I had to use Amazon’s VPC.
And the ancient amazon-ec2 gem – which was awesome in 2009 – didn’t support the VPC.
And I’d written all the code in Ruby 1.8.7 – which was awesome in 2009 – and that little gem couldn’t cross the 2.x barrier.
At the same time, I’ll probably need to upgrade from Capistrano v2 – which was awesome in 2009 – to v3 (or later). My health-check scripts even needed porting up to Ruby 2.3.x, thanks to SSL support divergence.
Sometimes your herd of yaks just up and demands to get shaved
Oh, yes. It’s also the static site generator for Ambience for the Masses. The stack uses JTA, JMX, JSTL Taglibs, RSS, XDoclet, Ant scripts – the whole ball of post-EJB TLA wax. My first commit on it – from back in CVS-land – was July 15th, 2005.
All of these solutions still work to this very day. And really, isn’t that just the beautiful thing about the JVM .
Nope. None of that yet.
Also, no Erlang, Scala, Go, Rust, Swift, Kotlin, OCaml, TCL, C# or Objective C. And while we’re on the subject, there’s no Fortran, Lisp, Logo, Ada, Smalltalk, COBOL or C++. Just start naming languages … it’s probably “nope” for all of them.
Hmm. Maybe there’s some archived Pascal code, atrophied Perl scripts, or plain old K&R-quality C that I’d rescued from the floppy disks of my youth.
Although of course, there’s always that One Exception;
Yeah. I have a mess of archived VB code.
Does it run?
Hell no !
I do have multiple functioning Windows XP VirtualBoxes on hand, but I’ve never installed the VB tooling on any of them. Frankly, I’m quite content to leave it that way.
Sadly, all things must pass … though some things less sadly than others.