Wednesday, December 1, 2010

The end of an iEra

About four years ago, my company did something stupid: they opened up access to company-provided smartphones to everyone. A number of folks noticed this and it wasn't long before it seemed like every single person in IT was sporting a shiny, new Palm Treo. Unfortunately, I only found out about the open availability AFTER the company had closed the option. Apparently, it wasn't very long before someone in Finance noticed how much data plans were for the now thousands of Treos running around.

Grand.

So, I missed my opportunity and ended up being the only person in my group to not have a smartphone. To add insult to injury, when it came time to renew my phone, they gave me this crappy LG that was a PHONE...nothing else. I didn't even have the crappy 8-bit like games that used to keep me occupied in the men's room anymore. Sigh...but, I persevered and kept pushing my boss to get me one.

After two years of this, I eventually came to the realization that all of the promises of "oh, yeah, I'll look into that" were as empty as my phone. So, I decided it was time for me to get my own. My wife & I had recently had a child, so it was a bit of a stretch, but when we compared the cost of our one cell phone and digital home service, there really wasn't that much of a difference between that and getting two iPhone 3Gs (lower-case "s" indicating plural, not upper case "S" indicating 3GS). So, we killed both of those and transferred their numbers to our new hotness.

Oh, my iPhone that first year or so. How I loved it! I added app after app, played with it constantly...I even got a gig writing reviews for iPhoneTunes.net (still one of the best iPhone sites out there, IMHO). A couple of months after I got it, I started to read about some of the cool features available if you jailbroke your device and I mustered enough courage to give it a try. In those "early days" there wasn't much out there, but what was there was cool: xGPS, the FIRST turn-by-turn navigation app for the iPhone. Did I mention it was free? iRealSMS, a paid addition that really made SMS usable on the iPhone and CategoriesSB which added the much-needed, but stupidly overlooked by Apple for four versions of the OS, folders for applications!

With these modifications in place, I was happy with my iPhone. Until it crashed. Never really figured out what caused it to start acting loopy, but it was so bad I had to restore. What a chore, especially since I was jailbroken and wanted to get back to where I was before it went South. A day and a half later I was working, but also feeling fairly disenchanted with my little tech love. The functionality I added wasn't all that much. In fact, it was functionality that should've been included with the damn phone to begin with, but Apple's only good at the initial paradigm shift. Once they've captured the market's attention, they never follow through with anything better. Don't believe me? What's the big differences between a first-gen iPhone and an iPhone 4? Slightly bigger screen? Faster with more memory? More storage?

Snooze. Wake me when you get to the upgrades that are comparable to upgrading to an iPhone 3G from an LG LX3000. What's worse, Apple's made it clear since day one that THEY get to decide what apps can go on YOUR phone...not you. At first, it's not a big deal. It's a phone, you want it to work. But, you also want to be able to install whatever you want, even if it will make it stop working. That's MY choice, not Apple's. Yeah, I get it, it's their "brand" at stake. So sick of hearing how concerned everyone is about their brand. As far as I'm concerned, the worst thing happening to Apple's brand is Apple.

But, I'm going to avoid the rant for now...where was I? Oh, yes, I was going to discuss iTunes....

Which I can't do without ranting. Since the instant my credit card was charged for those phones, iTunes was always one of the top reasons I knew I would move away from the platform. Granted, in the early days I never thought I would, but I had a feeling it would involve iTunes in some way. Lousy, slow, ugly pig. Ugh, more ranting. Must change subject.

As the end of my contract with AT&T was looming near*, I started looking at the Android offerings. Now, I'm not a huge Google fan, either. Yeah, I use gMail, primarily because I've run my own mail server and it was a PITA that I was glad to get rid of. That being said, the lineup of Android phones was pretty impressive. Not only that, they were generally innovative, too! It was the Samsung Halo with its built-in pico projector that really captured my imagination. But, in the end, it was an application that was the final nail in the coffin for the iPhone: Tasker. I'm a tech guy who loves to automate stuff, and from the first time I read about it on Lifehacker I knew I would have an Android.

Fast forward to last Friday, Black Friday. My wife and I had fully decided that we were going to move to new phones and away from the iPhone forever. Radio Shack had a great online offering of the HTC EVO 4G for half price and I jumped on it. They arrived yesterday and activated this morning. We did get to play around with them before they activated using the Wifi and I gotta tell you: it was love at first sight all over again. Fast, beautiful, easy to use...I can already see how much better than an iPhone this thing really is!

But, I'm going to reserve a full review until after I've had a chance to use it, test out the coverage of Sprint (as we head out of town to visit the folks for the holidays, it'll get a great torture test) and really put it through its paces. My feeling for it might just be the newness, I'll admit that. However, after just a few hours, I already feel at home with it and enjoy some of the subtle differences so much better.


* Let me just say this about AT&T: I honestly never had a problem with them. I can count on two fingers the number of times I had calls drop on me, and both times I was standing in my old cube at the office which was a reception black hole. Their pricing was a bit high, but I could deal with it.

Tuesday, November 30, 2010

The decimation of language

This video is awesome, but not just in the creativity (you really have to stick around until the very end to see it's full awesomeness). The phenomenal Steven Fry's point about the intractable disdain some people have for failures in grammar and expression is provoking at a fundamental level for me.



I admit it, I still bristle when I see a sign saying "thank's for your support". And, seeing pictures like this still causes me to guffaw a bit:



But, as someone who studied Linguistics during his brief college career, I also must acknowledge that language is about communication. Grammar, spelling and punctuation rules are nothing more than arbitrary conventions created for the sole purpose of greasing society's linguistic needs. They don't do a whole lot to convey meaning in and of themselves. As Steven points out, we all still know what "10 items or less" means, even if it's proper to say "10 items or fewer". Frankly, how many of us even knew that "10 items or less" was wrong before watching this? I confess I didn't.

Funny as it is, "We out of meet" still conveys the message intended. It did so with a humorous flourish, I won't dismiss, but meaning was still conveyed. Only those who choose to be scrungent, when faced with a grammatically incorrect but symantically valid sentence, will fail to understand...

No, I'm wrong. They'll FEIGN ignorance while fully grasping the concepts presented, but bemoan loudly to everyone trying to ignore their rants that they just don't understand "how someone could be lacking in the becoming acquainted with?"

To me, even worse are those who still can't grok that meanings change. Anyone who has read ANY Shakespeare knows that between Bill's time and ours our language has evolved slightly. They manufacture* extensive artificial* complaints about how awful* the latest generation's understanding is. If they're feeling brave* enough, they'll tell* you to your face how you're an example of our declining civilization. Yet, I have to wonder how they would read THIS paragraph, seeing as I chose a few common words whose meaning has become quite different from its original intent. I wonder, too, if they'd read the title of this article to mean "the utter destruction of language"?**

Perhaps they're just nice***?

There are currently two major wars in effect, not to mention a few minor border skirmishes and disputes and a couple of completely insane dictators who seem to think they own the world. The economy's collapsed, and while it shows some signs of rebound the fact is it's only going to continue to get a lot worse overall since people keep voting in the same dimwits who created the messes in the first place. The Earth's climate's being forced to change in new and terrible ways. A billion people in the world don't have access to clean drinkable water or a consistent source of food...and yet there's still a large percentage of people who will read this paragraph and complain about my excessive use of ellipses and/or commas.

Seriously, it's time to worry about more important things, don't you think?


* Manufacture: to make by hand. You thus can't "manufacture" an argument. Artificial: full of skill. Awful: wonderful, amazing. You know...full of awe. Brave: cowardly. No, really. Google it. Tell: to count. Now you know why they're called "tellers" at the bank.

** Decimation: a form of military discipline used by officers in the Roman army for punishment. After conquering a country or town then would line up all of the people who lived there. They would then kill every tenth person; man, woman or child. Just enough to make a point without, ahem, decimating the resources of the Roman Empire.

*** Nice: In Latin it meant "not to know". A nice person was an ignorant one. Hmmm..

**** Bonus: scrungent's my word. I made it up. :)

Wednesday, November 24, 2010

Thankful? Me? Duh!

Of course I'm thankful! How could I not be? First, I've got the greatest wife in the world. She really is magnificent. She's brilliant, she's talented, she's funny and she loves me (for whatever reason). That's not to mention that she's also drop dead gorgeous and a fantastic mom to our beautiful, intelligent and hilarious daughter..

Whom I'm also thankful for! Holy crap, I had always thought being a parent would be a lot of hard work and sleepless nights. Hmmm, maybe that's more true for my wife. After all, I was mostly in it for the spankings. But, Maeby's really made me realize how awesome it is to be a parent. Granted, I think we were really lucky and got a really good kid. I'm sure my mother would have plenty to say about the ease of raising one like me. I'm thankful her curse of "I hope you have a kid who's just like you" appears to have not taken hold. In general, that kid of mine is pretty laid back and usually listens when you tell her to do something. Usually.

I'm also grateful for my family, as annoying and wacky as they can be. They certainly add a whole lot of "color", and I'm not just talking about my father's side...

And then there's my friends, some of whom we're spending the day with tomorrow gobbling down a gobbler. But, there's some new and truly wonderful friends I've met as a result of TEDxRochester...which I'm also thankful for, but only when it's over. :)

All in all, I consider myself a very lucky guy.

Monday, November 22, 2010

Dropbox: spreadin' the love, gettin' the space

Today a couple of odd posts showed up on my Facebook and Twitter pages about my favorite online service, Dropbox. (Note: the previous link is a referral link to Dropbox. More on this in a bit.) This is because Dropbox recently put up a page where folks could get up to an extra 768M of space by doing some simple social media connection stuff.

I've talked about Dropbox before, but it still never ceases to amaze me how many times I find new uses for it. Let's look at a few of the ones I've been using:

- There's a folder called "Torrents" in my Dropbox. I've also installed Dropbox on the server I have at my house running uTorrent. uTorrent monitors this folder and when new torrents show up there, it starts downloading them. So, I just download a torrent into that folder from any machine I'm logged in to and I'm good to go!

- If I need to get a file into my new EC2-hosted Ubuntu box, no worries. I've got the text-based install on it and I just drop them into there. Also, if I need to do major edits on config files, I can get them to my desktop quickly.

- Thanks to some of Dropbox' partners, I essentially have an extra 4G on my iPhone now. More and more mobile apps are using Dropbox for back end storage because it's easily accessed and ubiquitous. I've held off until now, but I'm finally upgrading to iOS 4 simply to give Picbox a try. But for now...

- When I have a quiet moment at the office, I plug my iPhone into my laptop and dump all current photos from the phone into my Dropbox folder so they're ready to be organized when I get home.

- Still in the works: I've got Portable Firefox out there. I've put in a master password, so my passwords are encrypted and thus protected from prying eyes @ Dropbox. I'm in the process of setting up the instance of Firefox on my laptop to use the profile directory that's in the Dropbox folder so I have one universal Firefox profile across machines.

- When I first started my new job, I had some coding work that they needed me to do for my old team. Unfortunately, I didn't get Visual Studio with my new machine and didn't have rights to install it. So, I used an online service to take control of my home machine's desktop and did my changes there. Once the code was compiled, I plopped the executable into my Dropbox and was able to get it back to my team.

- My wife doesn't have a lot of data she keeps on her machine. In fact, almost all of it fits within her 2G of space, so I have her keep all of her files in the Dropbox folder on her machine. Tada! All of her files are backed up as soon as they're created!

- Dropbox also keeps old versions of files. There's been a couple of times where I saved a file and overwrote an original I didn't want to change. No biggie, find the file on the website and click "Previous versions" to get the older instance back. Lifesaver!

I'm sure you can find plenty of other uses yourself or at least find dozens of solutions other folks have come up with. I've looked at some of the other services that are out there, but I just keep coming back to Dropbox for its ease of use and ubiquity. Here's a quick start guide to get you up and running with tons of space as quickly as possible:

1. Hit Dropbox' site. That link is a referral which will give both you and I an extra 250M of space in our accounts once you've installed the software.

2. Download and install a client on your machine. At this point, we each get our extra space. Total space: 2.25G

3. Revisit your Dropbox home page. At the top of the page, you'll see a set of tabs (Getting Started, Files, Events, Sharing, Help). That Getting Started tab is where we're headed next. Go through the steps listed and you'll get an extra 250M of space! You don't have to do all of them, I'd start with 1, 2, 3, & 5. I think those were all I needed to do to get the extra 250M. Total space: 2.5G.

4. Head to the new Free page and do each of the steps listed. Once you're done, you'll get up to an extra 768M of space for free. If you're not happy about exposing everything to Dropbox on Facebook or Twitter, simply deactivate the application's access once you're done. The free space will stay. Total space: 3.328G.

5. Get referrals. At that link, you'll find your referral link that you can give out to friends and family for more space. You can get up to an extra 10G of space this way. Please be aware of some etiquette. There are a number of sites like Lifehacker that will ban you if you post your referral link in their comments. A lot of people take advantage of their Dropbox-based posts to try and drum up some space, and the comments become useless because of it.

Also, the URLs posted to your Facebook and Twitter pages after you do step 4? All of them are referral links to your account. So, once you've done that step, you've also put out a couple of requests for referrals. How cool is that?

Thursday, November 18, 2010

The new "paper or plastic"

A friend recently posted the question on his Facebook page "Nook or Kindle?". Some folks offered up useful advice, but just as many felt the need to chime in with "REAL BOOKS!!" Sigh...

I often wonder about people who get upset when new technologies supplant the old. Do they still have rotary phones? Hell, do they still have a land line? When Verizon stops automatic delivery of phone books, will they call to get one? It's been a decade since I've even had one of those in my house. When I come home and find them on the porch, they go right into the recycling bin. I have an iPhone, why do I need a phone book? To quote the song, I've got the whole world in my hand. These strike me as the same kind of people who would've dwelt on the "loss" to society when cars replaced horse-drawn carriages.

As someone who is a habitual pack rat, even I see the value in not holding on to the past. My comic books are stored in digital format, along with my documents, ebooks, pictures and movies. As pointed out in an earlier article, if there's a fire in my house, I won't lose a single picture of my daughter. Can the Luddites say the same?

Look, I get it. There's a certain romanticism about books. Back when I had time in my days, I used to read as well. I love to read, but the reality is, actual books are inconvenient. Electronic books and publishing is the future, so you might as well start dealing with it. The last couple of books I've purchased were both ebooks. I read them on my iPhone when I had a moment or two. There are times I feel like putting the effort into finding pirated digital copies of every book I have and ditching the paperware versions. It would certainly make my wife happy, and certainly make moving a whole lot easier when the time comes.

And since some will wonder, my response to my friend's question was: iPad. Before the "fanboi" accusations start flying in, yes, I have an iPhone. But, I won't be going back to an iOS device for my next phone, I'm going Android. The Apple platform's just gotten far too restrictive and I have no interest in dealing with it anymore. However, an iPad wouldn't be my primary device so I could live with some level of restriction there. For my friend, for just a little more than the cost of either dedicated device, he could get an iPad, install both the free Nook and Kindle apps as well as a host of other apps and get a much better experience. I've seen the iPad's book readers, they're fantastic. The iBook app is brilliant, you really feel like you're turning a page with it. Personally, I'm waiting for the second gen of the iPad (With a camera, please, Steve! Seriously, what were you thinking?), but there's no reason the first gen can' t be a primary ereader.

Nope, I know I'm a technophile and I know others are not. But, when someone's making a decision between two new technologies, they're obviously not interested in hearing that they're destroying civilization and should stick with the old stuff. Because, really, that's what these people were saying. These kids these days and their new-fangled ebooks...

Tuesday, November 16, 2010

Top o' the EC2 ya!

So, things have been a little quiet here lately. Most of the blame can be placed on TEDxRochester, of course. But, now that it's over, life is slowly starting to return to normal and I'm returning back to my projects. As you saw from my last post, I still continue playing around with Ubuntu, but aside from just my laptop getting my attention I've added a new Ubuntu project.

A few weeks ago, I learned that Amazon was opening up a free tier to their Amazon Web Services. Now, I haven't wrapped my whole head around the platform yet, but it really is an amazing suite of products and offerings the big "A" has put out there. In a nutshell, AWS is a virtual hosting service, commonly referred to as a cloud service.

AWS is made up of a couple of offerings, but the one I'm currently spending the most time on is the Amazon Elastic Compute Cloud (Amazon EC2), their virtual machine hosting service. I've actually got a virtual machine running Ubuntu Server out on their hardware. In fact, you're visiting it right now! Amazon, and other members of the AWS community, provide base images that can then be built on to establish your own presence on the web. As an example, this machine is built from AMI-00877069. This is a Canonical-provided Amazon machine image (AMI) of the Maverick Meerkat (10.10) version of Ubuntu Server. Simply select your AMI, launch your instance and you've got a machine in the cloud!

From there I added Apache, MySQL, Wordpress, etc. These machines are not accessible from the Internet immediately, though. They exist on a private 10.x.x.x subnet, but Amazon provides what they call their "Flexible IPs" which are nothing more than externally accessible IPs that you can then map to your "box". What's even nicer is Amazon provides you with a dead-simple firewall setup to decide how accessible your systems are. You can create groups to segment ("Web" group is accessible on port 80, but incoming mail servers on 25 only) and open up only what you need.

Since I'd already registered the domain, all I needed to do was modify the DNS at my registrar and I was on the web! In fact, if you want to visit my wife's site and get yourself a zombie portrait done, that too is hosted on this virtual box.

As mentioned, I haven't really dug too deeply into the full offering set, but as I find need I check it out. Most of the services are geared to the web developer/web applications crowd. For example, the SimpleDB service allows you to host your database at Amazon without having to worry about the details of administering a database server. Put your data in, pull it out as needed. Next on my list to work with is S3, their cloud storage solution. There's apparently a bug in their console that makes it inaccessible to browsers using the newest Flash, and so I haven't fiddled much with it.

So, aside from giving me yet another toy to play with, what's the market for Amazon Web Services? The answer: the sky's the limit. I first became aware of EC2, for example, when checking out web hosts for the domains my wife and I needed. A number of the more inexpensive hosts proudly boast that they're hosted at Amazon. Quite a few of the newer "Web 2.0" (are we still using that term?) services also are hosted here. Think about it: you want to run a web host or a web-based application, but you don't want the hassle of a server farm. With Amazon Web Services, you simply fire off instances as needed and manage your entire infrastructure from your living room in your PJs.

You also can provide your customers with a level of scalability that's difficult for even the most experienced admins to provide (said as an admin who's had to provide those levels of scalability!) You can, for example, start with a single instance to handle traffic. As traffic expands, you can configure AWS to fire off new instances of your hosts to handle the load. As the load decreases, the instances are shut down. How cool is that?

I've spent some time in my career working with VMware and Citrix XenServer farms, and Amazon Web Services is that to the next level. In the IT world, virtualization's the big buzz now as you can provide your end users with scalability and availability that was never before possible. Amazon's made it easy for anyone to tap into that power with nothing more than a web browser. But, beyond all of that, the services are CHEAP! A "small" instance, which is a VM with 1.7G of memory will run you about 8.5 cents/hour. That's about $60/month. You can barely lease a physical server for that much, and when you add in costs for electricity and maintenance, Amazon Web Services is a steal.

As I mentioned, I'm taking advantage of the free tier that's being offered right now. New AWS customers can get on this tier for 12 months. This includes:

- 750 hours of Amazon EC2 Linux Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month

- 750 hours of an Elastic Load Balancer plus 15 GB data processing

- 10 GB of Amazon Elastic Block Storage, plus 1 million I/Os, 1 GB of snapshot storage, 10,000 snapshot Get Requests and 1,000 snapshot Put Requests

- 5 GB of Amazon S3 storage, 20,000 Get Requests, and 2,000 Put Requests

- 30 GB per of internet data transfer (15 GB of data transfer “in” and 15 GB of data transfer “out” across all services except Amazon CloudFront)

- 25 Amazon SimpleDB Machine Hours and 1 GB of Storage

- 100,000 Requests of Amazon Simple Queue Service

- 100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for Amazon Simple Notification Service

Now, even if you're a seasoned IT pro you're probably wondering what some of those things mean. The reality is, Amazon has come up with their own phrasing and terms for some things, so you really have to dig in yourself to see. For me, though, having that free virtual machine is more than enough reason to give it a try! Keep in mind, though, it's free for a year. After that, it's 2 cents/hour to run your box. Oh, my, 2 cents/hour! That's $15/month! Told you...holy crap this is a cheap service!

Now, if you're going to sign up, learn from one of my big mistakes: don't just grab an AMI to launch. There are two types of instances you can use, a standard EC2 one and one that's EBS-backed (Elastic Block Storage, part of the Amazon S3 services). Non-EBS instances are temporary only. If you shut the machine down, even to reboot, it goes away permanently. It's designed for scenarios like I mentioned above: firing up new, temporary instances for handling load. Is there anything more fun than rebooting to install updates only to have all of the work you've done vanish into the ether? Yeah, pay attention to your AMI types, people!

When you choose to launch your first instance, select the "Community AMIs" tab and select "EBS Images" in the dropdown and go from there. If you're going to try out Ubuntu, stick with the official Canonical-provided images. These all come from user 099720109477, so you can just search for them. You need to remember to add an Elastic IP to it and at least open up port 22 so you can SSH in later, but beyond that...you're done (assuming you remember to make it a Tiny instance). Build your box and go. Don't want to be limited to Server? No reason you can't build a full desktop accessible everywhere. :)

You also have options to run Windows boxes, but you cannot get them in a Tiny instance, so they're not free. But, it's doable! As I learn more about the services and offerings, I'll be posting my findings and learnings. I've also learned tons about managing Apache, MySQL and Wordpress that I'm looking to share, too. For now, give it a try! It's FREE!!

Sunday, November 14, 2010

Lazyman's back up - the only kind that works! (Part 1)

Backup and backup often, right?  We all do it, don't we?  Yeah, I didn't do it for a while, either.  I did get better at it once my daughter was born.  Those pictures of her first few years of her life are irreplaceable, so I became diligent in ensuring they were as safe as I could make them. Since I had a machine in our living room that served as our media center and file server, I would backup to that.  When out of town, I'd always have my laptop with me to serve as my "offsite backup".

The problem was, I did everything manually and that's the fastest way into Mistakeville I've found (Most folks take I-380S and then get off at Exit 19. That's the long way). Whenever I'd want to backup, I'd look to see what backups I had out there on the network. Since I did it haphazardly, I'd have a few different copies of previous dumps from my laptop. Since I never knew what was the most current version, I'd just create a new dump. At one point I had about a dozen copies of the same data occupying half a terabyte of drive space.

It was absurd, and I one day I finally decided to get it under control. I went through and consolidated them as best I could as I MOVED them from the server onto my laptop. At that point, the laptop contained the master copy of my data. I then used Microsoft's Synctoy to sync it back to the server. Synctoy gets a bad rap from folks, but it really is a simple and easy to use tool. I created a sync pair for my data and once a week scheduled it to run automatically. I kept my backups down to just one copy and life was good.

Fast forward to today.  New OS means new paradigms.  Since the laptop's been traveling with me a bit more, using it as an off site backup still works.  But, there might come a time where I'll want to leave it at home when I'm at work.  Worse, if there's a disaster in the house (more on this topic at another time), I'm probably not going to make an effort to get my laptop!  So, I need an additional backup I can keep permanently out of the house.  Since I had an extra 200G hard drive lying around, and that's more than enough to hold my REALLY critical data, I ordered an inexpensive USB enclosure to put it in.  Once a week, I'll bring it into the house and do a backup, but the remainder of the time it will live in the car.  I need to figure out how to handle the very cold winters we have 'round here, though.  A week in the car could get it down to absolute zero!

That's a detail for another day, though.  Today, we just want to get it setup so I can use it to backup my laptop quickly, easily AND securely.  This drive's going to be in my car, so there's always a chance it could "disappear" one day.  I don't want my data so easily absconded with!  Fortunately, there's an easy solution: Truecrypt.  A free, open source encryption application.  It's cross-platform, so no matter where my brain leads me in terms of OSes in the future, I'll be able to read it.

Installing on Ubuntu's a doddle: download from here, follow the instructions. Now we create an encrypted volume. I'm not going to take you through this step as Truecrypt's docs are top-notch. I will mention that I created the volume on my Windows box and I did so for a reason: I wanted it formatted as NTFS. My plan is for this to be accessible regardless of the platform or machine I plug it into. NTFS support has become much more ubiquitous, so that's the route I went. I could've probably gotten it formatted with Ubuntu, but it was simplest to just plug it into a Windows box and do it. The final detail: create a keyfile for the disk and tell Truecrypt to use it. You'll see why later, but for now Truecrypt's docs on keyfiles are the best place for a howto.

Everything's in place, now we just need to make it really easy to use.  First, I create a couple of scripts to automate the process with.  I'll be writing a number of scripts to manage my machine with, so I'm creating a .bin directory in my home directory. Since a lot of these scripts will be for automated processes, I'm going to hold off adding it to my PATH for the moment.  Also, I'm putting it in my home directory instead of /usr/bin for a reason which you'll see with the first one I write for this process.

We start it with: joe ~/.bin/mountrose


#!/bin/sh

truecrypt /dev/rosewill1 /mnt/rosewill --password=ComplexPassword --keyfiles=/home/tonyk/.bin/rosekey --protect-hidden=no --fs-options="uid=1000,gid=1000"

rm -rf ~/.bash_history
history -c


Yes, I use joe.  I like joe.  You also now have one question and one complaint, I think: the maker of my external drive enclosure is named Rosewill and I'm not worried about putting the password for the volume in the script because my home directory is encrypted.  If someone were to steal my laptop and the enclosure, they'd have to decrypt my home directory to get this script to get my password to get it open.  Of course, at that point, they have the primary of the data anyway.  The makers of Truecrypt do make a good point we have to acknowledge.  If someone should get onto my machine while it's backing up, they could see the whole command line passed to the Truecrypt process and thus be able to get it that way.  Again, at that point my machine's been compromised while I'm logged in with the home directory decrypted.  I'm done no matter what. Since the plan is for this to be plugged in once a week for only a few minutes, I'm not as concerned about this particular security issue.

So, this script mounts the encrypted partition we created before and then wipes history to make sure there isn't a trail with my password, just in case.  When I started playing around with this, I thought I'd be able to just use the password option on the command line, but I found it absolutely would not work unless I put all of the other options in, including using a keyfile. I don't know why that is, nor do I feel like digging far to find out. The remaining two options included:

--protect-hidden=no tells Truecrypt that there's no hidden partition it needs to be concerned about

--fs-options="uid=1000,gid=1000" tells it to set the newly mounted volume as owned by my user account so I can work with the files.

We need another command to unmount the disk when backup's done. As mentioned above, I'm not adding my personal .bin directory to my path until I'm sure I need it, and the command to unmount is only one line, so I decide instead to create a Bash alias. Append the following to the end of your .bash_aliases file:

alias urose="truecrypt -d /mnt/rosewill"

Now we have the mounting and unmounting of the disk automated.  Of course, being the lazy fellow I am, I certainly don't want to have to TYPE these commands when I want to back up.  I want it to do even that trivial task for me.  S'okay.  Computers are here to do our work for us, remember?  Besides, having the computer do this means I literally have to remember to plug the thing in once a week.  Hmmmm...I think I just came up with an excuse to build a robot!

Back to the matter...how do we automate this process?  Fortunately, this part's trivial.  We write what's known as a udev rule. udev is the Linux subsystem that detects hardware and creates device nodes for them. When you plug in a device hot, udev reads its pre-defined rules to determine what to do with it. We're just adding one of our own that's particular to this single, unique device. First, we find out the perts* about the drive by plugging it in, turning it on and using udevadm to find out more info:

udevadm info -a --name=/dev/sdb

This will give you TONS of useful information about your drive, but we only need a little bit. Specifically, I need to know the manufacturer and model number of what just got plugged in so I ensure it's the disk I want and not some USB flash drive or something. Now, you'll notice this info is broken up into sections that begin "looking at parent device". This is because udevadm looks at the device and then everything that links this device to the OS. Since this is a USB enclosure, that means: the IDE-USB interface, the USB interface, the USB hub, the USB-PCI bridge, etc, etc. I'm most interested in the section below. Keep in mind, when you're writing udev rules, the attributes you're looking at must all reside in one of these blocks. You can't pull the vendor attribute from the SUBSYSTEMS="usb" section and the model from the SUBSYSTEMS="scsi" one. The reason I chose the block below is because that block had all of the relevant data I need.


looking at parent device '/devices/pci0000:00/0000:00:0b.1/usb1/1-1/1-1:1.0/host6/target6:0:0/6:0:0:0':
KERNELS=="6:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
ATTRS{device_blocked}=="0"
ATTRS{type}=="0"
ATTRS{scsi_level}=="0"
ATTRS{vendor}=="Initio "
ATTRS{model}=="WD2000JB-00EVA0 "
ATTRS{rev}=="1.06"
ATTRS{state}=="running"
ATTRS{timeout}=="30"
ATTRS{iocounterbits}=="32"
ATTRS{iorequest_cnt}=="0x48"
ATTRS{iodone_cnt}=="0x48"
ATTRS{ioerr_cnt}=="0x1"
ATTRS{modalias}=="scsi:t-0x00"
ATTRS{evt_media_change}=="0"
ATTRS{dh_state}=="detached"
ATTRS{queue_depth}=="1"
ATTRS{queue_type}=="none"
ATTRS{max_sectors}=="240"


We now have all we need to create a rule. First, su and joe /etc/udev/rules.d/10-local.rules. We only need one line for this:


KERNEL=="sd*", SUBSYSTEMS=="scsi", ATTRS{vendor}=="Initio", ATTRS{model}=="WD2000JB-00EVA0", SYMLINK+="rosewill%n", RUN+="/bin/sh /home/tonyk/.bin/mountrose"


What that's saying is "when you see a device that the kernel labels a scsi disk, from the vendor Initio with this model number symlink its devnode as rosewill. Also, since this is a disk, symlink the devnodes for each partition as rosewill1, rosewill2, etc and then run the script /home/akarakas/.bin/mountrose using /bin/sh".

So, why do we do it like this? Let's say, for example, I've plugged in a USB flash drive prior to plugging in this hard drive. There's a chance that flash drive might become /dev/sdb and my backup hard drive /dev/sdc. Can't really write a script for variable disk names, now can I? By setting up the udev rule in this way, this disk will ALWAYS be accessible via /dev/rosewill and its partitions via /dev/rosewillX. I don't need to poke and prod as part of my script, I'm always going to have the right devnode. As to why I launch the script this way, for some reason a bash script doesn't honor the shebang properly when run by udev. I could not find any way to run this script by simply calling it. No biggie, it works.

And now, the moment of truth...plug it in, turn it on and...../mnt/rosewill is mounted, and I can see and modify the files. Woo hoo! Now we have my media setup! Kewl!

At this point, I'm going to conclude this article and leave the remainder for Part 2. In that article, I'll present the full script the system runs when the disk is plugged in and reasons for some of the choices I've made.

*perts = Pertinent details.  I'm trying it out, what do you think?

Tuesday, November 9, 2010

Happy birthday, Carl!

I think it's safe to say we all have defining moments in our lives.  Those moments when something happens that directs the course of the remainder.  The first one I remember came in the latter part of 1980 when I was 10 years old. I was going through the dial on the TV (It was 1980. Yes, it had a dial!) when I glimpsed just a second of this:





"What the heck was that??" I thought. I quickly turned back the dial, but that image of some blob floating around a DNA strand wasn't there anymore. I assumed it must've been on PBS, because even in 1980 none of the major networks had quality programming. I turned back and watched the remainder of a promo for a new series called Cosmos by astronomer, author and poet, Carl Sagan. For the next 13 weeks, you could find me every Tuesday night from 9-10PM eyes glued, unblinking as I stared up at the TV from the floor.

Prior to Cosmos, I was a science geek, sure. But, after Cosmos my life was radically altered. I was introduced so early to the scientific method and critical thinking, how could that not have a profound influence on me? It certainly had an effect on my schooling since I was enrolled in a Catholic school at the time. I found my religion classes to be interminable bores once I learned to apply even basic critical thinking to them...."Really? You really believe that?" was a sentence I found myself quietly asking the nuns as they'd prattle on.





But, this is about Carl, and the impact he had on my life. I learned so much from that first series that I followed along with his other books; The Demon Haunted World and Pale Blue Dot being two of my favorites. In high school, I was fortunate to have taken a class in my senior year called "Science Odyssey" in which we watched Cosmos along with classics from James Burke such as The Day The Universe Changed and Connections. These would be followed up by discussions in later classes along with assignments for reading and further discussion. Never before and never since have my days been filled with conversations like that!

But, then I made the biggest mistake a person can: I decided to take a year off before going to college. Which turned into two, then three, then four...it wouldn't be until 6 years after high school that I'd finally be enrolled in a science program (Cognitive Sciences @ the University of Rochester), but by then it was too late. I didn't have the funds to finish and had to drop out. The saddest part of that time was I found out that Carl Sagan was coming to UofR give a lecture. I found out the day of. That was in 1995 and he died a year later. He would've been 76 today. I did get to see his limo, though. His license plate was "COSMOS".

The Internet will filled with people saying things about Carl and the influence he had on their lives, more likely doing a better job of it than I...most certainly will have probably accomplished a bit more due to his original influence. But, he influenced me as well, and I am thankful to have decided to turn the dial back that day. The lessons I learned I hope to one day pass on to my children, assuming my wife doesn't "artist" them up too much. :) Perhaps they'll one day do great things thanks to those lessons. His wasn't a life lived in vain. Because of his passion and poetic nature, he inspired so many people to enter scientific fields that it is impossible to calculate the good that has been done in his honor.

I leave you with one of my favorite videos. Whenever I am feeling down, or feel that world has gone insane (which happens far too frequently lately), I need only watch this and get the strength to carry on and fight the good fight. Perspective is always important, and there's no better group than astronomers to give it to you!



Thursday, November 4, 2010

And sometimes, you make 'em happen

TEDxRochester 2010 was on Monday and I have to admit, it ROCKED! Really, though, surprise is unwarranted. We put together a fantastic speaker lineup and the caliber of attendees we had registered was just so high.

Yeah, right. It's so easy after the fact to say you knew everything was going to go well, but had you asked me even just minutes before the first attendee walked through the door I would've told you I was ready to collapse in terror. Last year was such a great event, we had a high bar to jump. But, somehow we managed.

From the moment Alemeta Whitus started her song of welcome to bring us into the event, to Shantarra Randall's poem to close out the day, pretty much everything went according to plan. Of course, not everything, but nothing we couldn't deal with or learn from for next year.

I've been asked by a few folks to point out my favorite moment of the day, but I don't have just one. Let me share some of my faves:

- One of my close friends brought his 12-year-old son to the event, and he was a networking machine. He must've walked out of there with 40-50 business cards. If he didn't meet everyone at the conference, it wasn't for lack of trying. Good for him to learn that lesson early. None of what we've done so far at TEDxRochester could've been possible without our team members constantly networking around town.

- Moka Lantum's talk. Not just because of the content (I must confess I wouldn't mind building and living in one of his eco-domes), but because of the man himself. Apparently we'd forgotten to tell him he needed to memorize his talk. On Saturday night, he found that out and was terrified. He stepped up, though, and rocked the house with his talk. I had told him on Saturday that I wasn't worried about him, though, and my faith paid off!

- Ralph Spezio's talk, of course. Ralph was the highlight of the event for a lot of people, and the standing ovation he received was very well deserved. Ralph is an honest, genuine man who cares deeply about children and is PASSIONATE about eliminating lead poison in this country once and for all. But, like Moka, he was nervous about giving his talk. He's not used to giving presentations to such a large crowd, but he, too pulled it off. Not only that, but he did so while the roofers had begun (unauthorized) and noisy construction on the roof. He did not let it bother him and he handled it like a solid pro!

If pressed, though, I'd have to say my favorite moment was after the show was over. Gary, Amanda and I were going through the FIFTY donation envelopes we received from the attendees. We found one that had three one-dollar bills in it. Someone had looked into their wallet and taken all they had and given it to us. It meant so much to us that it meant so much to them and if you're reading this, anonymous donor, thank you.

But, thank you to all of the wonderful people who made this event a success; from the organizers and volunteers to the sponsors and attendees, everyone has been so excited about this year's event and it shows. The only problem....


....the bar is MUCH higher for next year!!

Friday, October 29, 2010

Kango Play Center and Academy

Today I once again got to spend some time in the morning with my family at Kango Play Center and Academy. Located in Henrietta*, Kango is an indoor playground/kid entertainment facility.



Similar to The Sandbox in Fairport, Kango offers lots of fun stuff to help you whittle down all of that extra energy your little one might have stored up. There's a bounce house with giant slide, a ginormous climbing gym, electronic games, slides, trikes and even a roller skating rink. They have a little cafe where you can get kid-friendly foods like pizza and burgers and the food's actually quite good.



But, the best part for parents: where ever your kid can go, you can go. That's right, done watching them have fun climbing up to the ceiling? No problemo, head on up and join 'em! Granted, the walkways up there are designed for kid-sized statures, but crawling around up there is just as much fun as running. Trust me. Just wear light clothes, it gets hot up there.



My wife and I ended up buying a membership ($80/year for a family, but save your receipts as they'll deduct previous admissions off of that) because Maeby just loves it there. We normally go during the mornings, so there aren't as many folks there, but even when it's crowded (like this morning for the Halloween party) it's not insane.



In the electronic gaming area, they have ski-ball and a number of other easy games that little kids can do well at. You get tickets for playing which can be turned in for those ever-so-valuable-when-you're-two little rubber bugs and dice that kids love so much. I really think it's one of her favorite parts of our visit to pick out her prize. Today she got a little blue ring that had googly eyes. :)



They also do day care and pre-school, so if you have need of services like that, I have to imagine it's a great place to put your kids. The staff is always present and the owners have been there every single time we have. They really do appear to love what they do, and it shows. It's a fun, safe place to let your kid be a kid for a few hours!

*Note: it's located in the Eagle's Landing office park which is a new one across from Bowl-A-Roll bowling. When you go in into the park, stay to your left and follow the road around the curve. When you get to the main parking lot, you'll see Paychex on the left, Kango's in the building on the right.

Thursday, October 28, 2010

Ya gotta let the good days just happen

Last night at work I received a frantic call from our babysitter. Her daughter had bonkered herself on the edge of a table and was bleeding profusely. Since my boss is a bit more flexible and my wife was loaded down with appointments at work, I headed out to pick up my daughter.

I arrived to find our other friend covering for the babysitter and my daughter thoroughly engaged in an episode of Wonder Pets in which the team, through teamwork, attempt to rescue a baby chimp from a space capsule before it's hit by a meteor. I won't spoil the episode for you, but it is a nail biter!

We headed out and had a good time talking and singing the Wonder Pets theme when I noticed a giant Tim Horton's cup dancing around in front of the store around the corner from our babysitter's place. Hmmm...what's that on his sign? Free...Iced Cap?!? Oh, hell yeah! We pulled around the corner and into the lot just in time to see employees heading out with a tray full of my favorite icy treat! "You want one?" they asked. Duh!

Back on our journey home, we passed by the airport. Whenever she & I are in the car, I always look out to the northeast as that's where the planes come in from. I've been waiting for a time when I could pull over and let her catch a glimpse of a plane coming in extremely closely, and tonight did not disappoint. I saw something coming in, and it looked like I had enough time, so I raced into the parking lot of the Sugarcreek and jumped out of the car. I pulled her out quickly and stood her up on the trunk of the car with just second to spare before this roared overhead:



Since it's not that clear from the photo, that's a Hercules C-130, one of my favorite military planes. This graceful, prop-powered behemoth was the perfect plane for her first close-up. She practically fell over trying to keep an eye on it and she let out a loud giggle as it roared past. I said "Wow, was that cool or what? You could almost touch it!" "I can touch it?" she asked? Maybe someday, Sweetie, when I take you to your first airshow. :-)

We got home, and once I convinced her she couldn't have chocolate for dinner no matter how many times she said it, we decided on soup. But, we didn't have any that either of us wanted. So, we headed over to my least favorite store, Walmart and grabbed a couple of cans of Chicken & Stars which we shared. Although it was fun introducing her to this childhood favorite, I think we'll wait a while before trying it again. Who knew it could take a two year old an hour and a half to get every last star from the bottom of her bowl...

After dinner, we played for a bit and then got her ready for bed. She went down easily and Daddy headed down to spend some quiet time with his computer before Mommy came home....which had its own levels of fun we'll gloss over... ;-)

Oh, and this finally arrived!!



That's a "Remembrance of the Daleks" Collector's Set. Only available in the UK, our good friend Michelle (the babysitter that started this tale) was able contact family to get it over to me. Ever since I first saw that episode a lifetime ago I've wanted a Special Weapons Dalek, and I'm pretty sure this is the only time it's ever been available in miniature form. SQUEEE!!

Taken together, each of these are minor incidents, but together they made for one hell of a good night. Probably one of the best I've had in a long time. I'm sorry Michelle's daughter had to get five stitches for it to happen, but I certainly wouldn't trade it for anything!

Sunday, October 24, 2010

Console-ing myself transparently

I spend a lot of time in the command line, so it would be convenient for me to have access to a console at all times.  The only problem is it's so easy to forget not close it, plus it's never big enough, plus I don't want it in the task list/pager, etc, etc.  I've tried solutions like Yakuake and Guake, but they never quite fit my needs.

Besides, I'm playing around with Linux, right?  Might as well try cobbling together a Linuxish solution that works exactly how *I* want it to.  So, first, I put together some requirements:

- Needs to always be available.
- Needs to be unobtrusive.
- Needs to be big enough to see full lines of whatever I was working on (such as looking at logs).
- Needs to not hide the desktop.

After looking over my requirements, I decided that what I was looking for was essentially one of those cool transparent and undecorated consoles that you see in the screenshots of the really cool kids.  First, we need to install a couple of packages: sudo aptitude install wmctrl devilspie. I'll explain their uses as I get to them.

The first one we'll setup is Devil's Pie.  This is a unique utility that runs in the background. At launch, it reads in any Devli's Pie scripts in ~/.devilspie. These scripts are made up of rules that tell Devil's Pie "when you see a window launch that matches these attributes, apply these settings to it". You can set placement (such as making sure an app always launches in a particular location or workspace) or display characteristics. We're going to use the latter to remove the title bar from a very specific console and nail it to the desktop.

To start, open Gnome Terminal (you can use whatever you want, just apply similar settings). Edit -> Profiles -> New.

- On the General tab, give the profile a name. I'm calling mine DesktopConsole. Uncheck "Show menubar by default in new terminals."

- Title and Command tab, set the Initial Title also to DesktopConsole and set "When terminal commands set their own titles" to "Keep initial title".

- Background tab, uncheck "Use background settings from system theme" and choose Transparent background. Set transparency to whatever's most comfortable for you. We'll be modifying this on the fly later, but need an initial setting.

- Scrolling tab, Scrollbar is Disabled.

Apply any other customizations, such as colors, as you like and then save the profile. Now, to make sure it launches at startup, we can just add it to Startup Applications in System -> Preferences, but I have need of a little more control, so we're going to create a script to launch it with. I put all of my scripts in ~/.bin, so

joe ~/.bin/launchconsole

Into which I add:

#!/bin/sh
gnome-terminal --window-with-profile=DesktopConsole --command=screen --geometry=400x200


This launches a new terminal window that uses my custom profile and launches Gnu screen. Screen's a tool that's well worth looking in to, especially for a setup like this. It allows you to essentially have multiple terminal sessions to use as you need. We will be going into more detail about it in later articles. We'll also see a little later why I used a script to launch a single command. Hint: it's not going to be alone for long! And, though I'm spreading this console across the desktop, I still specified a geometry. For some reason, what we do next never works properly without it.

If we launched it now, we'd get a transparent console, yes, but it's free-floating and still has a titlebar. Time for a slice of the Devil's Pie. If you don't already have one, you need to create a directory in your home for the scripts (mkdir ~/.devilspie). Then, we create the script to do all of the magic...or at least most of it (joe ~/.devilspie/DesktopConsole.ds)

(if
(matches (window_name) "DesktopConsole")
(begin
(undecorate)
(skip_pager)
(skip_tasklist)
(wintype "desktop")
)
)


Each Devil's Pie script can contain only one rule. In this case, the rule is "if you see a window with the name DesktopConsole apply these properties to it":

- undecorate: Removes the title bar from the window.

- skip_pager: Prevents the window from appearing in your alt-tab list of windows.

- skip_tasklist: Prevents it from showing up on taskbars.

- wintype "desktop": I played around with quite a few different types before finally finding and settling on "desktop". When you set this property, the window manager thinks of the window as another desktop. That means you can do all of the "show desktop" things (which minimize all windows) and the console remains. It also means the console is always below other windows.

So, to verify it works, we log off and back on and are presented with our lovely desktop console:



A little small, though, huh? Let's fix that by modifying that launchconsole script:

 

#!/bin/sh

# First we need to know the screen's resolution
screenResolution="`xrandr | grep \* | cut -d' ' -f4`"

# The above command returns the geometry of the screen, i.e. 1600x900
# So, we need to split that into two numbers we can plug in elsewhere in the script
# In the next couple of lines, we're using the bash split function and putting each
# number into its own cell in an array.
IFS="x"
arr=( $screenResolution )
IFS=""
# echo ${arr[1]}
screenHeight=${arr[1]}
screenWidth=${arr[0]}

# My top panel is 32 pixels high. The below setting ensures the console fills the
# remaining desktop
consoleFullHeight=$(($screenHeight-33))

# Launch the terminal
gnome-terminal --window-with-profile=DesktopConsole --command=screen

# wmctrl is a utility that allows you to control windows and their placement from the
# command line. This command tells it to place the console starting 33 pixels down
# from the top-left corner (right below the panel), and fill the screen.
wmctrl -r "DesktopConsole" -e 0,0,33,$screenWidth,$consoleFullHeight

# As you'll see in later articles, I've got some plans in mind to make this console
# usable in a Yakuake/Guake kind of way. As part of those plans, I'll need to modify the
# transparency of the console as needed. In order to ensure we start off
# transparent enough, we'll set this in the initial launch script.
gconftool --set "/apps/gnome-terminal/profiles/Profile0/background_darkness" --type float .01

So, now we save this file, log off and log back on again.



Much better this time. We're good with this for the moment, but I've got an addition in the works to share with you soon. Beyond that, I've got my screen config and what I use that for. Hint: gMail and Mutt. gMutt.

Monday, October 18, 2010

Mmmmm...McSkeptic burgers

Recently on Facebook, my wife reshared a link to a video her friend had posted that's been making its way around the Intertubes. It was apparently posted by a vegan with a vendetta against we normal, eat-meating types.

When I first saw this video, I chose not to say anything as I figured the worst case scenario is that my daughter and I would have to visit McDonalds in secret (she loves Chicken McNuggets almost as much as her Daddy). And, when my wife brought it up to me later, I pretty much gave her a non-committal shrug and a smile as I was really looking to avoid a fight over a trivial matter. But, the reality is, it's not trivial.

As Dr. Novella points out today, it really highlights how the general public really has no idea what constitutes good evidence. This is why we have a significant portion of our population who believes our current President is a Muslim or wasn't born in the US. Despite living in the 21st century and thus having easy access to all of the world's information, creationists, climate change deniers and those who still believe in a geocentric solar system (yes, they not only still exist, they have conferences) are actually growing in number. Even more ironic, it's DUE to having access to the world's information, and thus the treasure trove of ignorant blather that makes up most of it, is what's causing this disease to spread faster than it would normally.

How can this be? Simple: we no longer teach critical thinking skills. People like this choose a point of view and then find evidence to back it up. Then, and this is the critical part, no matter how much ACTUAL evidence they're presented with to the contrary, they refuse to acknowledge any of it. And, what is the amateur videographer's point of view? Well, I have to assume it's that McDonalds is some evil corporation selling you some evil meat-like product designed to ensure you'll die an early death. Since I have no evidence to the contrary, I've proven my hypothesis by simply stating it. Science is SOOOOO easy! Let's face it, McDonalds really doesn't want you to know what's in their food, right?. I mean, I had to click like three different times on their website to get the list of ingredients for all of their products! Who knows what's in this "beef" they claim their patties are made of?!

I think what I find funniest about this is the woman links to a BBC video wherein the host has done some time lapse videos as well to show what happens to food as it rots. Ironically, none of the meat in his video shows signs of mold, either. It does get eaten by larvae and flies, as is to be expected, but it doesn't mold. Really all she's done is proven she has a clean house free of flies. Good for her.

As Dr. Novella says, this is an observation, it's not an experiment. It's meaningless. When we cook meat, we do so to kill all contaminants (Yes, it's also about pre-breaking down some of the amino acids and proteins thus making them easier for us to digest, but do you really think most people understand THAT part of it?), so it's actually surprising to me that someone would be surprised that a cooked meal doesn't mold.

I don't know what the solution is, though. Ignorance is a protected right in the US, as is raising your kids to be just as ignorant. If you try to educate the kids so they won't be ignorant boobs like their parents, you're called a Nazi socialist spreading your liberal agenda. In poking around, it appears this woman's getting a lot of grief from the skeptical and scientific community. Hopefully, that'll be enough, but the reality is it won't. She's "popular" now. People are paying attention to her! McDonalds responded directly to her expose! She's a hero! Not a likely candidate for change.

In many ways, being a skeptic is tough. You have to face reality all the time. You have to listen to loved ones spout things that you know were disproven in the Middle Ages. You have to watch the US grow more and more clueless every day. But, at least in this instance, I'm a winner. I can still eat at McDonalds with my daughter because I know that their burgers are cooked and I don't have to worry about biological contaminants!

Of course, the real question is: will my wife share my post with her McDonalds-avoiding friends?

Sentences childless people are not likely to hear




"Mommy, what's this?"

"Ugh, it's a booger Maeby.  Wipe it on the napkin."

"No."

"Maeby, give me the booger!!"

"Noooooooooooooo!!!"

Thursday, October 14, 2010

My semi-regular trip to the dark side

Windows, Windows, Windows...I do love me some Windows!   In 1994, after recently upgrading to Windows for Workgroups 3.11, I had a revelation.  These were the early days of the Internet.  There was no web, you used Gopher instead.  There were no forums, we used Usenet and we LIKED IT!  Broadband?  Hell, dial-up networking?  What are these?  You wanted to get on the Internet, you used something like Telix* and communicated with the world via a command line.  It was a wild time.

Where was I?  Oh, yes...anyway, one night I needed to download some massive 1 or 2 megabyte files over my 19k modem from school, but I also wanted to play this new game I'd just bought called Warcraft (no "World of", just Warcraft).  What was I to do?  I thought about risking running both Telix and Warcraft under WfW and hope for the best.  After all, this new WinG platform Microsoft was touting was supposed to make everything work smooth, right?

So, I went for it.  I got thoroughly immersed in the game for a while and lost track of time.  Not thinking, I Alt-Tabbed over to Telix to see how things were going and immediately thought "Oh, crap! There goes everything I was doing!"  You see, back in those days, Windows had a bit of a reputation.  If you tried to run more than one thing at a time, it would crash!  You certainly didn't try multi-tasking a DOS app with anything, and certainly not with a game!  "You're a fool!" the crowds would shout!

But, to my surprise, the downloads were still progressing.  I was still online with Telix!  "Wow"  I thought.  "That's weird."  But, I just KNEW my game would be hosed.  So, I Alt-Tabbed back to see the carnage....and my little peons that I had told just prior to switching to go gather some trees were just heading out to begin a-choppin'.  The game hadn't frozen...it had paused!  This made no sense...

That's when the revelation hit me: this was a fresh install of Windows for Workgroups 3.11.  That means it was at least a pretty good approximation of what Microsoft intended your experience to be and it worked...as long as I hadn't screwed around with it.  The revelation was disheartening: PEBKAC.  Like most people, I blamed Microsoft for all of my woes, but the reality is an operating system is only as stable as its admin.

Having taken the "It's Windows, what do you expect" hammer out of my toolbox, I started to really get an appreciation for Microsoft's products.  Now, I know when something's broke it can be fixed.  A person doesn't have to live with blue screens.   They are not, as one commenter once said "Microsoft's way of telling you you need to reboot".  They're error messages that contain valuable information about what's wrong!

I attest my success in the IT field to the way I approach things.  For example, I follow Microsoft's best practices as closely as possible because that's what they tested!  They know THAT configuration works and this one doesn't.  You can't support a half billion dollar/year revenue generating environment on an unstable and unreliable platform...and that's why we run ours on Windows!  But, I'm not here to evangelize Microsoft products to you or try to convince you that if you have negative impressions of them the fault is yours alone (even though that's true :) ).  No, I'm here today to tell you about my current interest episode which includes Ubuntu Linux.

"LINUX?  You think I'm going to listen to some WINDOWS guy badmouth my beloved OS?"

Nope.  You see, I mentioned earlier that my install of WfW was a fresh one.  Why do you think it was fresh?  Because I had been giving this new OS called "Linux" a trial run on my machine.   I'd been reading about it for a while on the Intertubes about how light and fast and easy on resources it was.  As I was a Computer Science major at the University of Rochester, I wanted to be one of the cool kids using Unix so I set out trying to find it.  I actually headed to the UR computing center one day with a box of 4-5 floppy disks to see if someone could put it on there for me.   Hey, I was told it was small and light, and since DOS + Windows amounted to 6-7 disks, Linux must be MUCH less, right?

After poking around, I managed to find a copy of the only distribution in town: Slackware.   It wasn't even Slackware 1.0 since the Linux kernel itself was still only around version 0.98, but I downloaded all 15 disks (15!!), wiped my computer and installed it.  And, it didn't work...Well, let me clarify.  The OS worked, but the X-Windows system that provided a GUI on top of it didn't work all that well.  I had a crappy Trident video card that could only do 640x400 (that's not a typo.  It wasn't 480, it was 400) in 16 colors and X didn't know how to do that well.  There also weren't very many X-based programs out there for it.  Basically, you could multitask some console windows, have a nifty clock window, and a pair of eyes that followed your mouse around.  Very unimpressive.  Click the link for X-Windows.  The Wikipedia article has a picture of about the best you could hope for back then at the top.  Ugly, right?

But, I used it for a while anyway.  I struggled, I fought and eventually...I reinstalled Windows.  There was no benefit whatsoever to me running this OS at the time.  In fact, thanks to my crappy video card it was much crashier than Windows!  But, I remained interested in it.  I followed development over the years.  When the kernel hit 1.0, I purchased a new machine to be my primary and installed it on the old (after upgrading that video card, of course).  Each year since I'd give the latest and greatest a test run here and there.  Sometimes they'd last days, sometimes months.  Sometimes it never made it past being installed in a virtual machine.

For a good long time, I even used Linux From Scratch as my primary OS.  In fact, I spoke at VPNCon in Toronto and Linux World Expo in Boston about using Linux From Scratch to provide my company at the time with a free VPN solution that worked wonders!  Many an article (halfway down, ignore the horrible picture) was written about the one trick this pony pulled off there.

But, while LFS was fun, it was a pain in the ass.  Each upgrade required careful tweaking and tuning to make sure I didn't break a hundred other things.  Some things never worked right, and others just never happened at all.  I became a believer in package management systems.  Redhat's yum made me happy for a while, but it was eventually trying out Debian (pronounced DEB-ian, not DE-bian.  It's named after the original author, Ian and his girlfriend, Deb.  Betcha didn't know that!) that gave me an inkling that this "year of the Linux desktop" I'd been hearing about for a decade or so might come to pass.

A few years back a new distribution that was based on Debian called Ubuntu hit the scene and really made a splash.   Ubuntu was designed to combine the ease of upgrading/installing/maintaining from a Debian system with the usability of a Redhat desktop.  They've got some good directives and history behind them, not to mention a huge fan base.  The most recent iterations, 10.04 and as of last Sunday 10.10, have been widely acclaimed as "Windows-killers".  My wife's actually been using a Xubuntu desktop for a couple of years now, and aside with some weirdness with her trackpad I can't replicate, I've gotten no complaints from her.

And, the point of all this?  About three weeks ago, I wiped my little laptop that was running Windows 7 (I really do love me some Windows 7, though!) and put the beta of Xubuntu 10.10 on.  I ran it for about two weeks during which time I installed the Netbook Remix desktop, the Ubuntu desktop, Lubuntu desktop and Edubuntu desktop on top of it....and seriously borked the install.   But, that's ok.  I was really putting it through its paces to see which install I wanted to use as a base.  I had partitioned my drive up with a 10G OS partition and the remainder setup as home, so when I finally decided to just go with the plain vanilla Ubuntu it was a 20 minute reinstall.

I did have some issues with my wireless for a while there, but I was able to work those out and have gotten down to the business of serious fiddling.  Yeah, Ubuntu's got a reputation in the community as "the Windows of Linux" because it's easy to use.  The gods forbid!  But, this is my primary machine.  This is what I use to do...whatever it is I do.  It needs to work!  Playing is fine.  Fiddling is fine, but at the end of the day when I need to do something it better be able to do with it!  And, that's really the point: I have an OS that I can use AND play with.  It's still Linux under there, and once you see what I've done to it under the hood, you'll see that.

So, the articles I have on tap detail the things I've done as well as possible plans for the future.  Could be fun!

* Seriously?  You're still SELLING Telix?  For $79.99?  You DO know DOS is kinda over, right?  Don't get me wrong, I LOVED Telix!  It was one of the most popular pieces of shareware ever and with good reason: it worked and worked well.  It was one of the few I remember actually paying for!  But...do you really still have people paying for it?

Wednesday, October 13, 2010

What's with the name?

"Oh, look! A chicken!"?  What the heck is THAT supposed to mean?  Those who know me know I have ADHD.  As I was only diagnosed a few years back, I've come to realize that I had been trying to make my essentially flawed brain fit models that are more suited to the general populace than me.  For example, the vast majority of the population learns very well using the standard educational model of  regurgiteachin': "teach, repeat, regurgitate".

While I generally did very well in school, it was very difficult for me as that's not how I learn.   Finding that out was a great revelation for me, but it did leave one huge question: how DO I learn best?  Figuring that out has been a personal quest for the last few years, and I have made some recent advances in my discoveries.

Like most people, I've found I do learn best when I'm immersed in a topic.  This is the generally recommended way, for example, to learn a foreign language (not that I need to do that, I'm an American, dammit!  We speak English and we do it poorly!).  Learn the grammar and syntax, but also engage the cultural side: eat the native foods of that region, read their local news, their books.  Learn their songs and art.  This is great for those who are able to maintain focus on a topic for long periods of time, but what about the rest of us?

I won't mince words: I'm a technology expert.  My primary expertise lies in the area of enterprise infrastructure.  You want a major environment setup that generates hundreds of millions in revenue and needs 25/8 availability to do it?  I'm your guy.  While I primarily deal with the Windows Server world, I'm also quite competent with Linux and other Unix variants as well.  I have a wide breadth of knowledge, and the way I've come to it is because of the ADHD.  For a few months, I might be a on a Linux "kick" and will devote a ton of time and effort into delving further into that platform.  Soon after, I might be full tilt in love with Citrix platforms or the new version of Windows that just came out.  It's tough to say where my brain'll take me next and I've arbitrarily followed it over the years.  Recently, though, I've decided to come up with a more formalized method of maximizing on this "negative" I live with.

The "A-HA!" moment came a couple of years ago when I was doing some remodeling work in our bathroom (I can do carpentry, plumbing and electrical work all due to the fact that I had a brief interest in learning how to do it at one point :) ) I had gotten everything back together and the sink re-mounted when I realized I hadn't tightened one of the screws for the shelf above the sink.  The screw wasn't critical, it's a glass shelf and this was just a tension screw that kept it from flopping around.  Where it was placed made the likelihood of that happening minimal, but I still wanted to do a thorough job.  Unfortunately, I also didn't want to re-remove the sink to get at the screw.  So, I compromised with myself.  I taped a note to myself on the bottom of the sink that said "Don't forget to tighten that screw on the shelf!  Love, you!"  Yes, I always tell myself I love me in my notes to myself.

About a year later, the sink was clogged and I had to take it off the wall to get to the pipes to snake it (it's a VERY small bathroom) and I noticed the note which I'd actually forgotten about.  So, I tightened the screw.   My wife had thought the note was a bit silly, but had to admit it had been a good idea once she saw how well it worked.

The drawback to my previous "interest episodes"  was that it might have taken me months or even years to get back into a particular topic.  As such, I would spend a lot of time during the next one reacquainting myself with the basics.  After percolating for a while in my head, that note under the sink lead to the idea of leaving myself notes when I'm interested in a topic.  Basically, everything I learn, I document.  When I do get back to a topic, I can quickly review to where I left off and just build on that.  At the moment, I'm calling this informal framework "Breadcrumbs".   Like leaving breadcrumbs to find your way back out of the dark forest, my goal is to start using the tools that are available for managing information and using that to create notes I can leave for myself to then build on to greater sums of knowledge.

I've tried this with a couple of topics and initial results look good.  The big problem I did run into is how best to organize this knowledge?  I have pages of notes that don't make a whole lot of sense at times to Current Me.  I'm sure Past Me knew exactly what he was talking about, but I just see some weird ramblings.  Since I'm in the process of migrating this blog, and I'm currently in a writing "episode", I figured what better way to provide myself clear, easy to follow notes than by providing clear, easy to follow notes to the whole world?  There's a line of thinking that says "if you can't explain it to someone else, you don't understand it yourself".  Another saying I'm fond of is "teaching others is the best way to learn".

So, going forward, I'll be writing a lot of technical articles on whatever topic I'm stuck on at the moment (current topic: Ubuntu Linux).  I hope that someone out there might get some use out of some of this.  But, if not, at least I know *I* will!

Future Me, I hope you appreciate this!

Oh, yes...the title of the blog.

 

 

 

Thursday, October 7, 2010

Sorry 'bout the RSS spam

A few years ago, I decided to start establishing an online presence to help with that whole "personal brand" thing.  As I had recently setup a Windows Live account to take advantage of all that space available from Windows Live Skydrive, I figured I  would just use the provided blogging feature, Windows Live Spaces.

Alas, as even Microsoft has come to recently realize, Live Spaces was a terrible blogging platform.  Lacking easy customization features and a kludgy editing interface made me less than interested in writing posts and it just slowed me down.  Microsoft has corrected this by simply admitting that this isn't their core competency, and there's no shame in that, and moving everyone to Wordpress instead.  I like this move as we use Wordpress to managed the TEDxRochester, so I'm familiar with it and it does seem to be a good platform.  Time will tell, I suppose.

Anyway, on to the apology: as I wrote about in a series of  earlier posts, I use Yahoo Pipes to merge all of my online writing into a single RSS feed that I can then insert into other streams like my Linked In profile or at Facebook.  Unfortunately, I didn't think ahead about this and when I changed the URL from the old Live Spaces to this new blog, my vanity feed re-pulled everything I've posted to date and I inadvertently spammed those profiles, etc.  So, I apologize to everyone for not taking that into account.  I'll keep a closer eye on things going forward!

 

 

 

Monday, August 23, 2010

Geek My Ride - Part 2: The Tools

Part of the reason for writing this series is because I'm a bit of a narcissist.   Okay, that's not true...part of it is I feel a need to give back to the community of folks who have provided me with so many of the tools I'll be using to do these projects.  The hardware platform I've chosen to work with is Open Sourced, and very well documented.  But, for someone new or returning to the hobby as I am, the docs can be a bit overwhelming.  By documenting my projects, progress and choices, I hope to provide some level of a repository for others following in my footsteps.

Or, I really am an narcissist.  :)

So, to start out, let's talk about the hardware.  As mentioned in my last post, it's Arduino.  Also as mentioned last post, I'm sure there are much better platforms out there to start dabbling in microcontrollers, but Arduino's got a nice, large following and a large repository of projects that are also well documented.  I'm looking to put things into production, not reinvent the wheel.  If I accidentally learn something along the way, so much the better. Since I did have a number of projects I wanted to put together, I decided to eschew purchasing a pre-made board and followed some instructions I found on building your own (warning, link is to a PDF, I couldn't find a link on the site). 

My thinking was that I'd put some extra money into putting together a dev board that could then be pulled off a bread board en masse and moved elsewhere.  In the end, I think this will be a bit cheaper for me as I'll only need to purchase chips going forward.  As I had most of the parts I needed, I just had to pick up some caps and the AtMega chips.  The end result:




Yeah, it's a bit unimpressive especially when you consider the only thing it does at the moment is blink the LED on  the left every second.  But, it's a start.  It's up and it's working.  Not bad for a first try!

As for other tools, there's a couple that will come in handy over the long haul.  The first, believe it or not, is Dropbox.  I will warn you, that link is a referral link.  If you click it and install Dropbox I get an extra 250M of free space.  But, you ALSO get an extra 250M, so it's win-win!  Dropbox is a great way to keep files in sync across multiple computers.  As I sometimes like to work on my projects during my lunch hour at work, it's convenient to have access to the Arduino programming environment there, too. But, I also need any libraries I might've installed, not to mention my sketches.  As the IDE amounts to a whopping 250M when unzipped, and self-contained within a directory, it's the perfect way to ensure my environment's the same at work and at home.  No more "but it works on my machine..."

I've etched PCBs in the past, but the reality is it's a messy, dangerous thing to do at home.  With a 2-year-old running around, I have no real interest in keeping those kinds of chemicals around, so I've decided that when I DO need a PCB etched, I'm going to have it done professionally.  I've already found a couple of places that look like they'll be cheap enough to use.  But, in order to create a PCB, I need a design and so I've settled on FreePCB to do them in.  Another Open Source solution, it helps keeps those costs low!  It doesn't do autorouting, but it can use a web-based autorouter for the task, and I'm fine with that.

That last piece in the puzzle is probably a bit of a surprise, but considering the nature of the projects it's an essential:

:

A lifetime ago, when I got my first car, the alternator went soon after I bought it.  I took it to a mechanic who told me it would cost $200 to replace.  I headed to my local Pep Boys and asked the parts guy how much a new one was.  "$35", I was told (this WAS a long time ago, I said).  "Are they easy to install?", I asked.  "Two bolts and a wire", he said, "go grab a Chilton's manual it'll tell you how to do it."  I was hooked.  Once I replaced that thing, I decided to try my hand at any and every car repair I needed going forward.  Some were spectacular successes.  Some required me to pay extra to the mechanic to de-screw it up afterward, but I learned something new each time.  For every car I've owned since, I've owned either a Chiltons or Haynes (I haven't actually seen a Chilton's in a while...).  As I'm going to need to be able to find electrical connections, having the wiring schematic for my car will be invaluable.  Or, in this case, at least worth $19.99!

That's it for the tools I'll be using for now.  I'd like to give props to our local electronics store, Goldcrest.  Only place in the city I cold find picofarad caps!  Next week, I'll talk about the first project which is already about 90% done.  I've got it wired and programmed, I just need the spiffy LCD I've ordered for it. What is it?  It's a surprise, of course!  But, I'll give you a hint: remember this is a car project, and I decided the first project should be one that helps me save enough money to pay for any remaining projects!








Thursday, August 19, 2010

Geek My Ride - Part 1: The Ride


I've recently moved into a new position that's more of a management-type role, and so don't have much action solving problems for which I can document solutions (although I was pleased to learn recently that one of my coworkers was having issues similar to the one documented in the article "
Resolving difficulties with using certs" and in searching for a solution he came up with mine!)  So, my mental energies being not so completely drained each day, I decided that I should probably give this whole "hobby" thing a try.  It's been a very long time since I've had the time or energy to try getting involved with a hobby, so for me it's a very new thing!

Being an IT/science/parenting geek, I settled on some criteria I figured I could use in deciding where to put my efforts.  First, it would have to be fun.  Obviously.  Secondly, I felt it should also be "productive" to some extent.  If I was going to devote time to a hobby, it meant time would have to come away from my chores and spending time with my family.  I felt that it should somehow contribute back to them in some way, even if it ended up being tangentially.  Third, it needed to be relatively inexpensive.  We don't have a lot of disposable income, so by definition I couldn't dispose of a lot of income on it.  Fourth, it needed to be something that I could use to engage my daughter in eventually and get her interested in some kind of sciencey/techie things. 

I finally decided that something that I'd wanted to do for a LOOONG time was dabble in electronics.  How long?  Well, when I was five years old, I took apart a radio that belonged to my mother.  I carefully pulled each component off of the circuit board inside and meticulously laid each one out on a retaining wall in our back yard.  I've always been fascinated by the field, and have a collection of electronics hobbyist magazines I've gathered over the years.  And, depending on how much I did, it could be done relatively inexpensively. 

I knew, also, that I wanted to get into playing around with microcontrollers.  Electronics are fun, but electronics you can build and then program gives you two bangs for your buck!  Having followed its development for a while, as well as seeing a significant number of projects out there to whet my appetite with, I knew I'd be going with the Arduino platform.  It's relatively inexpensive, has a wealth of information available from the community and is easy to build on.  Is it the best microcontroller platform?  Probably not, but it would give me a number of quick and easy successes early on to help keep my interest.

But, what kinds of projects to start with?  It's easy to say "I want to build projects using a microcontroller", it's another to actually decide on which ones to do.  Fortunately, the decision was made for me.  My old daily driver beater, a 1989 Buick LeSabre that was originally my wife's (I ended up using it as I have a long drive to the office and it got GREAT gas mileage), died.  It was a good car, but in the last year it had really (and literally) started to fall apart around me.  Since we couldn't get by on a single vehicle, we went into a mad press to find a replacement. 

We found a couple of options, and the one we settled on was this spiffy silver 2001 Chevy Impala. It's a bit of an old man's car, but sporty enough to not be totally embarrassing to be seen in.  It's roomy and comfortable to drive, and actually gets reasonable miles per gallon.  This was important...if I really kept myself to a reasonable speed, the Buick typically got 30-32 MPG.  Obviously any significant drop in mileage would end up making it a costly investment.  But, I've been checking it at each fill, and have been averaging between 27-29 MPG (I do mostly highway driving), so no real complaints.  Also, that's been with A/C which the Buick didn't have (another serious plus for this car!)



I've always been a car guy.  In the past, it was all about muscle cars and performance, but I've come to appreciate the bells and whistles that come with more modern rides.  Now being a father, the idea of extreme performance has become anathema to me (and, really, you're limited to at most 65 MPH anyway.  What does all that performance buy you?)  So, that settled it, I was going to use my new car for the base of my electronics projects.  There's a few that I've had rolling around in my head for a few years, but I never had a car worth putting that kind of effort into.  Since I spend over an hour a day in my car, it made sense to put the effort into making the car more comfortable and user-friendly. 

With all of the above in mind, I've settled on a framework on which to design my projects around....When my wife and I were in Las Vegas to get married a couple of years back, we were fortunate in that the rental car place ran out of sedans of the type we'd registered for.  We thus had to settle on getting around town in a fresh-off-the-truck, only 500 miles on it, brand new Infinity G35.  Man, that was a nice car!  At one point, while climbing out of it I noticed the Nissan emblem on the door jam.  I realized that the body of the car was almost exactly the same shape as an Altima, and it finally made sense to me: a 2010 Infinity is nothing more than a 2015 Nissan! 

The Infinity owners pay through the nose for the privilege of "beta testing" all of the new features that will eventually be old news and put in as standard on the "lower quality" cars.  Big dummies.   But, as long as the luxury features work, they get some really nice perks: touch screen navigation and vehicle control, high performance, low fuel consumption engines, quiet, comfortable rides, etc, etc...In thinking about some of the features I liked in that Infinity, I decided that what I was going to do was build a low-cost luxury car using the Impala as a basis. 

So, that's what this series of articles will be about: the journey of my car from family sedan to home-brew luxury beast.  And, since these modifications revolve around an Arduino-based control system, the next article will be about my first steps in using that platform...