Archive for the ‘General Development’ Category.

My RSS Reading List

In an earlier post, I listed My Development Toolbelt which is a list of development tools I use daily.  Here, I thought I would list the RSS feeds I subscribe to and read fairly regularly.  This is a direct export from my Google Reader account.  Reading these feeds is a way for me to keep up with development trends, learn new things, and stretch my mind.  Some of these feeds aren’t updated all that often and some are more useful than others. Maybe you’ll find one you like and can add to your own list.  If you know of other must reads, please post a comment and share the link.

The List

Download

Brady – Development Feeds (OPML/XML format)

How I Got Geeky (Part 3)

In Part 1 and Part 2 of How I Got Geeky, you learned how I bought a CB radio for $5 at a garage sell and through a series of buys and sells ended up getting my first computer for $150 when I was 14 years old.

Playing with Computers

I had a lot of fun with my x386 computer. Although limited with what I could run on it, I mostly tweaked around with settings and such to learn how it worked. There were a few games I could play on it but most of the time I was doing things other than playing them.

I eventually bought and installed a modem (2400 baud, remember?) and started a BBS (Bulletin Board System) called “The Hard Drive”, powered by RemoteAccess, which ended up being lots of fun. It had some games and file downloads mostly. In the pre-mainstream internet days, BBS was your way to “connect”. Since I didn’t have a dedicated phone line I could only have it running at night while my folks were sleeping. I don’t think I ever told them about that!

After having a blast with my x386 computer for about a year, lightening struck our house and zapped it. With some insurance money (and probably some extra $ thrown in by my parents that I didn’t know about) I was able to get a custom built (by a family friend) x486 that had decent specs. It had a 200MB hard drive, 4MB of RAM, and a VGA monitor. I was now able to use AOL, play games that had decent graphics and other cool things I hadn’t been able to do with my older x386, because it had the very limited CGA monitor.

Programming

Awhile later, toward the end of my 8th grade year, I was hanging out with a guy I knew from church, Travis, and he mentioned something about how he knew how to program computers. This immediately got my attention because I had been very interested in learning how to do that but had no idea where to start. “Computer Programmer” had the coolest connotation for me. You know, the geek equivalent for something like “Black Stealth Ninja”.

At my request, he began to walk me through the nuts and bolts of programming with Borland’s Turbo Pascal. He got me setup on my computer and showed me the basics. He then started to give me programming “assignments”. Some of them were simple logic algorithms and others were mini-applications. I made screen savers, a magic 8 ball, computer password utilities, and a Tic-Tac-Toe program. It was seriously fun to me.

My first “professional” gig as a programmer was to create a screensaver for the full service car wash I worked at when I was 15. I was friends with the manager’s son and he knew I was computer savvy. He said he would pay me $20.00 to build a screen saver for the company computer. Admittedly, the screen saver I ended up with was rudimentary but it did the job. I was getting paid to be a programmer!

So, it was obvious I liked computers. And it was more than obvious that I liked to program them. One day my sister Becky placed a print-out about a degree program at The University of Texas at Austin called Management Information Systems. I read the blurb about “Is This Right For You?” and it sounded right up my alley. I liked the idea of being in the business world yet knowing technology deeply. I didn’t just want to be a coder locked in the backroom but a savvy business person that had development skills that could be applied to business problems.

Fast Forward

Fifteen years later, here I am. After graduating from UT, I entered the professional world as a developer and have had a variety of roles and responsibilities. I’ve had the opportunity to work in quite a few industries and see some pretty fascinating technology. Through and through, I’ve never lost my love of programming.

So there you have it. That’s How I Got Geeky.

Automatic TV Show Downloads

Believe it or not my wife and I don’t have cable.  I know, it’s craziness, especially considering only 11% of households with televisions don’t have cable or satellite, but just think about how much $$ we save ($75.00/month * 12 months = $900/year).  Also, we save a lot of time by not being lured into watching a bunch of stupid stuff  across 100′s of channels.  We use an antenna to get high quality HDTV signals over-the-air.  It usually works great but sometimes the signal won’t come in for a show recording and the recording will be all messed up.  Also, there are some shows freely available that don’t get broadcast to us where we live.

That got be thinking about a way to automatically download our favorite shows so that we would always have backup copies and so we could get shows otherwise unavailable (like MythBusters!).  I figured out a completely hands-off solution which works amazingly well.  Credit obviously goes to the various programs and services mentioned below.

It’s awesome to randomly look in my tv folder add see recent episodes of our favorite shows ready to be watched.  Although not necessary, I took it one step further and have all of this running on a server with a Samba share setup.  We use Windows Media Center hooked up to our TV and when I add the Samba shared tv folder from the server it is easy to navigate through MCE and watch our downloaded shows.  Pretty cool!

Here are the steps:

  1. Register for an account at showRSS.  Make a donation while you’re there to support them!
  2. Add some shows to your list.
  3. Note “Your feed address” from the feeds page.  It looks something like this: http://showrss.karmorra.info/rss.php?user_id=00000&hd=null&proper=null
  4. Install your favorite BitTorrent client that supports “watch directories”.  I use Transmission on Linux but uTorrent on Windows will work fine.
  5. Install FlexGet
  6. Create FlexGet configuration file (config.yml).  Mine looks like this:
    feeds:
     tv-shows:
     rss: http://showrss.karmorra.info/rss.php?user_id=00000&hd=null&proper=null
     all_series: yes
     download: /transmission/watch/

    You’ll obviously want to use your own feed url from showRSS (showrss.karmorra).  I stripped out my specific user_id above.  Also, you need to change “/transmission/watch” to be the directory your BitTorrent client uses at its “watch folder”.

  7. Fire up your BitTorrent client.
  8. Run FlexGet from the command line so that it will download .torrent files from your showRSS feed and drop them in your BitTorrent client’s watch folder.
  9. Check your BitTorrent client to ensure it starts to download some shows.
  10. Since FlexGet is not a service/daemon, you’ll need to setup a mechanism to run FlexGet on a regular basis so it will grab new shows once they become available.  If on Windows you could use a Scheduled Task and if on Linux you could use cron.

My Development Toolbelt

First off, let me say I’m a huge Scott Hanselman fan. This guy has way too much time on his hands and probably has the energy of 5 people combined. He knows his stuff and I’ve learned a lot from him. Anyway, he comes out with an annual list of the tools he uses and recommends. The most recent list is from 2009 but it is still relevant and seems to have been updated since the original posting date. How in the world does this guy have the time to use all of this stuff?

Anyway, over the years I’ve found tools on this list (and not on this list) that I consider invaluable for development today. Here’s my own list. These are the tools I use on a daily basis. Enjoy.

  • Windows 7 – I’ve been using Windows 7 (64bit) for about a year and can honestly say it rocks. It’s got the stability of Windows XP with so many additional cool and useful features. Can we just forget that Vista ever happened?
  • Visual Studio 2010 – Visual Studio is by far the best IDE I’ve ever used. Honestly, it’s one of the best products Microsoft has ever produced and blows others like Eclipse and XCode out of the water. It is one of the primary reasons I am most comfortable with C# / .NET as my “go to” platform.
  • Subversion – Source control that doesn’t suck.
  • TortoiseSVN – Subversion GUI client for Windows. A must have.
  • Beyond Compare – Best diff/compare tool I’ve ever used.
  • TeamCity - Continuous Integration and build management server. Holy cow, TeamCity is amazing. It has revolutionized the way I develop software. If you use CruiseControl/.NET, make the switch because it’s totally worth it.
  • Fiddler – Web debugging proxy. I fire this bad boy up when I need to have x-ray vision into my HTTP traffic. Firebug and some other built-in tools in other browsers like Chrome and Safari offer similar traffic inspection but Fiddler is much more powerful.
  • Firebug – A freaking awesome FireFox Add-on that enables you to “edit, debug, and monitor CSS, HTML, and JavaScript live in any web page”. How did I ever live without this tool?
  • NUnit – Unit testing framework.
  • TestDriven.Net – Add-In for Visual Studio to make running NUnit tests a breeze.
  • Notepad++ – Text editor on steroids. I never touched old-school Notepad after coming upon this tool.
  • FileZilla – My FTP client of choice.
  • Paint.NET – It’s like a free Photoshop with not quite all the bells and whistles. Impressively powerful for free. Does exactly what I need it to and what old-school Paint can’t.
  • PDFCreator – Create PDFs for free.
  • .NET Reflector – Decompiles .NET code. Useful for peeking into the .NET framework classes when you need to figure out the internal workings.
  • SQL Compare – Compares SQL Server database schemas and synchronizes the differences. Very, very useful when working with multiple SQL Server environments.
  • Remote Desktop Connection Manager – When you have lots of different Windows servers you manage through Remote Desktop, this tool helps keep things organized and easy.

How I Got Geeky (Part 2)

In Part 1 of How I Got Geeky, you learned that I bought a CB radio for $5 at a garage sale and through a series of buys/sells I ended up with $150 in my pocket.

Dead Printer

About the time I sold the dirt bike, my dad brought home a interesting looking “dot matrix” printer that they were about to throw away at his office. Home printed greeting cards were starting to show up around this time (1992-ish) and I decided I wanted to try to print one of my own with this new printer. My mom already had an old-school 8088 IBM PC-compatible with a “letter quality” (a.k.a loud) printer attached she used for her home based medical transcription business. I found some “shareware” greeting card software at the store and decided to hook the new dot matrix printer up (since the letter quality one wouldn’t print graphics) and try to print some cards. Well, I made the fatal mistake of unplugging the existing printer while the computer was on. Back in those days, parallel ports didn’t like that. How was I to know? My attempt at a printer swap fried the parallel port expansion board and left my mom’s computer unable to print at all. This was her computer/printer she used to run her business which provided income for the family. I was in hot water.

Troubleshooting

I tried every which way to get that thing working again but couldn’t figure it out. I plugged this or that cable in, tried to the old printer again, checked the printer settings in the software, etc. It was this experience that shed light on my interest in troubleshooting. I realized that I kind of enjoyed the process of trying to get that darn printer working again.

At the end of the day, I had to fess up to parents about messing up the printer and fortunately our next door neighbor was a computer whiz and was able to replace the I/O board for $50. Problem solved.

A few weeks later, I was playing around on my mom’s computer again (tinkering around with some settings and such) and managed to mess it up to the point where it wouldn’t even boot up. When you turned it on, DOS would say “Missing boot partition” or something of the like. Wow, I had *really* done it now. To make a long story short, I ended up calling various tech support helplines and getting advice on how to correct the issue. As they walked me through the process I learned a lot, and had some fun doing “low level” configurations. Finally, I was able to fix it before my mom found out!

After the printer and boot issue, it was obvious to me I was intrigued with tinkering with and troubleshooting computers. It was just plain fun to me.

My First Computer

Fast forward a few months. My Dad took notice of my interest in computers and relayed to me that his friend had an extra computer he was trying to sell. My Dad thought I might be interested. You bet I was. How much was it? You guessed it – $150. SOLD! Now I had my very own computer to tweak, configure and break. It was a blazing fast Unisys x386 with 4MB of memory and a 20MB hardrive. AND, it had a CGI (3 color) monitor. This was a major upgrade from my mom’s 8088 computer!

In Part 3, I’ll explain how I starting getting interested in programming.

How I Got Geeky (Part 1)

CB Radios

When I was young, my grandfather gave me a hand-held CB radio.  The thing was huge but really cool since I was able to use it while playing cops and robbers with my buddy across the street growing up.  He had a stationary radio in his back room and I had the hand-held.  I would go out on bicycle “field missions” and report back to him as to the whereabouts of the neighborhood robbers.  Good stuff.

One day a few years later, I was was at a garage sale down the street and saw a newer, nicer, digital CB radio for sale and they only wanted 5 bucks for it.  I snatched that thing right up and put it to good use.

The Go-Cart

A few years later I was riding my bike down a nearby alleyway and saw a seemingly trashed go-cart sitting in a driveway and obviously not taken care of.  I had always wanted a go-cart.  We had a huge open field behind my house which was pretty much perfect for a go-cart.  I saw potential in this abandoned go-cart and wanted it.  After asking around I figured out who the boy was that lived in the house and approached him a few days later.  I had a plan in mind.  I would offer to trade my digital CB radio I bought a few years earlier (for 5 bucks!) for his trashed, non-running go-cart.  He jumped on that offer and it was mine!

So the go-cart turned out to be a really fun project for my dad and me to fix up and get running.  My dad knew how to work on small engines and we worked together on it for a few months.  I learned a lot mechanically and it was good bonding time for me and my dad.  One day after a lot of hard work and persistence we cranked it it 15-20 times and it finally fired up!  After a few more tweaks I was riding that bad boy in the field behind the house and having a blast.  It was funny how all the boys in the neighborhood would flock to the field every afternoon when I got home from school and would bring it out for a spin.

The Dirt Bike

After years of fun with the go-cart I had greater ambitions.  My cousins had gotten into dirt bikes and I decided I wanted one for myself.  I ended up selling the cart in a garage sale and using the $200 to buy my cousin John’s dirt bike.  The dirt bike turned out to be a worthless piece of #$&*#.  I worked and worked on that thing to get it running  but many more times than not, it wouldn’t even start up.  I had the thing for a little less than a year and I think I only successfully rode it twice.  I had to get rid of it.

I sold the dirt bike in another garage sale for $150.  The guy that bought it knew it needed some work but he was confident it just needed some work on the carburetor.  He was brave to buy that thing, let me tell you, because I felt like the thing was a worthless piece of junk.  “One man’s trash is another man’s treasure” I suppose.

Recap

Okay, let’s recap a bit.  So I bought a $5 CB radio at a garage sale and traded it for a junker go-cart.  My dad and I fixed up the go-cart and I eventually sold it for $200 to buy a dirt-bike that ended up being trash.  After selling the dirt bike, I had $150 in my pocket.

So, how does any of this have to do with how I became geeky? You’ll have to read Part 2 to find out.

Why I Love Programming

Software development, in a nutshell, is a disciplined approach to creating software to meet a need.  It involves many activities including design, testing, QA, project management and more.   This is what I do professionally and can honestly say I enjoy it.

Programming, on the other hand, is raw slinging of code. It’s writing code to make your computer do
something…anything.  Sure, software development involves a good deal of actual programming but I think you  need to distinguish the two.

One thing I know for sure about about programming itself is that I love it! Here’s why:

  1. You get to create stuff. When I was a kid I used to daydream about inventing things.  When I program something, I am creating something that didn’t exist before.
  2. It’s challenging. Being faced with different problems to solve causes my mind to be actively engaged.
  3. It’s powerful. I can do things with software that are virtually impossible without it. Knowing how to leverage technology can open the door to new possibilities.
  4. It’s fun. I know it may sound crazy to “normal” people, but when I program I am having fun (most of the time at least).  No, really, fun like the fun I had as a kid going to the water park in the summertime or playing football with the guys in the neighborhood.