brandontreb.com Tips And Resources For Software Consultants

Great List Of Algorithm Programming Tutorials

Recently TopCoder.com posted a list of algorithm tutorials from some of their “top coders”.

The tutorials are very comprehensive and pretty much sum my undergraduate computer science degree up in one page :) This page is a great resource for anyone that does any amount of coding…

Some of the tutorials include:

  • Greedy algorithms
  • Various sort and search techniques
  • Data structures
  • Graph theory

Here is the link to the Top Coder Tutorials:

http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static

Reblog this post [with Zemanta]

XCode Shortcut

When in XCode on a MacBook Pro, doing a 3-finger swipe up will switch between the .h and .m files.

⌘-option-up will do the same thing

Productivity++

Reblog this post [with Zemanta]

Programming Tip Of The Day #2 – Difference Between i++ and ++i

To some, this should seem a bit obvious and if I am insulting your intelligence by discussing it, I am sorry. But, one of the main reasons I want to discuss this topic is, I was asked this question in a job interview for Lockheed Martin.

What is the difference between i++ and ++i?

The answer is actually quite simple.

i++ first evaluates the value of i and then increments it

++i increments the value of i and then evaluates it

Here is a brief example to demonstrate what I mean.

// Example: i++ 
$i = 5;
echo "The value of i is " . $i++ ;
// Output "The value of i is 5"
// i = 6
 
// Example: ++i 
$i = 5;
echo "The value of i is " . ++$i;
// Output "The value of i is 6"
// i = 6

So, now if you are ever asked about this in an interview, you will have a response.

Happy programming!

Programming Tip Of The Day #1 – Ternary Operator

So, I though I’d start this series called Programming Tip Of The Day to write about useful things I come across in programming. Both to educate my readers and as a personal archive of ideas and tips.

I will kick it off today with a quick rant about the ternary operator. I <3 the ternary operator. It’s quick, efficient and saves a lot of ugly code.

For those of you who don’t know, the ternary operator is made up of 3 elements: The condition and two results. It is of the form:

(condition) ? (result if true) : (result if false);

This is much nicer than an if statement. So here is a brief example about how a ternary operator can replace an if-statement.

if-statement

<code class=’c’>if(isSnowing) {
    iMustBe = "cold";
} else {
    iMustBe = "warm";
}</code>

Same thing using ternary

<code class=’c’>iMustBe = isSnowing ? "cold" : "warm";</code>

That is so much easier to read (IMHO). You can even do clever things in printing. Here is a small example in PHP for using the ternary operator when doing an echo.

<code class=’php’><?php
  echo "I am a ".((height > 72) ? "tall" : "short")." person!";
?></code>

Most languages support the ternary operator. Check out this wiki page if you want more info.

Happy programming!

Mac OSX Tip: Hotkey To Hide/Show the Dock

While mashing the keyboard (as I often do when debuggin poorly written outsourced code), I stumbled upon a very useful OSX hotkey.

⌘-option-d

This command will cause the Dock to go in and out of auto-hide mode.

Not the most useful, but very helpful to geeks like me who rearrange their desktop every day.

Increase Your Twitter Following Using Your WordPress Blog

twitter_bird

Download TwitPop Now

TwitPop is a WordPress plugin I wrote with one goal…To make you more popular on Twitter. There are sites that spring up from time to time claiming to get you more followers on Twitter if you follow X amount of people on the follow train. Well, now you can create your own Twitter train on your wordpress blog and really get more followers.

The best part is, you add your username in the admin panel and EVERYONE FOLLOWS YOU! Think of the possibilities… You could be a Twitlebrity.

To add to the excitement, everyone that uses your TwitPop plugin will Tweet a link back to your blog. This promotes your blog as well as your Twitter account. Check out how TwitPop works below.

Instructions

Log in to your Twitter account below. You will automatically follow the people that have visited this page before you (no more than 20).

Then, your Twitter username will be added to the list and you will be followed by the next 20 people to use this plugin.

[twitpop]

Download TwitPop Now

First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack.

George Carrette [1990].

PHP Class To Interface With Many URL Shortening Services

With the explosion of Twitter and such services, the need to have long URLs shortened has drastically increased. Naturally, many services to shorten URLs have sprung up as well.

Most of these services (that are worth using), have some sort of API that will allow developers to send a long URL to them, have it shortened and then returned. This type of service allows other developers to write applications that have the ability to shorten URLs right inside of them.

Recently, I had to write a PHP class to work with URL shorteners. So, I made it support multiple shortening services and have decided to share it with you.

The class is called URLShortener.class.php and it supports the following shortening services:

  • j.mp (bit.ly)
  • tr.im
  • TinyURL
  • is.gd
  • u.nu
  • Linkyy
  • Your own custom shortening service

Here are some examples of how to use the class in your own applications:

<code class=’php’><?php
     /* Basic: */
     $s = new URLShortener(‘tr.im’);
     echo $s->shorten("http://brandontreb.com");
     
     /* Using API Key and Login */
     $s = new URLShortener(‘j.mp’);
     $s->login = ‘brandontreb’;
     $s->APIKey = ‘R_2a413ebd15254a72b500ec2ce83f982d’;
     echo $s->shorten("http://brandontreb.com");
     
     /* Custom URL */
     // Just make sure you put %s and it will be 
     // replaced with the long URL
     $s = new URLShortener(‘custom’,
        ‘http://b1t.me/api/shorten.xml/%s’);
     echo $s->shorten("http://brandontreb.com",false);
?></code>

You may download my URLShortener PHP class here.

Feel free to leave any questions or comments in the comments section.

Programming

99% of students that were in my CS degree program

99% of students that were in my CS degree program

Image taken from abtrusegoose

$13 Dollar Discount On Programming Books From Manning Publishing

manning-logo

The publishing that I’m writing the book for is having a huge Friday the 13th sale. They are offering a $13 discount on all of their books. For those of you who don’t know, Manning publishes all of the “In Action” books.

All you have to do is go to the site and enter the coupon code:

fri13

when checking out and you will get the discount. Although my book iPhone In Action 2nd Edition hasn’t been released yet, Manning has some other killer programming books for sale.

So be sure to check it out!

Money You Might Be Missing Out On – LinkShare API Integration

logo

As you may know, I am the developer of the site FreshApps.com. One thing we had been doing to make some extra money is to use Linkshare to be an affiliate for Apple.

If you don’t know, Linkshare is a service that allows you to become an affiliate of thousands of companies. You simply select one of the companies products, get the linkshare link, and put the link on your site. Now, every time someone clicks that link and makes a purchase, you will get a percentage of the revenue.

The Problem

The only problem was, we have thousands of apps and converting the links manually seemed like such a daunting process. So, as you can imagine we converted around 10 links and never looked at it again.

Well, earlier today, the designer of the site JJ Mancini, asked me to check and see if linkshare had an API. I checked it out and sure enough, they did and it was no more complex than interfacing with a URL shortening service. So, I wrote the script and within minutes, all of our downloads links were converted into something that can now make us some revenue.

The Solution

Now that I have created the script, I figured I would pretty it up and share it with you. Keep in mind, the script is stupid easy, so if I am insulting your intelligence by showing it, I apologize.

<?php
    /* linkshare.php */
 
    // Your linkshare API token
    $token = "89705XXXXd11ab28ae548bXXXX4ad6475279faXXXX65da0ec8ed77XXXXeb067";
    // Apples Merchant ID
    $mid   = "13508";
 
    $linkShareLinks = array();  
 
    // I assume links in an array of links to the app store
    foreach($links as $link) {
        $linkShareURL = "http://feed.linksynergy.com/createcustomlink.shtml?".
            "token=$token&mid=$mid&murl=$link&mt=8&buylink=yes";
        $linkShareReturn = file_get_contents($linkShareURL);
 
        if(stristr($linkShareReturn, "click.linksynergy.com")) {
            array_push($linkShareLinks,$linkShareReturn);
        } 
    }
 
    print_r($linkShareLinks);
?>

And that’s it! The variable $linkShareLinks will now contain all of the App Store links converted to your account’s linkshare url. If you have any site with that contains ads for apps in the app store (review site, developer blog, etc…), you would be crazy not to integrate with linkshare.

Give it a try, and feel free to ask questions in the comments section.

Object-oriented programming is an exceptionally bad idea which could only have originated in California.

Edsger Dijkstra

Was Jesus A Real Person? Great Article On Digg Today

The culture of Digg is generally very liberal (to say the least). That is why I was very surprised to find one of the top stories of the day entitled ”Was Jesus A Real Person?”. Obviously, the comments section of the article was full of people arguing about the matter.

I found the article to be quite well written and made a stellar case for the existence of Jesus. So whether you are a believer or not, you should check it out. Take a look for yourself and let me know what you think.

Article Link

New Alice in Wonderland Poster Is Sweet

Very stoked for this movie. Photo source ign

TweetPress Now Supported By Twittelator Pro

For many of you this is old new. But since it’s latest release, Twittelator Pro has supported TweetPress as one of the options for Photo Posting. Here are the steps to configure Twittelator Pro:

  1. First, make sure you have TweetPress installed on your WordPress blog by following the installation instructions here
  2. Tap the Settings tab
  3. Select WordPress from the dropdown under Choose Photo Service
  4. ** **Tap **Other Services **(you should see the WordPress logo) and then tap **Tweetpress for iPhone **
  5. ** Enter in your WordPress credentials
    1. Site Link: The URL of the hompage of your wordpress blog
    2. Username – your wordpress username
    3. Password – your wordpress password
<img class="alignnone size-full wp-image-364" src="http://brandontreb.com/wp-content/uploads/2009/10/p_480_320_B39E129D-6327-41C5-94DE-474D13974ED7.jpeg" alt="" width="200" height="300" /></li> 

  * Tap Done</ol> 

You should now be good to go. Any time you choose to post a photo to your Twitter stream, it will use your TweetPress plugin on your WordPress blog. Please let me know if you encounter any issues or have suggestions for Tweetpress.

I have been in contact with developers of other popular Twitter clients and hope to get Tweetpress integrated in them soon.

[][2]

<div style="">
  <a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-text="TweetPress Now Supported By Twittelator Pro" data-url="http://brandontreb.com/tweetpress-now-supported-by-twittelator-pro"  data-via="brandontreb" data-related="brandontreb:">Tweet</a>
</div>

Post Photos To Twitter From Your WordPress Blog With TweetPress

twit

That’s right. With the latest release of TweetPress (version 1.1.1), you can post photos directly to Twitter from your WordPress blog’s gallery page. Here are the steps to do it.

  1. Navigate to the TweetPress admin Settings > TweetPress
  2. Enter your Twitter username and password
  3. Press the Save Twitter Settings button
    1. TweetPress will verify your username and password with Twitter
    2. If they are incorrect, it will let you know and you must re enter them
  4. Navigate to your gallery page
  5. You should now see a form that has a text box and an upload button
  6. Click browse to find an image on your computer to post
  7. Enter your Tweet in the box
  8. Click Post

It’s very quick and easy. If you have any suggestions for TweetPress please contact me, or leave comments in this post.

TweetPress coming soon to a Twitter Client Near You

TweetPress is the WordPress plugin that gives you total control and ownership of the photos you post to Twitter, sending your traffic back to your own blog, instead of a third party site

I just finished development of this WordPress plugin and Andrew Stone of Twittelator has integrated it into his latest version of Twittelator Pro. As of this post, that version is still in review, so you will have to wait until it is approved to make use of TweetPress.

I have some other very big plans for future releases of TweetPress and if you have any feature requests, feel free to drop me a line. I will do a post as soon as the latest version of Twittelator is approved and demo how it integrates with TweetPress.

iPhone In Action Book

iphone-in-action

A couple months ago, I was asked by someone on Twitter if they could “introduce me to someone”. I found this question a little odd so I responded with “like a girl or a developer?”. I often tweet about my wife, so I was hoping he was not referring to a girl. He replied with “no, someone at Manning Publishing, they are looking for an author for their book iPhone In Action”. So, I was put in contact with Manning and they eventually offered me the position as one of the authors on the book iPhone In Action.

iPhone In Action is a book (that is already out) and details how to program for the webkit as well as the native iPhone OS. I will be removing the webkit chapters, updating some of the dated chapters, and writing about 6 new chapters related to OS 3.0.

I will be posting about the book and my progress along the way (don’t worry I won’t stop my random tutorials about Twitter, WordPress, etc…). Just wanted to share that and say go out and buy the book (in December when I am finished and will get the commission :) ).

Happy Coding!

Displaying Your FeedBurner Subscriber Count Anywhere – PHP Coding Tutorial

feedburner-logo1

If you are a serious blogger (and I’m sure you are), you probably track your RSS subscribers with FeedBurner. If you don’t, you should be. One thing that has always bugged me about FeedBurner is if you ever wanted to display the number of subscribers on your blog, you were stuck using their image. The image looks like this:

I’m sure you have seen this logo everywhere. Well, not too many people know it, but FeedBurner actually has a very simple API that allows you to just get the subscriber count so you can display it however you would like.

So rather than being limited to this boring icon, you can display your live subscriber count anywhere on your blog. If you are feeling adventurous, you could even super impose it on to your own custom image using the GD library (tutorial to come if sufficient interest, post in the comments if you would like to see it).

Let’s get started…

1. Activate the Awareness API Inside Of Feedburner

Log in to FeedBurner. Click the Publicize tab and the click Awareness API. Finally, click Activate. The service is now enabled.

awareness_api

2. Write The PHP Code To Interface With FeedBurner

There is a lot of data that you could potentially get from FeedBurner, but the code below will just show you how to get your subscriber count.

All you need to do is make a simple GET request using CURL to the URL https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=brandontreb . Of course replacing brandontreb with your feed’s name.

<code class=’php’><?php

$url    = "https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=brandontreb";
$ch     = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch); 
curl_close($ch);        
if ($data) {
    echo $data;
    preg_match(‘/circulation=\"([0-9]+)\"/’,$data, $matches);
    if ($matches[1] != 0) {
        $subscriberCount = $matches[1];
    }
}

echo "Join the other $subscriberCount people and subscriber to my RSS feed."

?></code>

This code is pretty straight forward with a little trickiness to parse the XML. We first make a CURL connection to the URL. Just replace brandontreb with the title of your RSS feed inside of FeedBurner.

Next we print the data. Note: You won’t see the data in your browser unless you do a view source. Since it is XML, your browser will treat it like HTML and not display it. So, we do a preg_match for the element circulation and get it’s value. (Pretty sick right?). The value of our subscriber count will be at index 1 of the matches array.

Then, we just print the subscriber count and voila!

Now, you are no longer a slave to that generic FeedBurner subscriber count icon. Be sure to check out their API for other cool things that you can do with their web services. If you have any questions, feel free to leave them in the comments section of this post. Happy Coding!

Easily Create And Manage SQLite Databases With A Firefox Plugin

If you are doing any Mac, iPhone, HTML5, etc… developement, you have probably had the need for an sqlite database. So, you fire up your Terminal and start manully typing commands to do CREATEs and INSERTs.

You soon realize that this sucks and wish you had something like (shudders) PHPMyAdmin to manage your database. Well, now you do and it’s actually a lot less hiddeous than PHPMyAdmin.

Using the SQLite Manager plugin for Firefox, you can quickly CREATE, MODIFY, and DELETE sqlite databases visually. It’s very simple to use and makes the task of database creation a lot less painful.

sqlitemanager

Here the description from the plugin site.

Manage any SQLite database on your computer. An intuitive heirarchical tree showing database objects. Helpful dialogs to manage tables, indexes, views and triggers. You can browse and search the tables, as well as add, edit, delete and duplicate the records. Facility to execute any sql query. The views can be searched too. A dropdown menu helps with the sql syntax thus making writing sql easier. Easy access to common operations through menu, toolbars, buttons and context-menu. Export tables/views/database in csv/xml/sql format. Import from csv/xml/sql (both UTF-8 and UTF-16). Possible to execute multiple sql statements in Execute tab. You can save the queries. Support for ADS on Windows.

You can download the SQLite Manager plugin for Firefox here.

XCode Shortcut Cheat Sheet

Xcode ShortcutsThrough my travels through the internets, I have stumbled upon this amazing reference. It’s a complete set of XCode shortcut commands. Learning some of these commands has drastically improved my efficiency when developing in XCode.

As a big fan of not using the mouse (yes I’m and Emacs guy), this is invaluable. Download the full size image here. Enjoy!

Creating A Twitter Client In Objective-C Client Part 2

Creating A Twitter Client For OSX – Part 1

This is part 2 in our series about creating a Twitter client in Objective-C. In case you missed it, here is a link to part 1 of this series.

In the last tutorial I showed you how to retrieve data from Twitter and display the XML in the Console. Today, we will be focusing on sending messages to Twitter via POST. We will be implementing the code to update our Twitter status. So let’s just dig right in.

1. Updating The TwitterRequest Header File

Open up TwitterRequest.h and add the following code (Click the image to enlarge)

screenshot_16

We have added two properties. The first isPost will be true when we are calling a method that requires a POST to Twitter. This will be methods such as update_status, follow, etc… Next, the variable requestBody will hold the POST arguments that will be sent to Twitter. These will be things such as status text or friend id.

Finally, we will be adding a method called statuses_update. The reason I named it this is because that is what the method is called in the Twitter API. Like our friends_timeline method, it takes a delegate and selector to call when the request is complete.

Important: I didn’t highlight this in the screenshot but make sure you change theRequest from an NSURLRequest to NSMutableURLRequest. It will give us some additional methods to set up the POST.

2. Updating The Twitter Request Class

Open up **TwitterRequest.m **and add the following code (Click the image to enlarge):

screenshot_17

I’ll start by explaining the status_update method. We first set the global isPost property to true. This will tell the request method to make a POST. The next 2 lines set the callback stuff as we did before. The only new line here is setting the requestBody variable. This is just a string that looks like “status=new twitter status”.

The addition to the request **method is what will allow us to POST to Twitter. First, we check if the **isPost property is set. This will be true if request is called from our status_update **method. Next, we call the **setHTTPMethod of the request to POST. This is pretty obvious.

The following line let’s Twitter know the type of data that we are sending to it. Next, we call setHTTPBody to set the body of the request. At some point we will want to URL Encode this string, but that will be for a different tutorial. Just don’t use any special characters such as & and = in your update to Twitter right now. All that is happening on this line is we convert the string to NSData using the **dataUsingEncoding **method of NSString and set it to the HTTPBody.

The last line just sets the Content-Length property to the length of our string. This is needed to correctly do a POST.

3. Calling The statuses_update Method To Update Your Twitter Status

Open up ApplicationDelegate.m and add the following code (click the image to enlarge):

screenshot_03

One thing to notice here is I commented out the line to get the friends timeline. This is because having both requests running at the same time with the same request object could cause conflicts. The best way to approch this to create an entirly new TwitterRequest object. I just wanted to keep it short.

This is pretty straight forward. We call the statuses_update method the same way we called the friends_timeline method except pass in the update text. The information received back from Twitter will look something like this:

screenshot_01

It’s basically all of your personal profile information.

That’s it for today. If you have any comments or questions, feel free to leave them in the comments of this post or write me on Twitter. You can also download the source for this version below.

Twitter Mac Client Tutorial 2 – Source

Happy Coding!

Installing And Deploying Rails On A Red Hat Server With Passenger

railsI have long been a fan of Ruby on Rails and even jumper on board very early on. The one thing that has held me back from using it in the majority of my projects is the fact that it’s such a pain to configure with Apache.

I know what you are saying… Just switch to a more Rails friendly server. I like and know Apache. Not to mention I also host PHP apps.

With the (re)release of tagacloud, I have recently fell in love with ruby on rails again. So, I looked for a better solution for installation (last time I installed it was 3 years ago) and I stumbled upon Passenger.

It was super easy to use and had my running on Rails in no time.

Deployment is only a matter of uploading application files. No Ruby (on Rails)-specific server configuration required!

Just to give you some background, here are some details about my server.

OS: Linux

Distribution: Red Hat Enterprise Linux Server release 5.3 Hosted At Server Beach

Control Panel: Plesk 8.6

And here are the steps I took to get Ruby on Rails up and running from scratch

1. Install Ruby

<code class=’bash’>yum install ruby ruby-libs ruby-mode ruby-rdoc ruby-irb ruby-ri ruby-docs</code>

This will do some magic and install Ruby on your system…

2. Download And Install Ruby Gems

Head on over to http://rubygems.org/ and download the latest version of Ruby Gems. Here is an example of getting the latest version as of the posting date of this article.

<code class=’bash’>wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz</code>

Untar this file…

<code class=’bash’>tar -xvf rubygems-1.3.5.tgz</code>

Navigate to the extracted directory and run the setup script

<code class=’bash’>ruby setup.rb</code>

3. Install Rails

This will install rails. If it asks you about dependencies, just type “Y”

<code class=’bash’>gem install rails</code>

4. Install The Passenger Gem

Now that rails has been installed, we need to install Passenger. The installation process is stupid simple. Passenger can be installed via a Ruby Gem.

<code class=’bash’>gem install passenger</code>

Now, it will do some stuff and and you some questions. At some point in the process, it will check to see if you have all of the dependencies. You most likely will not. Luckily, the geniuses who created Passenger tell you the commands to install all of the dependencies. So just follow the directions and you should be ok.

5. Set Up Passenger For Apache

<code class=’bash’>passenger-install-apache2-module</code>

It will ask you more questions and install everything needed to run Passenger. Pay attention to the stuff spit out at the end of the process. You will take this and paste it into your httpd.conf file. For example, here is the what mine spit out:

<code class=’bash’>LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4
PassengerRuby /usr/bin/ruby</code>

Your httpd.conf file is probably located at /etc/httpd/conf/httpd.conf

You should now be good to go! Navigate to one of your vhosts folder (ex: tagacloud/httpdocs/) and create (or copy) a rails application.

<code class=’bash’>rails someRailsApp</code>

Then set permissions…

<code class=’bash’>chmod -R 755 someRailsApp</code>

And then a miracle happens… and viola! You (should) have a fully functional up and running. Navigate to http://domain.com/someRailsApp/public to see your app in action.

If you have any comments or questions, feel free to leave them in the comments section of this post.

TagACloud.com (Re)Launched!

tagAcloud-ad

So in 2006, my buddy JJ and I took some inspiration from the Million Dollar Homepage and decided to create a totally inovative Web 2.0 site that works on the same principle. That is when we came up with the idea for tagacloud.com.

Tagacloud is a simple concept that uses the fact that people are obsessed with stats to make a fun game that will also direct traffic to your site. Here is how it works (from the website)…

The Idea:

TagACloud is a very unique idea for a website, thus it will take a little explaining to understand all the facets. To take full advantage of the site, you must be the owner or have control over your own website. The idea is to create a tag that represents your website. A tag is a descriptive phrase or a creative tagline describing your site. Once you have added your tag, it gets added to the Tag Cloud. This is where all the fun begins.

The Goal:

The goal is simple. Become the biggest freakin’ tag on the TagACloud website. The bigger the tag, the more hits it gets. It is that simple.

How Your Tag Gets Bigger:

Your tag gets bigger every time it levels up! And the only way to get your tag to level up is by accumulating points. Points can be acquired in many different ways, but the two primary ways to acquire points are as follows:

  1. Get Clicked: your tag gets 1 point for every click that your tag receives.
  2. Incoming Hits: your tag gets 2 points for every hit you send to your tag on TagACloud.com. You can get tag specific code via your “Get Tag Code” page.

How Your Tag Gets Hits

We provide visitors several ways to find your tag:

  1. The Home Page: The home page features 200 random tags in random order.
  2. Popular Tags: If your tag is one of the 200 most popular today, the last 7 days, last month, or of all time; it will be featured in order of popularity on the applicable page.
  3. Keywords: Keywords are essential for any tag that wants to generate hits. Keywords are like user defined categories. We combine all the tags that share common keywords. For example, google.com, yahoo.com, and vanillasasquatch.com would all share the keyword, SearchEngine. Each tag can have up to 3 keywords associated with it.
  4. The Randomizer: The title says it all. A user can view a random tag’s website, or view a random keyword.

Statistics

There are 3 big addictions on the web. Without sharing the top 2, we will let you know #3, is statistics. People love to view the stats on anything and everything. Here at TagACloud, we will make sure not to disappoint. You will be able to view statistics for every little thing, to ensure that you always know the current state of your tag. You will also find the website itself is littered with stats. Just keep your eyes open.
tagacloud

As of late 2007, Tagacloud was booming with over 10,000 users. Then, one day JJ and I decided we would take a weekend and “improve” tagacloud. Now, if any of you are programmers, you know “improving” an app takes much longer than you anticipate.

We set out to do it in a weekend and the ideas started flowing. It was Facebook meets Halo 3 meets Digg meets Hannah Montanna meets Karate Kid 3… And then the weekend ended and Tagacloud would remain a “Coming Soon” page for a year and a half… :(

A couple of weeks ago, JJ and I were sitting around and thought to ourselves “Why did we ever take down the old tagacloud?”. One thing led to another and we decided to completely wipe the database and start tagacloud fresh.

So, go fourth and start leveling your tag.

New Alice In Wonderland Movie Looks Sick

I was a big fan of the game Alice that came out for PC. It def portrayed AIW as a darker sort of movie. It looks like Tim Burton will add a similar twist to the latest Alice In Wonderland Movie. Check out the trailer above.