Chrome Development: My First Extension

Magic Elves

It’s safe to say that, over the past year, my confidence in web development and design had greatly diminished.  Coming out of a small private school, I was the only student within 3 grade years who was even remotely interested in computing – web development or otherwise.  After landing an amazing internship last year with a local startup, I was immediately overwhelmed by the new language (PHP), writing SQL queries, and working with source control and virtual hosts.

Even as a Computer Information Science student, I always subconsciously thought certain things on the internet were made by magical programming elves – stuff that was much too difficult for even the average programmer.  I’m not sure exactly why I thought this way, but I suspect it has to do with two main things.  First, I went to a very small high school, and there was only one computer course offered.  This one course taught Microsoft Office, Paint, and other basic Windows utilities and programs.  That’s it.  The only programming I was introduced to in high school was BASIC on my TI-83.  Secondly, upon arriving at USC, I was only introduced to 2 languages in my first two years – Visual Basic and Java.  The problem, I think, is that the end result of our assignments was usually something not too far from what I had built in high school on my calculator, just on a bigger scale, with fancier graphics.  Again, I thought, can’t everyone do this?

It was not until I started this internship that I saw programmers making useful web apps.  And it was awesome.  And absolutely overwhelming.  Over the next few months, I provided my superiors with an endless stream of questions, problems, and things I had messed up.  I infuriated them, infuriated myself, and felt I was going no where.  Although I am by no means a good programmer yet, I have come a little ways since then, I think.  The thing that has helped to drive me the most is the desire to make useful web applications – things that I previously thought were untouchable.  The following is my first successful attempt, apart from projects at work, at doing so.


The Problem

Every web app should, in some way, solve a problem.  Going into this project, here are the 2 things I knew:

  • I wanted to develop a Chrome extension that would make life easier for me, if not other people.
  • I wanted to tap into some API to get/post data

After searching around, I realized that one thing that keeps me from using my YOURLS installation to shorten links, is that it requires me to copy the link, log in to my installation, paste, shorten and copy again.  Although I think the idea of a link shortener on my own personal domain, I had not been using it as frequently as I thought I would, for the reasons stated above.  Therefore, I decided to build some extension that would automate the process for me – taking the URL of the current page tab, shortening it, and spitting out the shortened link.

Learning Extensions

Although I had tinkered around with extensions before, I had never had any success.  This tutorial from Google is really helpful in learning how extensions work – it gives just enough to get you started, and leaves the door wide open for pursuing your extension development.

Building shortenYOURLS

To begin, every extension requires a manifest.json file that includes important details about the functionality, permissions, pages and icons.  As shortenYOURLS is pretty basic, I don’t need a whole lot in my file.


“name”: “shortenYOURLS”,

“version”: “1.0”,

“description”: “Creates a YOURLS shortened URL and copies to a text box for the user to copy.”,

“browser_action”: {

“default_icon”: “icon.png”,

“popup”: “popup.html”


“options_page”: “options.html”,

“permissions”: [





The name, version and description are all pretty self explanatory.  Browser action basically defines the icons to be displayed in the browser, as well as the HTML pages used in the extension.  A chrome extension can ONLY read an HTML file for a popup window – PHP and other files will not work. For this example, we have only defined a popup window, which is the window that expands from the extension’s icon when you click it.  For the time being, don’t worry about the “options_page” definition – we’ll get to that in a bit.

Permissions are very important.  Essentially, this tells Chrome what outside resources you need access to in order for your extension to work properly.  If you don’t have these defined correctly, your extension won’t work.  For my project, I needed to connect to the YOURLS installation, and to read the current tab URL.  The tab part was easy – I just set a “tabs” permission.  The YOURLS API was a little trickier.  The problem is that the API file I need to access is located at a different place for each user, since the point of YOURLS is to provide a URL shortener on your own server.  After asking the community at Stack Overflow, I decided to just ask for global web permissions – “http://*/”.

So now that we have the manifest completed, we can build the app.  At its heart, it was very little code and fairly quick to write.  All I needed to do was hit up the YOURLS API, including POST parameters for the unique user signature, the URL being shortened, and the action (shorten, expand, etc).  All of this information can be found on the “Tools” page of your YOURLS installation.  As I said before, you must use an HTML page for your extension popup, so I chose to add some JQuery to get the job done.  First, I needed to grab the current tab URL.

chrome.tabs.getSelected(null, function(tab) {

var tabUrl = tab.url;


Pretty straightforward.  Having that, I nested the following inside the getSelected() function to send the information along to the YOURLS installation.

$.post(localStorage[“domain”]+”/yourls-api.php”, { signature: localStorage[“sig”], action: “shorturl”, url: tabUrl, format: “text” }, function(data) {




This is a pretty straightforward JQuery $.post().  The required parameters are attached (signature, action, url and format).  This will return data to the variable defined in the function call, in this case “data”.  I simply threw this into the input box in my HTML page, selected the text to make it easier to copy, and I’m done!

Now, you may be wondering what “localStorage” is.  When I first wrote the extension, I did it just for me, so I hardcoded the signature and domain.  However, as this is hopefully going to be used by more people, and most likely if it is, those people aren’t going to want to modify code, pack the extension and load it, it would be useful to have an options page that made this process much simpler.  Every extension is allowed to have its own options page, accessible from Options->Tools->Extensions.  The obvious answer, then, was to create a quick options form that allows users to enter their domain and signature.

Remember when I said to forget about the “options_page” definition in manifest.json?  Well, now’s the time to remember it.  That definition simply defines which HTML page you want shown as your option page.  If nothing is defined, there will be no options link beside your extension on the Tools page.  However, if there is something defined, the link will open your specified HTML document in a new tab for users to set their preferences.

Much like the popup, you can just construct a simple HTML form (or whatever) to set user data.  What’s great is that you can save information to “localStorage”, allowing you to access it anywhere (except manifest.json) in your code.  So, with a quick Javascript function and an HTML form, I had my options page.

function save_options() {

var domain = document.getElementById(“domain”).value;

var sig = document.getElementById(“signature”).value;

localStorage[“domain”] = domain;

localStorage[“sig”] = sig;


Obviously, this is 2 lines longer than it needs to be, but I did it for clarity’s sake.  I also chose to include a separate function that adds the values of localStorage to the form when a user arrives at the options page, so they know if they’ve set options yet.

And that’s it!  You know have a fully functioning, packable Chrome extension.  Sorry for the lack of brevity – I haven’t written in almost a year, and I’ve learned a great deal through this venture and recent work I’ve been doing.  Hope it helps!

To Do, To Do…So Much To Do

I’m a big fan of Patrick McManus.  For those who don’t know, he’s an outdoor humorist who has written several books – all of which are hilarious and I highly recommend.  Anyway, one of my favorite stories of his is called “Worry Box”.  In it, he explains how we all have an worry box that remains constantly occupied.  When a worry is removed, one immediately replaces it, meaning there are a never-ending supply of worries for everyone’s box.

I have a similar theory about to-do’s.  My mental list remains constantly full.  The past year has been amazing.  I’ve started to sell art somewhat successfully around the city, which has always been a dream of mine.  I passed Calculus 2, landed an amazing new internship, a story about a past relationship of mine was made into a verse of a song on a pretty successful local hip-hop album, I got a dog and I got a stellar girlfriend.  Not a bad year.  YET, I’ve accomplished very little in terms of this site.

And for that, I apologize.  I still love to blog, but it seems like it gets so easily lost in the hustle and bustle of everyday life.  However, I have not stopped blogging.  I still try to put out at least one post every few weeks, and I have lots I want to work on in terms of the site’s organization.

This leads me to 2 things.  First, subject matter.  Since this site started in 2006ish, I have maintained that it is a tech-related blog – and specifically it will remain devoid of any and all political discussions and references.  All that said, one of the reasons I don’t blog as often is that I am trying to increase the quality of posts.  If you look at the archives, you’ll see that I used to blog quite frequently, though many entries would be short and, in a few cases, extremely pointless.  I don’t like that.  As a result, I’m contemplating trying to migrate this blog to a more wide-reaching selection of topics.  The quality would (hopefully) remain the same, and chances are many of them would still be tech-related.  However, it would allow me the opportunity to discuss more things that are of interest to me and readers.

Secondly, the domain.  No doubt you’ve noticed that the header image and title has changed, and that redirects to  I’m still at odds of what to do about this.  On the one hand, I want to keep, as it was the first domain I ever bought and the only reason I know any HTML or CSS.  However, the name does not describe what the blog is.  I had contemplated using to contain information about the different projects I’m working on (Joupes,, RyboMedia, PalmettoGraffiti, etc), but since I’m a terrible decision maker I’m still torn.

Lastly, the design.  This site has gone through 5 major design changes through the years.  Essentially, as I became a slightly better designer, I would re-make the site.  As it is, and although it’s somewhat simple, I’m proud of the site.  There are a few tweaks I would like to add in the near future that would make things more visually appealing, and I would like to optimize it to be more search-engine friendly.

So, I’ll ask you, the reader, what you think of all this.  Leave me a comment with your two cents and I’ll see what I can do to host another giveaway soon.

How Twitter Failed Me: Thoughts of a Facebook Convert

“I love Twitter.”

I smirked.  I’ve heard this so many times by 20-something year old girls I meet around campus.  These creatures, however, are the type who have visited the site once – to set up their account and link to phone.  They tweet rarely, and always about weird occurances in their day.  They follow close friends, and if they ever use an @reply, it’s to tell a friend (always a friend who has an account but has sent <5 updates) something they should have just texted – or link that they are having lunch with said person.


Nothing about that experience screams “I love Twitter!”  In fact, to me, it screams “I can’t stand this nuissance – I’ll text my friends instead!”.  But texting your friends doesn’t make your thoughts visible to the world.  That is, of course, the appeal of the micro blogging site.  Quick updates that appeal to our diminished attention spans and a platform that requires no logging in, no thought process, drafts or publishing issues.  Type up a text, hit send and you’re done.  Confused about the picture to your right?  Read on…there is a point.  If not, it’s always good practice to put pictures of hot girls in your posts – smaller bounce rate and longer page times.

The truth is, while NO ONE cares how your assistant principle was flirting with your mom while suspending you (or what “#WhereDeyDoDatAt” means), someone is reading.  Heck, I just linked you up on a blog – a blog that a few people actually read, no less.  All you link-sharing Twitter snobs think I’m stretching the truth?  Try protecting your tweets for a week.  I did, and the results were quite surprising.  Turns out, not as many friends were reading my stuff as I thought.

I shared 2 tech-related links – one on August 26th while my Twitter account was protected, and one September 10th while it was open.  The result?  A 300% increase in clicks when the account was open for all as opposed to it being protected to just approved followers.  Now, a lot of factors weigh heavily on statistics.  August 26th was a Thursday, September 10th a Friday.  Research shows that, while more updates are posted on Thursdays, more re-tweets are performed on Fridays.  You also have to consider the fact that more people may have been genuinely more interested in the September 10th tweet.  Regardless, a 300% increase is significant, and speaks volumes (especially when combined with similar data I gathered with the rest of my updates) about the visibility of unprotected accounts.

So what does all that mean?  Well, if you’re like me, it means you’re not as important as you thought.  It also means that your Twitter relevance is much lower than you probably guessed.  Try this out:  post a link, story or funny encounter on Twitter and Facebook.  Be sure to post it word for word at the same time of day.  Where do you receive the most (let alone relevant) feedback?  Chances are, 9 out of 10 times it’s going to be Facebook.  Even if you only receive a few likes, you at least know a few people who have watched and appreciated your video.  True, Twitter reply’s may be more in depth, but you’re not going to get near the amount of talk back that you do on Facebook.

Now, as this is a blog post, you should know that I’m just conjecturing on most of this.  I have a hypothesis (Facebook is more relevant, reliable and informative than Twitter) and I’m trying to persuade you.  Instead of taking the time to find solid arguments, I’m going to be lazy and give you my reasons.  Namely, Facebook makes stuff prettier and people spend more time on it.  Quickly (I’m imaging only 2 people make it this far in the post – if you’re one of them, leave a comment to prove my point), I’ll explain why I think this.

Facebook really does understand link sharing like no other.  That’s why things go viral on Big Blue.  Would Bon Qui Qui or the Bill Cosby Southern video be so popular without Facebook?  Not a chance.  As humans, we’re visual creatures.  Men included.  Really – you thought iJustine was famous for her tech thoughts? (checkout picture above if you’re not sure who I’m talking about).  When you share a link on Facebook, you get the option to include a photo or embed the video from the site – right onto your post.  Facebook single handedly turned the internet beeper (link SHARING), into an iPhone (link EMBEDDING).  Forget clicking off-site…you can watch the video with even scrolling down the page!  The result is a smorgasbord of funny videos and philosopher-wanna-be’s – not to mention all of the Facebook-specific posts (pictures, updates, relationship updates, etc).

(via The Oatmeal – click image for post)

As a result, people spend an unholy amount of time on the site.  Scrolling through my phone contacts (which are linked to Facebook profiles), I rarely come across an entry that does not have a Facebook.  My grandparents are on Facebook (and I’m beginning to think they are on more than I am).  Last year, my self-righteous history professor ripped the 100+ person class for not protecting our Facebook accounts.  Later that day, I looked him up and read all of his updates from the past 2 weeks.  Not interesting (he’s a jerk on Facebook, too), but still something that needed to be done.

My point is this: people love Facebook, and that bright red notification icon makes us feel good.  Twitter is great (heck, I wouldn’t have my current job if it weren’t for the site), but it doesn’t compare.  Short or long run.  To borrow geek speak, it fails hard in comparison – which is why, I believe, it’s on it’s way out.  In the past few months, it’s become nothing but a delayed instant messaging account and story teller.  I, Ryan Bowen, have become  a TwitterTween.  All hope is not lost, though.  I’m still clinging to the fact that I don’t know a single top 40 song.  Seriously.  I looked it up.

Rybo’s Top 10 Ways to Get Facebook De-Friended

We all have them – those Facebook friends who just don’t seem to get it.  Whether it’s posting pictures of their drunken vomitting or sending you 50,000 Mafia Wars requests, we all know a guilty party.  With a little peer pressure and embarrassment, maybe we can get them to stop.

So without further ado, here are (in no particular order), the 10 best ways to get defriended (at least by me) on Facebook.

Checking in EVERYWHERE.

I honestly don’t mind the occasional check-in update from FourSquare or Gowalla.  However, when I log in and am greeted by every place you have visited in the last 3 days, we have a problem.

‘Sentences’ like: “m3 & g0D boUt 2 giT tIgHt liK3 cRediT cArD dWn $tRiPPa b00Ty”.

True story.  Really happened.  Honestly, though, we’re still friends because her statuses are so entertaining.

Tagging me in “which one of your friends this best describes” pictures.

I’m not a Pokemon.  I’m not an Amstel Lite.  I swear, the next person to tag me as an alcoholic beverage, cartoon character, or sex position gets blacklisted.

Posting garbage on my wall.

I treat my Facebook wall like I treat my car (I can stick whatever I want on it) and like you should treat my fireplace mantle – don’t post anything you wouldn’t want Grandma and the family to see when they come over.

This also applies to Mafia Wars, Farmville and Restaurant City requests.  It’s bad enough I have to deal with those stupid requests – don’t post that ish to my wall.

Excessive swearing.

I strongly believe there is a time for harsh words.  Dropping 10 F-bombs per status not only makes you sound like an internet 9th grader who just got his heart broken, but it drains you of any respect and credibility I may have once granted you.  Refer to previous item when contemplating this nonsense on my wall.

Religious Views:  “God.  2Pac.  Lil Wayne.”

We get it – you have no morals, you’re an internet thug, and you just made it to high school.  Stop being an idiot.  On a related note, I’d love to sit down and discuss how you can serve both God and Weezy F Baby at the same time.

Self-Taken Pictures.

There are a few reasons as to why anyone in their right mind would post dozens of self-taken mirror shots to Facebook.  Political correctness would restrict me from detailing any of these…but when have I ever adhered to that anyway?

  1. You are vain.  This applies to 90% of the shots.  If you have…um…assets and want to show them off, please do so in the privacy of your own home and not via a self-taken shot from above.  Don’t forget we can still make out your muffin top.
  2. You are trying to create an online identity.  The sad fact is that by taking a picture of yourself in a flat-brimmed hat holding stacks of money and a toy AK-47, you’re actually negating the very imaging you’re trying to put off.
  3. You’re in 7th grade.
  4. You’re in 8th grade.
  5. You’re in 9th grade.

Please keep in mind that one or two self-taken shots is OK.  However, if you have an album entitled “ME (t00 pRe$H! <3)” that contains 55 photos of yourself…it’s time to quit.

Druuuuuuuuunken picturessssssssssssssss.

Rule:  If you were too drunk to remember it, we don’t want to either.

Liking every page you see.

If a page’s title is a conversation or full-out thought, please do not clog up my wall.  You’re not as deep as you think you are.

Changing your name every 3 days (or having a ridiculously stupid middle name phrase).

I know “Swaggalicious” ain’t the middle name yo’ momma gave you.

*Honorable Mention:  Calling me an ape.

Yes, this has happened to me before.  Tip:  if you want to stay fake-Facebook friends with someone, don’t publicly refer to them “picking bugs out of [their] hair”.

As an afterthought, I’d like to say that I love writing posts like this for a few reasons. First, they don’t require too much thought, and the research/work done to publish is usually pretty entertaining. Also, these posts generally get the most traffic, and they look like they took a lot of effort (due to pictures or formatting, they’re usually a lot longer).

Lastly, I’m a pretty sarcastic and cynical person.  Posts like this, while they might not gain me much tech credibility, allow an outlet for that type of unhealthy thinking.

Building Brand Identity Through Custom Short URL’s

It’s no secret that Twitter has revolutionized link sharing.  Sure, there are other ways to send links out to your friends (email, Delicious, Facebook, etc), but never before has it been so easy, quick, or had the potential to be seen by so many.

In the same manner that Facebook power-pages like Big Prize rely on user-sharing, the practice of “Re-Tweeting” updates on Twitter can make your content visible to unknown hundreds.  The main thing standing between you and this unreached, information-searching population?  Brand identity.

In regards to social media, there is a myth that one must be easy going and personable when sharing links on Twitter.  That’s just not true.  While it is often the best approach, there are many web giants (blogs, news sites, and corporations) that use Twitter to great success without a personal approach.  This is often partly due to fame but often, it’s because they have created a great brand identity – one that is trusted by the masses (see Google, Mashable, etc).

So, how do you create brand identity in 140 characters or less?  One of the easiest ways is to have your own custom short URL – especially if you do lots of link sharing.  Until recently, users were limited to a small selection of short url sites –,, etc.  While these services provide great usability and features, they don’t provide the end-user (i.e., the one clicking the link) the comfort of knowing what exactly they are clicking.  Obviously, the best method is to have created an online identity that is trusted – though this is becoming less and less important with account hacking and spam.

Apart from the simple cool factor, having your own custom URL can help establish a trusted online identity – whether you are a power blogger or simply an everyday link-sharer.  For you to post the link, you must have had access to both your shortening service AND Twitter.  Hopefully this will help ensure others that they aren’t clicking spam.

There are a few options (most of which I have tried), but the easiest to set up and maintain, at least in my opinion, is YOURLS.  The best thing about this service is that it’s self-hosted – meaning if the YOURLS site ever gets shut down, your links will still work. It provides great traffic statistics and sharing options as well.



What You Will Need:

  • Domain Name – preferably something short (I chose
  • Webhost
  • Database

Installation is easy.  Simply follow the steps below and you’ll be sharing links in no time.

  1. Purchase your domain and set up hosting.  If you have a Deluxe account at GoDaddy, you can just host the domain on your account and point it to a new folder.  If you do this, make sure you are hosting the domain and not simply forwarding it to the folder – otherwise your URL’s won’t work!
  2. Set up a SQL database.  If you have a hosting account, there’s a good chance you have a few extra databases you are allowed to create.  Simply choose a name, login username and password.  Remember this information for step 4.
  3. Download YOURLS from Google Code.
  4. Unzip this folder and navigate to includes/config.php.  Open this file in a text editor.  Fill in the following information:
      your MySQL username
      Example: 'joe'
      your MySQL password
      Example: 'MySeCreTPaSsW0rd'
    • YOURLS_DB_NAME: The database name
      Example: 'yourls'
      The database host
      Example: 'localhost'
      The name prefix for all the tables YOURLS will need
      Example: 'yourls_'
      Your (short) domain URL, no trailing slash
      Example: ''
      Timezone GMT offset
      Example: '-5'
      Private means protected with login/pass as defined below. Set to false for public usage (on an intranet for instance)
      Example: 'true'
  5. Save config.php and upload all of the files to the directory you created.
  6. Navigate to – and you’re ready to start short-linking!

Window Cling Giveaway!

wallgraphicsIt’s that time again. I like to reward techPadawan (formerly RyboMedia) readers by occasionally hosting giveaways for cool prizes. Thanks to a blog sponsor, that’s easy.

This month’s giveaway is from As the name suggests, LFP specializes in banners, large posters, and other sorts of wall graphics. Whether your company needs a wall graphic of the logo printed up, or you just want an attractive, large sticker to keep someone’s mouth shut (kidding!), this product from Large Format Posters will do the trick.


  • (1) 24×24 Adhesive Wall Graphic
  • Shipping: FREE UPS Ground Shipping
  • Eligibility: Limited to US Residents only
  • Must be 18 or older to enter

The winner will be chosen on April 26th at 8pm – so you’ve got 2 weeks to enter!  As always, there are multiple ways to enter.

To be eligible, just post a comment below letting me know what you might want printed.  You can earn extra entries (1 each) by subscribing to the blog, ‘sharing’ the Facebook status, following me on Twitter, or tweeting the giveaway – just be sure to let me know in your comment!  If you decide to tweet about this, try to use “@rybo” and “#techpadawan” in your update.

Good luck!

Galactic Empire State of Mind

Generally speaking, I don’t do too much link sharing on the blog.  I tend to save that sort of thing for Facebook and Twitter.  However, I couldn’t resist this time.

Now, I realize I haven’t blogged in a while.  School is getting hectic and my side project is starting to take off.  I don’t want to turn into one of those bloggers that slows down blogging, only to come back once every 4 months to post an announcement about the latest Apple product.

Anyway, someone sent this to me a few days ago.  Since then, I’ve watched it 8 times.  Fantastic.  The Star Wars geek in me is satisfied, and the shockingly *good* rap verses nearly make me squeal in white boy excitement.  Enjoy.

The Good Radio Station

As is my bad habit with many social networking sites, I signed up for a account some time ago and never really used the service.  I tend to just plug in my iPod or pop in an audiobook if I’m sitting at a computer for a while, so I thought the whole internet radio thing wasn’t for me.  I was wrong.

Before going any further, let me say that I realize I’m behind the times.  Like 90% of the posts I write, I’m bringing old news, reviews and haikus.  I have actually yet to bring a single haiku to the blog – but that will change.  Anyway, I know there are people who have yet to discover some of the cooler things the internet has to offer.  And that is why I write.

For those that don’t know, is a website that allows you to listen to customized internet radio stations.  Simply pick a band, song or genre tag and you’re good to go.  From there, you can fast forward, love or ban tracks from your station.  Every artist you play is automatically added to your library, and tracks how many times you have played each artist and song, as well as how many playlists and “loved” songs you have.


If it sounds a lot like Pandora up to now, this is where it really takes off.  First, is much more user-friendly and user-fueled than Pandora is.  Users are much more interactive, thanks to things like tagging artists and songs, voting on band photos and analyzing friends listening compatibility.  Sure, knowing who listens to the same music as you isn’t a huge deal.  But it is cool.  Take Lucy, a local friend who is a junkie.  Upon adding her as a friend, I saw this:


Incredibly useful?  Maybe not.  But still neat.

If you’re not sold just yet, I’ve saved the best for last.  Thanks to my friend (and past guest blogger) Jimmy,  I’m now scrobbling.  With a few clicks and a little piece of software, you can start scrobbling too.

Scrobbling is what makes so great.  Basically, it crawls through your iTunes library (or Windows Media Player library) and your iPod to gather information on your listening habits.  Check out a list of supported devices here.  Once completed, it adds this information to your online account.  It’s a great way for new users to quickly build a large library.  If you use the Audioscrobbling software, you can synchronize your listening with your account automatically, so as you listen your songs are displayed in your online account and immediately added to your library.

To sum up, you should try it.  It’s real swell.  Check out a few more screenshots below or get up some courage and dive right in.

library audioscrobbling

Desert Island Wave!

If you’re a regular reader, you saw my feeble attempt to persuade and change the world a few weeks ago…and here we go again. This time, let’s keep it light.

The inspiration for this post came last night, while sketching in my blackbook and watching The Office. More specifically, I was watching “The Fire”. In it, Dunder Mifflin employees must think of ways to pass time while they wait for a small fire to be put out. Enter Desert Island. I thought it would make a cool blog post.

So here are the rules. I will name a few categories and list the top 5 things in that category that I would bring to a deserted island (or imagine you can only use the following for the rest of your life). You will do the same. On your blog. And send me an email or trackback so I can read it! For my game, a full season of a show counts as one DVD and a 2 disc audio set counts as one cd. Let’s begin!


  1. Empire Strikes Back
  2. No Country for Old Men
  3. Hustle and Flow
  4. Little Miss Sunshine
  5. Scrubs Season 6

I’m young.  I’m allowed to be shallow.

Music CD’s

  1. Weezer’s The Blue Album
  2. 2Pac’s All Eyez On Me
  3. Dave Matthew’s Live at Fenway Park
  4. Brad Paisley’s 5th Gear
  5. Flipsyde

What can I say?  I could listen to Jim Dale all day long.


  1. Harry Potter and the Deathly Hallows
  2. Star Wars: Dark Forces
  3. Father Gilbert: Dead Air
  4. The Westing Game
  5. Harry Potter and the Sorcerer’s Stone


  1. Ender’s Game by Orson Scott Card
  2. The Scarlet Letter by Nathaniel Hawthorne
  3. The Fellowship of the Ring by JR Tolkein
  4. Harry Potter and the
  5. Brave New World by Aldous Huxley

Board(ish) Games

  1. Mancala
  2. Chess
  3. Scrabble
  4. Risk
  5. Monopoly

For all my designer friends, assume you were restricted to using only the following for the rest of your life (#000 & #FFF are freebies).


  1. #00BBEE
  2. #FF77FF
  3. #FFBB00
  4. #DDDDDD
  5. #444444

For now, that’s all I’ve got.  So, if you have a few minutes, play with me!  Copy and paste this template or come up with your own.  Add lists (writing utensils, sports equipment, etc) or take away lists.  Have fun with it.

Look forward to seeing your choices!

RyboMedia: 2009 Year In Review

I’m not going to lie – 2009 has not been a great year for me.   Both semesters this year have been pretty tough, relationships have gone awry, and I’ve experienced the ups and downs that everyone goes through.   BUT I’ve met some really cool people and made some lifelong friends.

I think if I had to put a label on this year, I think it would be “friends”. I’ve met some good ones and gotten a lot closer to some old ones. They’ve helped me a lot this year, and I’m very blessed to have such a great group.

I guess I’ve learned that it’s not always fun to learn.  In a lot of ways it’s been a rebuilding year…breaking me down and hopefully building me up stronger.  In times like that, we can take comfort in the fact that even through the hard times, you’re learning something.

A good friend of mine from high school was killed towards the end of last year.  After our senior year, we would talk occasionally, but she moved and so I did not hear the news until the beginning of 2009.  Throughout the past year, though, I feel like it’s taught me to appreciate those that you love, because you never know if they, or you, will be there tomorrow.  My grandfather shared a great quote with our family a few years ago.

“Treasure those you love, and tell those you treasure now, because you never know what tomorrow will bring.”

I urge everyone who reads this to follow this advice – it can mean a lot to those you love.  Now, on to more happy things!

If my count is correct, I’ve written 151 posts in the last year.  WOW.  That’s crazy.  I think that the blog has grown a lot since last year in terms of maturity, depth, and importance.  Instead of short, link-sharing posts about whatever I stumble across (I now have a Twitter account for that!), I’ve tried to write longer, slightly thought-provoking posts.  Obviously that means there won’t be as many, but hopefully you have (and will) enjoy them more.  Throughout the last year, the website has undergone some design changes, we’ve now got a pimpin’ mascot, and things are rolling somewhat smoothly.

So, if you will let me, I’d like to highlight a few of my favorite posts really quick – just in case you missed anything.

The Switch: Windows to Ubuntu

“…Within one hour of using Ubuntu, I was slamming my head on the table, wondering why I had been so stubborn in not trying it out.  Sure, I had to install a few drivers, go through 236 updates (even though I had 8.1, it was a touch outdated), and I’m still working on wireless (Broadcom is messing me up – any help?), but it is, in a word, AMAZING.”

Introductions, OpenDNS, and Project Euler

My first guest post, written by my good buddy Breland Miley.

“I have no idea how I should start this off, but I’ll give it a shot. My name is Breland, and I’m a new blogger here on I go to college with Rybo, and after meeting at a first year book experience of all things, we found out the we had some friends in common and that we were both pretty much computer geeks. I’ve been messing with computers since I was about five and my fascination with them has grown by leaps and bounds over the past several years. I’ve participated in programming competitions (FBLA) and won first place in nationals. My favorite programming language is probably PHP, only because I know it best, but I have experience in many others.”

3 Films from Last Year You Missed and Shouldn’t Have

My second guest post, written by Daniel Thompson.

“There are so many films that come out in a year, it’s almost impossible to avoid seeing a few that were a waste of your time and missing a few that were worth your time.  While I’m sure you saw the big budget summer films like ‘Iron Man’ and ‘The Dark Knight’, and you probably made it out to a few award winners like ‘Slumdog Millionaire’, I can guarantee you missed a few of the more underrated films of 2008.  Don’t worry, I’m here to help.”

7 Sites in 7 Days

The link here is actually to the whole list of the 7 sites that I chose for this campaign.

The “Twitter is Narcissistic” Refute

By far one of the most popular posts of all time on this blog.

“…Ok, so Twitter was built to help friends and colleagues stay connected.  Now let me explain why I find Twitter so appealing….”

Getting to the Core of the Apple Problem

The most read, commented on, and hated on post I have ever written.

“I hate that guy.  You know exactly who i’m talking about.  Sipping his latte on a couch at Starbucks, Macbook propped on his lap, iPhone vibrating at his side, a $200 messy haircut, and an assortment of grungy, but not too grungy, clothes.  He turns to me, a smug look on his face.  Depending on which friend it is, he’ll describe some application he’s just discovered, a podcast he’s just recorded, or a website he’s just designed – all using his trusty Mac.  Without fail, in a somewhat sadistic, most definitely condescending tone, he’ll end with, ‘See, Apple stuff is just better.  Vista sucks.’ “


I had the pleasure of attending my very first web conference this year.  Here are the summary posts of what the speakers talked about.

Of iPhones and Gnomes…

“Big Prize. If you’re on Facebook or Twitter, there’s a good chance you’re somewhat familiar with the name. Whether you check the fan page every hour, are constantly confused by the odd little sayings your friends write on their wall, or your Twitter homepage is sprinkled with #moonfruit tweets – you’ve seen the name.”

Computers, People, and the Fact That I’m Selfish

You see, computers appeal to me in a maniacal way that people don’t – I can manipulate them, create an idea and mold them into what I want them to do. I can put as little or as much time into them and receive a directly proportionate amount of joy from the results. I can have a problem (even something as simple as boredom) and make something to solve it. And what’s best, the selfish part of me can come out saying, “I built that. I made it, you didn’t, I rock.” It might not be the best, it might not help anyone else in the world, but it’s mine and I’m proud of it.”

Spotlight at NecessaryCool

Chances are, you’re probably wondering why you’re reading about some random guy when you could be reading about all things cool. Jef told me a little while ago that he would like to have me help kick off the new “Spotlights” feature of NC – where you get a little glimpse of what some fellow bloggers do on their own sites.

Basically, RyboMedia is a blog about all things tech, geeky, or internet related. I write about awesome internet companies, design tips, blogging tricks, web conferences I have attended, and even some controversial pieces. Oh, and I do occasional giveaways. How’s that for concise?”


My third guest post by Jimmy Sawczuk (and one of the most popular posts on the blog).

“We ran into a problem at work last week that was, at the same time, a nightmare and exactly the kind of problem you want to have. The culprit was our latest Big Prize Giveaways promotion, and the problem was that our app had metaphorically gone from 0-60 in about two seconds, and it experienced the same thing your neck feels when it accelerates that fast: whiplash. This was my first experience with an app that was this big; even in my McJournal days, I rarely averaged more than 60,000 (well, take that number and divide by 10,000 and you have the real number) hits per day. So in the last week, I’ve learned a ton during our march to a million fans that I think can be useful to everyone, no matter how close your app is to that kind of scale.”

My Columbia Twitter Revolution

“Now here’s the important part.  I’m one person.  I can’t do this alone.  For this to catch on, I’m going to need lots of help.  It’s going to take getting used to, but I think if it ever does take off it could serve very useful.  Think about it – a live list of tweets to keep you constantly informed on traffic problems, breaking news, local food deals, and weather alerts.  All for free.”

100 Things I Love On the Internet

“This is the 200th post on RyboMedia (hence the 200 “o’s”).  To celebrate this milestone, I’ve put together a list of 100 things I love about the internet. Why not 200? Read until the end and you’ll see. Enjoy!”

And that’s it, y’all!  Hope you enjoyed.  I am looking forward to the new year.  I have a new guest post lined up that I think you will really enjoy, and I have another big review of an awesome website coming up soon.  Stay tuned, and have a fantastic new year!