UserJS: Twitter-Rounded

I’ve thrown together a quick script for Opera that you can use if you’d like to see rounded corners (aka border-radius). It seems that Twitter currently sends Opera a style sheet with empty settings for rounded corners…

…so, all I did was write a script that will insert a link to a style sheet that’s stored here at kyleabaker.com which overwrites these empty styles with the correct ones.

If you’ve never used scripts before then you should first learn how to setup UserJS. After you’ve setup Userjs, you may need to enable UserJS for secure pages (https) in Opera’s internal configuration page….”opera:config#UserPrefs|UserJavaScriptonHTTPS“. Just check/enable that option. Make sure to click save!

Lastly, save the “Twitter-Rounded” script to your UserJS folder that you setup in the steps above.

Now you have a more pleasant looking Twitter page in Opera 10.5. πŸ˜‰

WP-UserAgent and WP-TwitterBadge

I’ve just pushed a few updates to my WP-UserAgent and WP-TwitterBadge plugins. If you’re already using them then you should be able to update via your WordPress Admin area shortly.

If you’re not using them yet, feel free to browse around and check into them!

Dropbox has File Smarts

I’ve noticed after uploading several files that Dropbox is now smart and can do an md5 hash check on other files that have been uploaded to their server.

How does this help you? Well, I’ll explain soon, but if you’re downloading a file that someone else has already downloaded and synced with Dropbox then it helps you tremendously!

Basically, Dropbox checks to see if anyone has previously uploaded theΒ exact same file in the past. If they have then you’re in luck!

If the md5 hash matches (I’m purely guessing that they use md5 since it’s the commonly accepted standard for file checking) then they simply “copy n’ paste” what someone else has already uploaded into your personal upload space!

This means that the 347mb file that you want to sync could take 10 seconds to be synced with your account even over a dial-up connection if someone else has already taken the time to upload it for the first time!

If you’re the first person to upload your file then you will certainly have to wait the due time for a proper upload, so don’t expect it with every file.

This is an ingenious move by the Dropbox team as it saves them tons of much needed bandwidth performance and instead pushes the workload to the server side “copy n’ paste” routine…which will perform much faster than your dial-up or simple broadband connection.

Imagine the speed of uploading a 10mb file to Dropbox verses copying that same file from one folder on your hard drive to another folder on your hard drive. That is similar to the performance that you can expect.

It also obviously saves you time since you can sometimes drag n’ drop a large file…blink…then it’s done.

Don’t worry, your files are safe. Chances are slim that someone will upload a file that matches yours in filename and md5 hash code, …but it could happen.

It’s been proven that the md5 hash is insecure, but the chances of someone uploading a file that is recognized as one of yours is very very…(repeat as needed)…very slim.

Honestly, the biggest thing to worry about is the fact that if you delete a private file, someone else could happen to upload a file matching the filename and md5 hash and automatically have access to a file that you uploaded ages ago.

I’m current unaware of how long Dropbox caches the files that you store using their service, but I know that some files that I’ve uploaded in the past and deleted now have been removed from the server…so security is fairly assuring.

While it’s a little creepy and it sounds dangerous….it’s highly improbable.

On the Dropbox teams side, saving bandwidth means that you have that much extra bandwidth to upload content that you need sync’d. Bandwidth is very important these days especially considering that many of us are uploading videos (whether they be family or leisure) and music. Many of these files can range from 3mb for music up to 10gb for video (and blu-ray will bring even higher filesizes :P).

Of the sync services that I’ve used (and it’s been a lot so far), Dropbox is by far the front runner. With the features that they offer that you’re not normally aware of, they already pass up the competition hands down. That’s just my own personal opinion.

I’m currently on the free service (2gb), but I would highly suggest that you purchase their pay-for service that gives you up to 50gb of online storage if you’re one to upload a lot or need a lot on the go.

At the very least give them a try and download the Dropbox application. I’m sure anyone could take advantage of the free 2gb package that they offer online to backup important documents or whatever it may be. πŸ˜‰

Rest assured that if you’re using Dropbox then you’re also using one of the best available sync services to be established thus far! Free space never hurt anyone. πŸ˜‰

Google Wave + Maintenance = ..Day at the Beach?

So I recently noticed a small box at the top of my Google Wave account that mentioned something about being “offline”. I knew this wasn’t true, so I clicked the simple “Connect now” link in the same box.

With no success, I decided it would be easier to just close the tab and go to the address again (as this fixes Gmail sometimes).

Here is what I was presented:
gwave-maintenance

At least their maintenance page has some moving clouds and rolling waters…unlike Twitters. πŸ˜›

If you’re looking for a Google Wave invite, I’ve still got some left!

Free Google Wave Invites!

If you want a Google Wave invite, sign-up for Dropbox using my referral for free. After you’ve completed the registration and installed Dropbox I’ll send you an invite! It’s as simple as that!

Note: If you’ve previously installed Dropbox then the referral may not work if you try using an e-mail address that is already in their system or if Dropbox has been used on your computer previously.

After I get an e-mail informing me of a successful referral then I’ll immediately send you an invitation to Google Wave! πŸ˜€

I currently have 06 invites left! So hurry!

Pandora Internet Radio + Last.fm Scrobbling

Recently I started using Pandora Internet Radio again (I hadn’t used it in ages) to stream various genres of free radio tunes online. Pandora has a wide selection of genres to choose from and comes as a free and a premium service.

pandora

The free service is all I’m looking for and I’m willing to wait for short advertisement breaks from time to time. If you aren’t patient enough for the short pauses in your tunes or just utterly hate advertisements then you can get the premium service for just $36 a year. This is actually a very affordable deal when you break it down to only $3 a month or just $0.75 per week, especially if you use it regularly.

There are plenty of other free or pay for Internet Radio services or services that just let you pick tracks specifically to listen to. If you interested in those then take a look at Slacker, Dora.fm, Deezer, Napster Web Radio, AccuRadio, iLike, Blip.fm or even streaming from the select tracks that are available at Last.fm! There are many others available as well, but for now I’ll only get into Pandora. πŸ˜‰

I’ve been using Last.fm for nearly two years now scrobbling tracks from my computer via Windows Media Player and Rhythmbox in Ubuntu. The list of audio players that now support scrobbling to Last.fm is far to long to post here, but if you find one that won’t scrobble by default then chances are someone’s written a plug-in to do just that.

One plug-in, or add-on/extension rather, that I recently came across is called LastFM Firefox Extension. This is a nifty little extension that allows you to scrobble tracks from various listed services with Pandora being one of them.

last-fm-firefox-extension

After installing the LastFM Firefox Extension you’ll notice that it ties in nicely with the other extension icons you may use frequently (pictured above is Firebug, Greasemonkey, LastFM Firefox Extension).

You can get a quick glance at the currently playing song without ever leaving your current tab or having to scroll through tabs to find it in the tab title. Right from the icons you can Favorite or Heart the tracks you like. This will favorite them automatically on Last.fm for you rather than making you manually go to Last.fm to do this. You can also tag songs with any tags that you feel fit that specific song using the Tag icon (I personally haven’t found a good reason to use this yet, but you may know of one!).

To get started with this extension, it currently comes in two flavors: Stable and Beta. I don’t typically promote Beta software, but in this case, you’re far better off using the Beta rather than testing your hit or miss luck with the current Stable.

The steps to get this extension aren’t drawn out very well without a bit of digging, but I’ll guide you through:

  • Login to your Last.fm account and join the LastFM Firefox Extension group (this is mandatory).
  • Depending on your luck you may be forced to wait up to 24 hours before you’re granted permission to install the Beta version. It’s well worth the wait (1 day isn’t that big of a deal is it?).
  • After joining the LastFM Firefox Extension group on Last.fm you will need to download the Beta version from the official extension page. It may ask you to verify that you are authorized. This just means you must be in the group on Last.fm and you probably need to of been in the group for 24 hours or more.
  • Once you get the extension installed simply go to Tools -> LastFM and enter you credentials so it can scrobble your tunes!

Depending on when you come across this post, LastFM Firefox Extension may or may not still be in Beta. Feel free to use the current stable version if you prefer to avoid Beta software. Enjoy scrobbling those tunes!

WP-TwitterBadge v0.2 Released

After taking some time to track down a bug that seems to only affect Internet Explorer 6 (why on earth did I bother?) I’ve finally released an update that fixes the error.

After getting several comments about users experiencing errors with this plugin while using IE6 I finally gave in and patched the little bug. Why are they still using IE6?

…well, it works fine now…as far as I know. I’ve had a few people test it with no errors as well as myself, so hopefully if you couldn’t use it before it will work fine now.

To find out more about this WordPress plugin, go to it’s main page. You will find all released versions there (past and present) as well as a link to the official WordPress Plugin page. Feel free to leave feedback!

WP-UserAgent v0.9 Released

I’ve just released an update for the WordPress plugin WP-UserAgent. The update changelog is as follows:

v0.9

  • Added detection for Venenux GNU Linux and Oracle Linux.
  • Added detection for Laconica and MovableType trackbacks.
  • Cleaned some of the code for trackback detections.

You can find out more about WP-UserAgent as well as a download from the main page.

New: Netflix Watch Instantly Timer

I’ve just posted a User Javascript file that allows you to get a quick glance at the total time that you’ve spent watching Netflix Watch Instantly programs.

netflix-watch-instantly-with-userjs

So far I haven’t had enough time to make the script Greasemonkey compatible, but it should be shortly. For now, it works great with Opera.

Thanks to @fearphage for helping me get this sorted out with Greasemonkey as well!

Head on over and grab the script so you can keep tabs on how much time you spend watching tv…online…on netflix. πŸ˜‰

Finally updated to phpBB 3.0.5

After weeks of postponing the phpBB 3.0.5 update, I’ve finally gotten around to installing it on my BimmerMania.com forums.

I’ve not been very impressed with phpBB since I first started using in way back when the 2.x branch was the latest stable.

Now that phpBB3 has been bombarded with spam, I’ve been forced to try new anti-spam measures.

I’m very disappointed in their community support for this issue, but I was able to find a great post that covers several options. It’s entitled Preventing Spam in 3.0 and it’s been the best sort of spam solutions I’ve found for phpBB3.

If you’re having problems with spam bots on your phpBB forums, then I would highly suggest that you look into these solutions and pick one that works for you.

In the meantime, I’ll be waiting for phpBB to release some sort of solution to all of this and become as reliable and stable as WordPress has been.

Easy theme and plugin (a.k.a. mod) installs, updates and uninstalls would also be highly appreciated. As well as a one click automatic update system for phpBB itself.

phpBB still has a long way to go before it will be as friendly as the current WordPress admin panel, but all of this manual work isn’t enough to convince me that a better solution is available…so I guess I’ll be sticking with phpBB3 for a while.

Why Browser Sniffing is a Bad Idea

For many web developers, browser sniffing has become almost routine. Have you ever noticed that short list of “supported web browsers”?

While browser sniffing may seem like a good idea at first, you may be setting yourself up for problems later.

The biggest problem with browser sniffing is that it is usually relied on far too heavily to even consider removing later. The inner workings of a site can be based (unknowingly sometimes) around working specifically for specified web browsers and nothing more.

One poor use of browser sniffing that I came across today was for EyeWearSelect.com and it just so happens to be an easy fix.

On one of the EyeWearSelect pages, they show a thumbnail preview of a pair of glasses. Below the image is a link entitled “Click to Enlarge”, which uses some javascript to show you a larger picture in a pop-up window. Here’s how they begin the pop-up script..

if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}

Basically, the script says…true or false…this is Netscape? Also, true or false…this is Microsoft (Internet Explorer)? ..but what if you’re not using Netscape or Internet Explorer? What if you’re using Opera? or Konqueror?

If you’re using a browser that doesn’t match Netscape or Internet Explorer, then the future checks for isNN and isIE will never match and your browser will be “incompatible” with the scripts. In this case, the incompatibility is that the author never made it possible for those that are compatible.

A simple fix for this would be to change that bit of code to the following, which would basically check for Internet Explorer and then treat all others differently..

if (parseInt(navigator.appVersion.charAt(0))>=4){
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;
var isNN=!isIE;}

They won’t always be this easy for developers to correct, but this script could actually be cleaned up much more than just that.

In most cases, browser sniffing isn’t needed. The more efficient method to follow is capability testing.

If your code requires a web browser with capabilities that others (or not all web browsers) have, then you can use browser sniffing which is a form of hard coding the compatible web browsers…or you can test the browser’s capabilities and see if the javascript that you need to use will be supported.

By using the second method, you make your script much friendlier to the future of both the web and it’s browsers. You will also save yourself some work by not having to update the script each time you want to support another browser that would already be capable of using your script if it weren’t blocked in the first place. πŸ˜‰

If you run compatibility tests and find that a certain feature will not be available, that’s the time to announce that the user should update their browser or use a different one all together.

Of all of the times that I’ve seen browser sniffing, only a couple have every been properly used. One of those was a browser sniffer that would display instructions and images explaining how to download and save a file to your computer. The images were of course specific to the browser that I was using for a more useful set of instructions.

If you should happen to come across a web site that suggests that your browser is not compatible, fire off an email and let them know that you would appreciate more accurate scripting and detection for your web browser let them know that you would appreciate more accurate scripting!