The Social Web is Using You

The term “social web” sounds great.  A lot of people use social websites like facebook, digg, twitter, reddit, etc.  Every year more and more social websites create buttons for websites to allow users to vote, like, digg, tweet, etc for their site.

While that sounds good at first glance, after a closer look all they are doing is cluttering up websites, slowing them down, and ultimately using us to further control the web.  It’s a harsh truth to realize and some people will refuse to believe that social websites are a growing plague on the internet.  There is TOO MUCH voting going on.  With facebook’s release, web developers have NO CHOICE but to add the button.  How could we possibly ignore 400+ million users of possible exposure?

To Facebook this is a big deal to spread their empire, but to me it’s just another friggin button that I need to consider adding.  If you think about it, it’s no different from any of the other buttons!  They all do the same thing.

The tech websites HAVE to cover it because it’s a facebook announcement.  ReadWriteWeb, Arstechnica, TechCrunch have to create their top 5 articles on what “LIKE” means for the web because they can’t ignore the 400lb gorilla.  The seemingly limitless web is being controlled by a select few websites and there is nothing you can do but accept it and try to make the best of it as you can.

I did NOT want to add the facebook button to FantasySP, but I have no choice and neither do you if you want more traffic.  We are at their mercy.


Directv Multi-Room DVR (Beta) Review

Directv users have wanted multi-room ability to watch their recorded shows from their dvr on other hd receivers.  Well, now it’s possible.  The Multi-Room DVR beta is probably already on your HD-DVR receiver. Go to your setup menu and look for “multi-room”.

Before I get to how multi-room performs, I *think* the multi-room beta is only available on the black colored receivers (HD and HD-DVR).  If your regular HD receiver is beige, chances are you don’t even have an ethernet port.  If I am wrong, post in the comments to correct me.

Setup Process

The setup process is incredibly easy.  Your HD-DVR and regular HD receiver need to be connected to your router. (If you are out of router ports, I highly suggest buying a 100/1000 8port Dlink switch.  )

Next up, go to the multi-room menu on your HD DVR and opt in for the beta.  It will take a minute or so to begin sharing.  You have the option to name your receiver so you can easily identify it.  On your regular HD receiver, click opt in for multi-room.

That’s all there is to it.  Easy enough, right?


When selecting “List” for your hd receiver, you’ll notice a bit of a delay (especially the first time).  It’s nothing too serious.  When navigating the listing of recorded shows, you’ll also notice a bit more lag than normal.  The most noticable lag happens when you start to play a show.  I’d say it pauses for about 3 to 5 seconds.  However, once the show begins to play, it’s a different story and there is no performance issues at all during my testing.

Fast Forward/Rewind

I was expecting some major lag, but I was pleasantly surprised that it wasn’t too bad at all.  There is SOME lag, it doesn’t fast forward as fast as being on the actual DVR box.  I tried the 30 second skip 5x and the 4X fastforward and it had noticeable lag from both pressing the button and fastforwarding.  This shouldn’t be a surprise to anyone and it is manageable.

Bottom line: Overall Directv has done a pretty good job at sharing over your LAN to multiple receivers.

Pricing starts at $3 a month.  Some things to keep in mind however.  I suggest using a router with AT LEAST 100mbit speeds.  My particular linksys router is gigabit, but I do not believe the Directv receivers support gigabit connections.  Someone else will have to double check that.

Have you joined the beta as well?  Reply in the comments about your experience.


I introduce to you, a new way to rant

It occurred to me that a lot of people have things to rant about. Your first option might be to rant on twitter or facebook, but you “sort of” know those people. Those sites aren’t anonymous and you sure as heck aren’t going to waste your time creating a blog. Enter NerdRANT.

NerdRANT is a bit different than a normal website.  Right off the bat you’ll notice that the box to post a rant is on the top of every page, kind of like Twitter.  It needs to be EASY and painless to complain, right?

Second, you’ll notice that there is no “sign up” button.  There is a sign in button.  Instead of wasting your time with yet another sign up box, NerdRANT authenticate’s users from other services such as Google and Twitter.  All you have to do is already be logged into these things and allow NerdRANT to populate some basic user info.

I know what your thinking.  If It’s grabbing your info, how the hell is posting anonymous?

Each user has the option of submitting a rant or comment with 3 different display names.  Yes, each user is essentially 3 users in one.  You can submit a post based on your userid #, location, or real credentials we collected.  By default, its based on number.  It’s up to you which display name you’d like to use.

If I see a decent amount of people using the site then I will be adding more features.  Until then, rant.


The perl module DateTime could not be installed

For those of you experiencing the sporadic error “[checkperlmodules] The perl module DateTime could not be installed”, there is hope for you! Over at the cpanel forums they have a simple suggested fix that seemed to work for me.

SSH to your server and type in:

/scripts/perlinstaller --force List::MoreUtils

Reply back with your comments if it did or did not work for you.


jQuery 1.3+ Autocomplete, The Newbie Guide

This is my first jQuery guide specifically for newbies who either don’t have much experience with jQuery or just need to see an example to understand it. The more examples you read, the better off you are at developing your own stuff.

For those of you hoping to see jQuery UI 1.8’s autocomplete, sorry to disappoint you. I tried to use their new autocomplete built in feature, but was unsuccessful using their new plugin. The autocomplete plugin I will be using was created by Jörn Zaefferer and can be found here.  Even though he has several examples, I still couldn’t figure out how to achieve the autocomplete I was looking for.  My guide also has techniques borrowed from 1300 grams.  My goal is that this guide will be newbie friendly so just about anyone can pick it up from here.

For this example we will be using similar code from FantasySP to search for baseball players. (If you haven’t heard of FantasySP, its a fantasy sports news aggregator that collects player updates from dozens of sites to give you an edge when managing your fantasy team.) When typing a name we want to see what team he plays for and his position:

Let’s take a look at the input box that is used to achieve the autocomplete:

MLB Player Search

Nothing too complex going on here.  The autocomplete=”off” is to make sure the web browser’s autocomplete is disabled.  Now onto the jQuery function. (Unfortunately syntax highlighting won’t be used because it screws with the code. No idea why.)

$(document).ready(function() {

$('#player').autocomplete("/tutorials/autocomplete/auto_complete.php", {
dataType: 'json',
parse: function(data) {
var rows = new Array();
for(var i=0; i
rows[i] = { data:data[i], value:data[i].pos, value:data[i].team, result:data[i].value };
return rows;
formatItem: function(row, i, n) {
return row.value + ' ' + row.pos + ' ' + +' ';
extraParams: {
q: '',
limit: '',
maxRows: 15,
term: function () { return $('#player').val() }
max: 25,
width: 200

Things get complicated when it gets to parse:. Essentially all it’s doing is taking the returned JSON response and organizing it an array so it can be manipulated. I am adding two new JSON values that need to be manipulated, pos and team. They are listed like so: value:data[i].pos, value:data[i].team. The section where it says result:data[i].value is what is returned into the input box when it is selected. We don’t want pos or team included in the box, so we simply use .value.

Next up is “formatItem:”. This is what adds extra styling to the results. It’s fairly straightforward, we are using the same values that were just added to the array in the previous function.

“extraParams:” are the added variables that will be passed to the PHP script. We have q, limit, maxRows and term. q and limit are set to blank because I won’t be using them in this particular example.

Now the easy part is the PHP function:

$var = mysql_real_escape_string(strip_tags($_GET['term']));
$sport = 'mlb';

if($sport == 'mlb' && strlen($var)  >= 1){

	$result = mysql_query("SELECT * FROM players WHERE sport = '$sport' and hisname LIKE '%$var%' LIMIT 25");

	while($row = mysql_fetch_assoc($result)){

        $row_array['pos'] = $row['pos'];
        $row_array['team'] = strtoupper($row['team']);
        $row_array['value'] = $row[hisname];



echo json_encode($return_arr);

That is all there is to it folks! Check out the barebones demo. It shows the necessary javascript files needed and syntax highlighting.

If you are great with jQuery and would like to rewrite the javascript function to work with the jQuery UI autocomplete, be my guest. I will glady link to your post or append the code to this post.

jquery php

jQuery vs Prototype, a newbies perspective

When I first started to dabble with javascript and ajax, Prototype was the only game in town that was making any headlines. So of course I used prototype with .  I was able to make some simple stuff, but my coding with Prototype wasn’t very elegant and it certainly wasn’t the best way to code things.  But you know what, I’m a javascript newbie and  it worked!

Over the last few years it seems like Prototype development has slowed down a lot, while jQuery is making huge headway.  Every tutorial I see is using jQuery.  So I FINALLY decided to buy a book and learn it.  They are vastly different to say the least.  My prototype code had an awful lot of onclick=”” kinda stuff inside the HTML, while jQuery let’s your code appear more transparent and natural.  I love being able to pass my own variables using html attributes.

I went through a lot of WTF, why isn’t this working moments during my first attempts at coding using jQuery techniques.  However, overall I love jQuery.  Now my code is optimized, cleaner, and I feel as though I am not limited in what I want to do.  If I can dream it, I can code it with jQuery.  Not a small feat for someone like myself.

For example, with Prototype I simply didn’t know how to show a loading gif when an ajax command was in use.  It sounds simple and a lot of you are probably thinking what an idiot.  I turn to jQuery and my first attempt I find that it’s so simple to achieve.  Not only that but I can easily manipulate form values, check their validity,and pass them along with no problem at all.

To learn jQuery I completely rewrote all of my javascript code for FantasySP.  It took me about 2 LONG weeks, but now I feel as though I can code just about anything I want.  My code is a mere 7kb in size now, compared to 49kb in Prototype.  I am actually making reusable functions now and you can too.

My only quibble with jQuery is that coding an advanced autocomplete function is a huge pain in the ass.  Prototype let me customize it from the backend (PHP), whereas jQuery forced me to use JSON and adding extra javascript code.

So for those of you who haven’t used a framework before, or are still using Prototype, give jQuery a try.  You won’t be disappointed.

apple rant

Thank you for DRM free music Scott Ambrose Reilly

I read a post today at c|net saying that Scott Ambrose Reilly is moving on from’s music division. I of course had no idea who he was until I read the article. Now that I know who it is, I have to say thanks for all he has done.

3+ years ago, 98% of the online digital music user base blindly and without question bought music from iTunes with Apple DRM so they could play in only Apple products. Smart business decision by Apple. ::cough:: monopoly, illegal business activities ::cough:: Of course the customers didn’t care because they had no choice. Not only that, but consumers are nothing but stupid, uninformed, lazy sheep.

Other services were out that offered music DRM free. was the first commercial music service that was DRM free and you could select the bitrate of your choice. Absolutely brilliant and ahead of its time. Of course they were sued and forced out of business (surprise, surprise). Nevertheless, it showed the way mp3 music is meant to be distributed. I never thought a major retail outlet would ever offer DRM free at reasonable prices.

Then came online music library. When I heard the news that they would be opening an online music library with no DRM at 99 cents a song I was completely amazed. How in the world did Amazon pull that off and get music labels to agree to it? What businessman had the ability to convince music labels this was the wave of the future?

Meanwhile iTunes still had DRM.

Amazon changed the game so much that it FORCED Apple to provide a DRM free alternative to customers, albeit at a cost to the consumer. Prices were over 99 cents for DRM free music on iTunes and no one seemed too outraged about it.

Meanwhile I thought to myself, only a fucking moron would ever buy anything from iTunes. I still believe that and have always thought that. I implore everyone to buy their music from Amazon whenever possible.

While I may have gone off-topic (can you blame me?), I want to come back to my original point of this article. To thank Scott Ambrose Reilly, because to me, he is the person we can thank for DRM free music today.


Change Google Chrome’s UserAgent

Many of us heard of the iPad’s new Gmail interface and want to check it out themselves.  The good news is that it’s extremely easy to change Chrome’s user agent for Windows users without an extension or anything too complicated.  Click properties on your chrome shortcut and add the following:

-user-agent="Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10"

Please be aware that using the iPad version of Gmail on your PC doesn’t make much sense because you can’t scroll down your list of emails (your supposed to be using your finger). But for those curious, it’s worth a look.