Archive for May, 2008

Tagging Done Right

Tuesday, May 20th, 2008

Google Image Labeler Logo It’s not for everyone, but the Google Image Labeler is the best tagging application I’ve ever seen. It does a great job of filtering out spam by matching you with another human being to concurrently tag items. This avoids any sort of oddities with linguistic issues such as car vs. auto because both people have to use the same lexicon. This is crowd sourcing at it’s best.

A similar system could be implemented using caching to hold submissions for sites with significantly lower traffic than Google (that’s pretty much all sites right?) Once an image is tagged by 2-3 individuals, it could be “accepted.” Determining who’s who of course becomes the challenge, but a mixture of IP, user names, session information or any other number of “fingerprint” type technologies could help narrow it down to a reasonably accurate representation. Additionally, you could expire words after a predetermined time. Additionally, the concerns of spam may be trivial since 20 character tags are hardly helpful for spammers promoting products. Of course Google’s method avoids all caching all together by only letting live posts associate with the image.

Google Image Labeler Screenshot

The other thing Google does is make tagging a game. While this is hardly sufficient to help people get motivated to actually use the application for long periods of time, it’s a good effort and it can be addictive. Points are awarded to folks as the complete matches, giving them little actual value beyond seeing their names on a Google top 5 leader board (if they make the cut).

Opera Mini 4.1: Big Improvement

Tuesday, May 20th, 2008

Opera Mini Last night I downloaded the full release of Opera Mini 4.1 and so far I have to say I am impressed. The new URL location bar works like a typical browser which is great! The new integrated download is fantastic too. The application feels faster, but I’m lacking in any data to support that claim. I was able to upload a small image to Flickr so it all seems as advertised.

There are some things that still don’t work though. You still can’t select a page URL within the application and say mail it to a friend. Also, WordPress 2.5.1 doesn’t seem to work fully because of AJAX issues. Generally, if the site/app your accessing is AJAX based, it won’t work. The input fields in forms still require clicking on them to bring up the input interface. JQuery library doesn’t seem to work correctly either, in fact support under 4.0 seemed better.

I also found the constant permissions nagging about accessing the local device content frustrating. That’s no fault of the software, but rather the applications permissions. However, the dialog from the phone often was unreadable due to a UI glitch. Blindly selecting “Yes” seemed to power through it. Opera should provide a guide to users installing the application so they can get assistance navigating the sea of permissions when installing. If you’re like me, still without a full browser bundled with your phone, I strongly recommend taking a look at Opera Mini.

Mobile Data Connectivity Options

Monday, May 19th, 2008

Computer World Mobile Wireless Logo Brian Nadel recently wrote a nice article comparing broadband service from the big three wireless carriers, AT&T, Verizon and Nextel. Normally I have good connectivity within my house through my local cable carrier and don’t mind paying for airport WiFi once in a while. I’ll be traveling to the Northern Virginia area in the next month and want to have a broadband connect card as an option for connecting wirelessly. The $300/night hotel I’m staying in doesn’t offer free WiFi, instead it’s a $10/day T-Mobile hotspot. Add that together with the fees from the airport (Boingo) it comes up to a hefty $80 for internet service while away from home for a single week!

AT&T Fail Logo In Brian’s article he mentioned that AT&T had an $80 option for those adverse to a 1 or 2 year commitment. Intrigued I stopped by my local AT&T store and was given a bunch of misinformation that differed even from the information I was able to read on the AT&T site. 2 calls to AT&T later I was still unable to get the $80/month plan mentioned. I asked my sales consultant if there was an option to add it onto an existing line of service which could be upgraded and downgraded as needed based on my travel patterns and still no luck. At least a 1 year commitment is required. I was able to get an offer of a month to month with no discount on the card plan (which is to be expected) for $29.95/month with a 10Mb data allowance. Unfortunately the overage charges are outrageous ($0.06/kb). A single webpage might end up costing $2 to $3 to view!

There are companies that are catering to my more specific needs - a short term “rental” but they’re making a hefty profit on the service. I found two services, one which I wouldn’t even think about giving my credit card information to. The other, Rovair, seems to have a nice product offering, comparable with purchasing WiFi cost wise - but of course with the added convenience of your own dedicated connection.

Carrier 7 days 14 days 21 days 28 days
Rovair $12.93 $10.33 $7.80 $6.27
Cellhire $14.99/day $12.50/day

Verizon and Nextel only offer plans with contracts as well. Verizon does have a 1 year options and Nextel locks you in for 2. So now I’m back to considering my options with pay as you go WiFi and spotty EDGE connectivity through my paired Blackberry and probably the most economical - going without <shudder />.

Homer Simpson in CSS

Monday, May 19th, 2008

Saw this posted on Digg and found the idea facinating for 2 reasons. First, that cartoon characters can obviously be rendered by colors and letters. The second is the number of technology hours spent creating content based on the Simpsons!

Erik as a Simpson\'s Caracter Fox did a great job with the Avatar creator which they launched with the movie last summer and since then I’ve seen Simpson’s avatars everywhere online. A version of me is right.

See the original animated CSS version (mine is just a screenshot) so you can see the composition take shape or the original author, Roman Cortes’ work.

Where is Photosynth Now? Silverlight

Monday, May 19th, 2008

I was very impressed with the Photosynth technology when I first saw the TED video online late last year and recently was discussing this with some folks who hadn’t seen it. I wanted to capture this and to see where the technology has progressed to now that it’s owned by Microsoft.

One thing I noticed was the similarity of the image effects engine in Silverlight and Photosynth. The Hard Rock Cafe demoed their implementation of a massive graphic presentation during Mixx (I think) and launched their own 257 image memorabilia exploration tool tool which looks VERY MUCH like the Photosynth tool demoed at TED. I’ve found the performance of the application to be sluggish even over broadband, but it is a nice way to explore such a large dataset.

Microsoft’s Labs site has the Photosynth demo online for XP/Vista users only. I am really more interested in seeing the impact of the 3D modeling software that was demoed in the second half of the video. Unfortunately my 1st generation MacBook Pro and Vista install wouldn’t cooperate and run the demo.

Silverlight is fully supported on the Mac (even using Safari). For now I’ll have to be patient and hopeful. The visual effects engine and massive image set pieces have been integrated with Silverlight. Perhaps Silverlight 3 or some other future version will bring in the 3D visualization components.

It’s All In a Roll of the Dice

Friday, May 16th, 2008

White dice Sitting in an airplane recently I began thinking about roll playing games and how they’re slowly gaining popularity on Facebook and MySpace as MMOG’s (Massively Multiplayer Online Games for those who don’t know). Basically the game engines of Dungeons & Dragons etc are simply extensions of more conventional game dynamics from simple board games. Specifically I began thinking about RISK and how the odds change based on the number of armies you bring to the fight.

So sitting in that airplane, I created a PHP class to play around with the odds and how things come out using classic risk weighting. First I created a simple class to roll a six sided die and then expanded it so many instances could be created representing virtual dice. I then created a roll method which will take an optional parameter to handle multiple dice (say 2 dice with 6 sides each common in many games). Last but not least I created to classes for actually rolling an opponent vs. defense, vs() and risk(). The risk class returns a Losses object with the number of units defeated in battle.

Have Fun!

I should note, I’m not the first person to be curious about the odds of Risk or other games for that matter. Google returns over 3.4 Million results for “risk odds”, but I wanted to call out a few that do a nice job of explaining the whole idea here, here and here.

class Dice {
	private $s = 6;
 
	// General constructor
	function __construct($faces = 6){
		$this->s = $faces;
	}
 
	// Returns a roll based on the sides of the dice being thrown
	function roll($dice = 1){
		$total = 0;
		while($dice){
			$total += rand(1,$this->s);
			$dice--;
		} 
		return $total;
	}
 
	// Uses a classic risk model that rewards putting more troops in play
	// removing the 3/2 limit if desired.
	function risk($of = 3, $df = 2){
		$losses = new Losses();
		$dl = 0; $ol = 0;
		$dt = array(); $ot = array();
		for($i=$df; $i>0; $i--){ $dt[] = $this->roll(); }
		for($i=$of; $i>0; $i--){ $ot[] = $this->roll(); }
		rsort($dt); rsort($ot);
		while(count($ot) > 0 && count($dt) > 0){
			if(array_shift($ot) > array_shift($dt)){
				$losses->defense--;
			} else {
				$losses->offense--;
			}
		}
		return $losses;
	}
 
}
// Helper class to pass back the losses from a risk roll
class Losses{ var $defense = 0; var $offense = 0; }

Who’s Data Is It Anyway?

Friday, May 16th, 2008

DataPortability Logo Data portability has been a hot topic as of late. What I think everyone has neglected to consider is who owns which bits of data. For example, my email address is mine. I choose to give it out to friends, family, associates that I want to be able to contact me. That doesn’t, however, mean that it’s also theirs to use how they see fit.

For example, if you’re my friend and you wish to download your social graph to port it to Hi5, Ning or somewhere else, you should be able to do that. However, that doesn’t mean you can take my email, phone, physical address etc with you. What needs to be preserved is our association, not my data. This could be achieved by a public identity such as OpenId and a UUID value tied to each user - ideally the solution would be easier to create so even my mother could do it. Conversely, your data should be able to be ported to the new network without interference from Facebook, MySpace or anyone else.

What makes this discussion difficult is shared property. Consider a tagged photo on Facebook for a minute. I’ve taken the photo which includes you. To make it more complicated, let’s say you tag yourself in the photo. I still own the photograph, it’s even protected under US Copyright law should I choose to exert my rights. But you’re in it - and you want to use it as a profile picture… what to do? This type of shared relationship requires permission in my opinion. Since we’re friends, you know if I’m likely to grant you permission or not when you ask. This process could easily be automated. This could even be automated to the less vague bits of information such as contact information (email, phone, address etc).

Twitter Noise

Friday, May 16th, 2008

Today marks a milestone for my Twitter usage. I tweeted my 1,000th tweet. What does that mean exactly, well, honestly not very much. However, as I scanned over the last 2-3 hours of tweets when I woke up this morning I noticed the increasing number of flame wars between thought leaders in technology frustrating. A feed of 20-30 tweets might contain 5-6 messages back and forth between folks who are in some sort of pissing contest about who’s right, wrong, cool or whatever.

It’s kind of sad.

As everyone struggles to really figure out how to effectively use Twitter it becomes hard to determine the best method for leveraging the technology effectively. I’ve been using it to keep up on industry insiders thoughts (which is probably why I get so much noise and childish banter in my feed). Others use it as initially intended, to tell folks what they’re doing and yet more for shameless self promotion.

I’d love to see more quality information from the industry visionaries who could all take a lesson from @jowyang and @guykawasaki and less banter about who’s right and who’s wrong. Guy and Jeremiah, and I’m sure many others, somehow keep above the fray and still add value to my Twitter experience.

JavaScript Color Pickers

Wednesday, May 14th, 2008

Color Picker Tool From ColorJack Recently I needed a color picker for a project and spent a little bit of time reviewing JavaScript color picker tools for integration in the application. What I found was a wide variety of tools that are either hard to implement or hard to use. That aside, there were a few that were reasonable and so I’m calling them out here should anyone need such a thing. It should also be said that there is a lot of room for improvement in the utility space should anyone want to take a stab at improving color pickers.

The most intuitive tool for non PhotoShop users is the one provided by ColorJack. The layout is typical of PhotoShop but without the RGB, CMYK and other color models being in the foreground. Those tools, while useful to designers and production shops, are meaningless to application users. The hue slider is intuitive and easy to use and the picker works in all browsers. What I did find complicated about the picker was it’s ability to easily integrate into a form that might require multiple color selections (such as a layout editor) and the Dynamic HTML placement was unreliable. It did have the least technical feel though ultimately making it the easiest to use. jQuery users be warned, you may need to tweak some of the code as there’s overlap. The widget includes the core functions it requires.

Color Picker Tool from John Dyer

My personal favorite is from John Dyer who provides a clean PhotoShop like implementation. While I’ve not had the opportunity to use it on a site, and therefore have no experience with the level of difficulty integrating it, I have a feeling this will find it’s way into many administrative tools I’ve got on the roadmap over the next few months. The look at feel is clean and simple and the code is structured in a logical. I’ll likely be working to combine his code into a smaller package that I can easily add as a method to my input classes for the task (much like the tool below from WebReference.

Color Picker Tool from WebReference - PS Like

The last color picker I want to call out is a detailed article on how to build useful picker from WebReference.com. It integrates cleanly multiple instances on a single form and has two different “modes” one as a simple scale (seen below) and another as a photoshop like tool. Obviously with a little time, this would be easy to modify to suit your needs (assuming you wanted to take away either the PhotoShop gradient or the color strip).

Color Picker Tool from WebReference - Small Strip

What none of these tools do is help with making good color choices. While I offer a tool to assist in finding some level of color harmony leveraging complementary colors, It would be neat if one of these tools let you find a set of colors based on the color wheel. Use mathematical operations, it’s possible to determine clash, complementary, split complementary, analogous, monochromatic and so on. Perhaps it’s time for a re-write of that tool?

© 1998-2008 AF-Design, All rights reserved.