Archive for the 'Technology' Category

Understanding the difference between POST and GET

Wednesday, May 2nd, 2007

Think about that. Do you really know the difference? I didn’t. I asked myself that question when I was reading through the YUI Connection Manager library. Read here and you’ll learn all about it.

A closer look into what Google Adwords charges..

Saturday, March 10th, 2007

This is interesting, though on a small scale, it’s still relevant. I run Google Adwords (display ads on specific search terms with Google) for a service I created called WebBasedCron. A little while ago, I decided to start tracking what ads were really being clicked — i.e. when an advertisement was clicked, it would send them to a special URL (ex. www.webbasedcron.com/?action=advwbc). Then I would use PHP code like the following to record the persons IP, the date, time and their session id.

Code:
if ( $read_action == "advwbc" ) {
        $session = $user->db->quote(session_id());
        $ip = $user->db->quote($_SERVER['REMOTE_ADDR']);
        $date = $user->db->quote(date("'Y-m-d'"));
        $time = $user->db->quote(date('H:i:s'));
        $sqlInsert = "INSERT INTO webcron_google(date,time,ip,session) VALUES ($date,$time,$ip,$session)";
        $user->db->query($sqlInsert);
}

The session is important because it tells me if the advertisement was clicked in the same instance of the browser or not (when you restart your browser, you get a new session). So lets look at the results for March 9th (yesterday). I changed nothing, only hid half the persons IP address.

Code:
2007-03-09  	04:16:35  	211.30.xxx.xx  	9fbe09012f7ce71854b1e040b0b0fe3c
2007-03-09 	04:17:20 	211.30.xxx.xx 	9fbe09012f7ce71854b1e040b0b0fe3c
2007-03-09 	04:17:47 	211.30.xxx.xx 	9fbe09012f7ce71854b1e040b0b0fe3c
2007-03-09 	04:18:07 	211.30.xxx.xx 	9fbe09012f7ce71854b1e040b0b0fe3c
2007-03-09 	04:18:10 	211.30.xxx.xx 	9fbe09012f7ce71854b1e040b0b0fe3c
2007-03-09 	04:18:13 	211.30.xxx.xx 	9fbe09012f7ce71854b1e040b0b0fe3c
2007-03-09 	04:18:34 	211.30.xxx.xx 	9fbe09012f7ce71854b1e040b0b0fe3c
2007-03-09 	04:18:36 	211.30.xxx.xx 	9fbe09012f7ce71854b1e040b0b0fe3c
2007-03-09 	07:47:21 	193.71.xx.x 	 1895a2c135512d29fa7002e6a8126e65
2007-03-09 	09:51:47 	59.144.xxx.xxx 	b5c090a6f26d83b890fd2faf79c17464

You may notice, that the first 8 lines were from the same IP address (211.30.xxx.xx) clicked between 04:16:35 to 04:18:36. It’s easy to see this person got pretty click happy, clicking the ad, hitting back, clicking the ad, etc. Furthermore, the session id is the same for all the 8 clicks, which means he/she was using the same browser instance. I would expect Google to be able to detect this type of click fraud and only charge me for 2 legitimate clicks, the ones placed at 07:47:21 and 09:51:47 (not from 211.30.xxx.xx). The strange part, is I was charged for 4 clicks that day. That means of the 8 illegitimate clicks, Google charged me for 2 of them.

Believe me, at an average cost per click of $0.11, it really doesn’t matter, but I can imagine for larger companies, Google must be making a fortune off these people. Its really hard to side with Google on this, I mean if they deemed 6 of those clicks illegitimate, why not the remaining 2?? Do people really click the same advertisement 8 times in 2 minutes, with many of them 3 seconds apart? It’s easy to see that even through blatant click fraud Google shamelessly makes money.

Desensitized to Spam

Wednesday, February 28th, 2007

It’s gotten to the point, were I don’t even care about spam anymore. On my contact page, I just put my email as is — sure, I could try and hide it with something like papayiya_REMOVE_THIS@gmail_DOT_com. But really, is there any point? The spam bots have built in regular expressions that would strip away caps, underscores, etc.. GMail is generally pretty good anyway, of the 100+ spam messages I get a day, only one or two make it through the filter. Thank God for Akismet or my blog would be finished..

Yahoo Pipes – amazing, intense, awsome…

Monday, February 12th, 2007

I can’t figure out what’s better – the actual application (Pipes) or the UI component widgetry developed to make it happen. The concept is simple, then again the best ideas are.

Pipes is an interactive feed aggregator and manipulator. Using Pipes, you can create feeds that are more powerful, useful and relevant.

And that’s exactly what it is, you take feeds (RSS, Atom, etc..) and using an crazy UI, create new ones with rules and filters.
So what could you do?

This is the first official product to come out of Yahoo!’s Brickhouse and I’m sure not the last.

Friday wrap-up #4 – The Peanut Butter Manifesto

Saturday, November 18th, 2006

Update (Nov. 20 2006): The more I thought about this manifesto the more annoyed I became. This reeks of shameless self promotion. Furthermore after learning about Garlinghouse’s track record and reading Kevin Kelleher article from the TheStreet.com I couldn’t agree more:

So, now heads must roll at Yahoo!. If so, I’d like to nominate the first one: Brad Garlinghouse.

Things have been busy this last couple weeks, but nothing really that I can disclose. That coupled with things coming up prevented me from writing a wrap-up the last couple weeks.

I came across across an article on MarketWatch about the Peanut Butter Manifesto – an internal (now external) memo written by Yahoo! exec Brad Garlinghouse. After reading other reports, I learned that this has been circulating inside Yahoo for the last couple weeks now. Garlinghouse is a gutsy guy a confused fellow and actually (had) shaved a Y into the back of his head. Initially I thought this was purposely leaked as a precursor to big changes coming – after reading the memo, I think it may have been purposely leaked but for other reasons..

I’ve heard our strategy described as spreading peanut butter across the myriad opportunities that continue to evolve in the online world. The result: a thin layer of investment spread across everything we do and thus we focus on nothing in particular. I hate peanut butter. We all should.

The entire letter can be read from the WSJ.

Friday wrap-up #3

Saturday, October 28th, 2006

This was a busy week, a lot of catching up from all the time spent at CASCON last week. Continuing on from last week, I’ve gotten more intimate (?) with Dojo and its inner workings. I wrote about Dojo a couple months ago, and I’m still really impressed with everything going on there. A lot of big name sites are built off this toolkit, including Meebo.

IBM results came out last week, the System i had a rough quarter, but IBM did well overall. Last year at this time (3Q05) the System i had a break out quarter due to an upgrade cycle. This year (3Q06) there were no new upgrades and results were the same as 3Q04. This article sums things up:

IBM revenue for the System i fell 22 percent in the third quarter of 2006, or 23 percent at constant currency when compared to the same period of 2005. At the same time, nearly every other major IBM business unit saw revenue increase. Overall, earnings rose 47 percent compared to the previous year, up to $2.22 billion on revenues of $22.6 billion, which were up 5 percent.

The supply chain issues IBM faced in the second quarter of this year for System i sales, which were connected to a 7 percent drop in revenue for System i over the second quarter of 2005, have cleared up. IBM CFO Mark Loughridge noted that IBM’s supply chain did a superb job delivering System p, i, z, and storage but faltered over System x deliveries, contributing to the low rise of 4 percent for the System x. System p revenues increased 10 percent, and System z was a breakout star with a 25 percent increase in revenues while IBM delivered a 16 percent increase in System z MIPS (millions of instructions per second).

For the System i, IBM says 3Q06 compares to a particularly strong 3Q05 quarter, which was driven by upgrade activity from a fully refreshed roadmap, which in turn caused slowing revenue as customers leveraged those previous upgrades. Overall, IBM notes that System i revenue performance remains dependent upon cyclical upgrades.

I was at a Halloween fund raiser for Diabetes last night, it was a good time for a good cause. I’m amazed that no matter what type of social event I may be at, there’s always someone thats directly involved with the System i in some way.

In other news, RedHat got murdered this week in the markets. Cisco announced they would be creating a fork the RedHat’s version of Linux and providing half price support until the new year. If any good can be seen out of this, it just re-affirms RedHat’s dominance in the Enterprise Linux market.

FireFox 2 came out this week, it generally seems more responsive, but definitely not as polished as it should be. The memory leak issue doesn’t seem to have been fixed, since as I type FireFox is using upwards of 80mb memory and climbing. The new spell checking feature is great though, any work misspelled get underlined in red, right click the and suggestions appear.

How To: Making a PHP REST client to call REST resources

Friday, October 20th, 2006

A lot of companies these days (including Amazon and Yahoo!) are exposing their web services in the form of REST resources. At a high level REST is pretty easy to understand, all you’re doing is exposing a web service in the form of a URL. Users can then query this URL, through HTTP methods like GET and POST. REST calls generally return some type of XML or Object Encoding like JSON.

An example would be Yahoo!’s Geocoding API, with the following URL:

Code:
http://api.local.yahoo.com/MapsService/V1/geocode?appid=YahooDemo&street=701+First+Street&city=Sunnyvale&state=CA

I would get:

Code:
<Result precision="address">
   <Latitude>37.416384</Latitude>
   <Longitude>-122.024853</Longitude>
   <Address>701 FIRST AVE</Address>
   <City>SUNNYVALE</City>
   <State>CA</State>
   <Zip>94089-1019</Zip>
   <Country>US</Country>
</Result>

So Yahoo! exposes the Geocode URL and allows you to query this resource using URL parameters like appid and street. Dynamically building your URL to query a given resource is OK, generally that’s what people do, like the following:

Code:
$base = 'http://xml.amazon.com/onca/xml3';
$query_string = "";

$params = array( 'ManufacturerSearch' => "O'Reilly",
    'mode'  => 'books',
    'sort'  => '+salesrank',
    'page'  => 1,
    'type'  => 'lite',
    'f'     => 'xml',
    't'     => 'trachtenberg-20' ,
    'dev-t' => 'XXXXXXXXXXXXXX' ,
);

foreach ($params as $key => $value) {
    $query_string .= "$key=" . urlencode($value) . "&";
}

$url = "$base?$query_string";
$output = file_get_contents($url);

The problem here, is that REST is meant to take advantage of HTTP methods GET, POST, PUT, DELETE, etc.. When people are showing examples which dynamically build queries and call file_get_contents, the average user doesn’t appreciate (understand) what type of request is being made. Do they care? Should they care? We’ll that’s another story. Eventually though, more intense REST resources will become widely available, and it will be critical the user (developer) understands if their making a POST or PUT request.

I came across a great PEAR package the other day called HTTP_REQUEST, which among many things supports GET/POST/HEAD/TRACE/PUT/DELETE, basic authentication, proxy, proxy authentication, SSL, file uploads and more. Using this package, I got started on a simple wrapper class called RESTclient, which gives intuitive support for making REST resource calls.

So if I was going to use RESTclient to call the Geocode API above, it would look like this:

Code:
<?php

require_once "RESTclient.php";

$rest = new RESTclient();

$inputs = array();
$inputs["appid"] = "YahooDemo";
$inputs["street"] = "701 First Street";
$inputs["city"] = "Sunnyvale";
$inputs["state"] = "CA";

$url = "http://api.local.yahoo.com/MapsService/V1/geocode/"
$rest->createRequest("$url","POST",$inputs);
$rest->sendRequest();
$output = $rest->getResponse();
echo $output;

?>

At this point, you might be thinking, who cares — what’s the difference between using a loop to dynamically generate the URL or RESTclient. There are lots of reasons, first off, I can easily call the Geocode resource again using another address just by changing:

Code:
$inputs["street"] = "1600 Amphitheatre Parkway";
$inputs["city"] = "Mountain View";

There was no need to re-generate the URL. Furthermore, I’m explicitly specifying a POST request. Just as easily I can make a PUT, DELETE, etc. request on a given resource by changing the createRequest method parameters.

The class below is RESTclient. Note, I put this together to prove a point, it still needs some work if you plan on using it.

Code:
<?php

require_once "HTTP/Request.php";

class RESTClient {

    private $root_url = "";
    private $curr_url = "";
    private $user_name = "";
    private $password = "";
    private $response = "";
    private $responseBody = "";
    private $req = null;

    public function __construct($root_url = "", $user_name = "", $password = "") {
        $this->root_url = $this->curr_url = $root_url;
        $this->user_name = $user_name;
        $this->password = $password;
        if ($root_url != "") {
            $this->createRequest("GET");
            $this->sendRequest();
        }
        return true;
    }

    public function createRequest($url, $method, $arr = null) {
        $this->curr_url = $url;
        $this->req =& new HTTP_Request($url);
        if ($this->user_name != "" && $this->password != "") {
           $this->req->setBasicAuth($this->user_name, $this->password);
        }        

        switch($method) {
            case "GET":
                $this->req->setMethod(HTTP_REQUEST_METHOD_GET);
                break;
            case "POST":
                $this->req->setMethod(HTTP_REQUEST_METHOD_POST);
                $this->addPostData($arr);
                break;
            case "PUT":
                $this->req->setMethod(HTTP_REQUEST_METHOD_PUT);
                // to-do
                break;
            case "DELETE":
                $this->req->setMethod(HTTP_REQUEST_METHOD_DELETE);
                // to-do
                break;
        }
    }

    private function addPostData($arr) {
        if ($arr != null) {
            foreach ($arr as $key => $value) {
                $this->req->addPostData($key, $value);
            }
        }
    }

    public function sendRequest() {
        $this->response = $this->req->sendRequest();

        if (PEAR::isError($this->response)) {
            echo $this->response->getMessage();
            die();
        } else {
            $this->responseBody = $this->req->getResponseBody();
        }
    }

    public function getResponse() {
        return $this->responseBody;
    }

}
?>

Friday wrap-up #1

Friday, October 13th, 2006

Update (Nov. 18 2006): I’ll try and do this weekly, but no guarantees.

Last thing I want to do is write another AJAX framework, but it seems that’s the only way to fully understand large-scale AJAX development. We’ll see what happens — I’ve spent a lot of time looking into Object Notations (ON) (JSON, YAML, etc.) this past week, weighing out trade-offs between run-time extensions to server side scripts. I’ve been getting a lot of people asking for another AJAX tutorial to continue from the original — I’ll try and write something soon.

This past Tuesday, I sat in on the 3rd and final Technology Showcase my 2nd line manager had organized. This one in particular was on C, C++, and Fortran Compilers. A lot of cool stuff in the works, we even got a demo (video) of the PS3 in action.

Motivated by Ryan’s idea of KeyboardCast, I made a couple suggestions to the Target Management (Remote Systems Explorer) subproject in Eclipse, about being able to execute a single shell command on multiple servers (or targets). After some discussions, agreeing to help out in specs/code/discussions, I got sucked into testing for their 1.0 release! Ah, it was ok, I had a small commitment of 2 hours.

I finally submitted my 2nd application for a patent @ IBM. Considering the backlog at the US patent office is something ridiculous like 2+ years — I have a while to wait. The patent is for a revolutionary new type of XML Parser that a manager and I came up with — that’s all I can say about it now.

Next week is the CASCON conference. Aside from the keynotes and walk-in talks, I’ve signed up for 3 workshops:

  • Hands-on: Building a Ruby on Rails application with DB2 Express-C 9
  • Social Computing: Best Practices
  • Social Computing: How the Social Web (R)evolution is Changing the Business Landscape

I’ll also be holding a Technology Showcase @ CASCON on WDSC & JWL Tuesday, Wednesday and Thursday from 11:30am till 1:30pm:

WDSC JWL 3.0 in Action
This exhibit will demonstrate the rich JSF/JavaScript-based widget library JWL. Currently in the finishing stages of development, JWL will revolutionize the way users interact with applications. Widgets/abilities include full AJAX support, key press bindings, calendars, panel dialogs, panel menus, context assist, converters, and much more.

I fallen off my great quest to become an expert at object oriented design patterns — I seriously have to spend some this weekend.

Comet: Life after AJAX

Tuesday, August 8th, 2006

There is no doubt that AJAX is a brilliant idea, which has pushed web development to a new level. That said, the framework has many limitations, and a lot of big time names in the open source industry (Alex Russel being one of them) have taken notice. People that don’t understand Comet call it “disgruntled AJAX developers who went off on their own”. The reality is, that a server-side event driven model for web development is needed. The catch? A long-lived static connection from the client-side (browser) to the server is needed. For example, this event driven server-side model, means that the server can now tell the client to refresh a panel on demand (without the client making a request).

On Sunday, the Dojo Foundation announced Cometd as a new Dojo project.

Cometd is a scalable HTTP-based event routing bus that uses a push technology pattern known as Comet.

Dojo: A glimpse into the future of web development

Thursday, August 3rd, 2006

Update (Aug. 17 2006): The more I use Dojo, the more impressed I am with what is being done. The entire project has so much attention to detail. I just spent a little while looking at dojo.io.* and am blown away at this easy to use, transparent approach to AJAX.

That’s a powerful title, will it come true? Who knows. At this moment and time, at version 0.3, Dojo is insanely impressive.
So the first question that most people will have is: What is Dojo?

Dojo is the Open Source Javascript toolkit that makes professional web development better, easier, and faster

A little more detail:

Dojo is an Open Source DHTML toolkit written in JavaScript. It builds on several contributed code bases (nWidgets, Burstlib, f(m)), which is why we refer to it sometimes as a “unified” toolkit. Dojo aims to solve some long-standing historical problems with DHTML which prevented mass adoption of dynamic web application development.

Dojo allows you to easily build dynamic capabilities into web pages and any other environment that supports JavaScript sanely. You can use the components that Dojo provides to make your web sites more useable, responsive, and functional. With Dojo you can build degradeable user interfaces more easily, prototype interactive widgets quickly, and animate transitions. You can use the lower-level APIs and compatibility layers from Dojo to write portable JavaScript and simplify complex scripts. Dojo’s event system, I/O APIs, and generic language enhancement form the basis of a powerful programming environment

I hear people say “Dojo, that’s the AJAX framework”. Sure, Dojo is about asynchronous interaction, but that’s only a part of the story. The problem with JavaScript is that it blew up way too fast. It’s a powerful programming language, but lacks the subtleties, which would make it easy to develop large-scale JavaScript applications. I doubt in the mid 90s Netscape envisioned JavaScript the way its used today. In 2002, Doug Crockford got fed up and made JSLint:

When C was a young programming language, there were several common programming errors that were not caught by the primitive compilers, so an accessory program called lint was developed which would scan a source file, looking for problems. As the language matured, the definition of the language was strengthened to eliminate some insecurities, and compilers got better at issuing warnings. lint is no longer needed.

JavaScript is a young language. It was originally intended to do small tasks in webpages, tasks for which Java was too heavy and clumsy. But JavaScript is a very capable language, and it is now being used in larger projects. Many of the features that were intended to make the language easy to use are troublesome for larger projects. A lint for JavaScript is needed: JSLint, a JavaScript syntax checker and validator.

The good folks at Dojo have taken this a massive step further, put very gently:

dojo.lang.* contains wrappers for common idioms. It doesn’t provide replacements for language constructs. We only provide functions that provide value-added above the standard javascript routines, or functions that mask browser incompatibilites, etc.

The reality is, an amazing, transparent, useful framework has been (is being) developed, which will give the Web developer power they’ve only dreamt of. Were talking proper class constructs, inheritance, the ability to override methods, and much more.

In total there is the Dojo Infrastructure (fundamental behaviors), General purpose libraries (String manip., DOM manip., etc…), Data Structures (Dictionary, ArrayList, Queue, etc..), Web I/O (RPC, JSON, etc.), Visual Web (animations, graphics, etc.), Math and Cryptogrpahy (speaks for itself.. clientside Crypto, like Meebo) and a great Widget library.

What kind of widgets are we looking at? Here is a taste of what you can expect:

FisheyeList – hover over the menu at the top…
Popup Dialogs – click the links on the top left…
Floating Pane – drag them, close them.. the world is your oyster
Inline Edit Box – just like Flikr, click the title and text…

All this, and their only in version 0.3. Give it a try: dojotoolkit.com — be warned documentation to the specifics of the API is sparse.

iPod your car for $15

Monday, April 24th, 2006

Most new cars and after-market decks give you the option of attaching an auxiliary device (Line In). In most cases people connect a CD changer, or something else along those lines.

I wanted to connect my Nano to my car, but definitely did not want to pay for an external device, like the Alpine iPod interface. Since my deck gave me the ability to attach a line in, I went to The Source and purchased a shielded Y-Adapter, which is nothing more than a two phono plug (RCA) to stereo plug converter ($15 CAD). So now, I’d connect the iPod using the headphone jack.

You can even be creative in were you put the iPod, here are a few pics:

ipodcar1.jpg

ipod car

Note: I needed to buy an extra JVC adapter which was specific to JVC decks ($20 USD via eBay). With the above quick fix, you would need to change songs using your iPod. Obviously since its just a headphone jack connecting to the iPod, you can connect any stereo ouput device (other MP3 players, CD Player, etc.)

Yahoo’s bet on the future of the internet

Sunday, April 16th, 2006

Yahoo! is making a strong bet on the future of the internet becoming a social application. They realize that people don’t care so much about search results, as opposed to how these results are delivered. While Google, ms, etc. compete on search, Yahoo is steadily creating/buying a network of application (Buzz, Answers, Flickr, etc.), which use the internet to not only connect people, but use the knowledge of the individuals to produce a synergy, which could potentially be greater than any horizontal search could provide.

But one thing still remains, for Yahoo’s plan to work, they need to commoditize search, the catalyst: Nutch – an open source search engine started by Doug Cutting (creator of Lucene). This project was sponsored by Overture (Yahoo) for a while, but as of January 1st 2006, Yahoo! has hired Doug full-time:

On the first of this year, after four years as an independent contractor, I accepted a full-time job with Yahoo!. This isn’t as big of a change as it sounds. For much of the past four years my work on Nutch had been in-part funded by Yahoo! (and Overture before they were acquired by Yahoo!). I’m still primarily working from home, and, so far, entirely working on open-source stuff: Lucene, Hadoop and Nutch. The biggest change is that I don’t have to draft contracts, submit invoices, etc. I can now instead better focus on the technology and the open-source process.

This is brilliant on Yahoo’s behalf: Make search so widely available (and easy to start up), that eventually thousands of vertical search engines will exist. The trend has already started, tons of vertical search engines have popped up (with venture capital funding), an example krugle.com.

What to do if you accidentally run shuffle through the wash..

Wednesday, January 11th, 2006

…. run it through the dryer. Amazingly it worked! Strangely not right away, but a couple days later, its perfectly fine… except for the fact that only one headphone works (The headphones broke, not the iPod).

In any case, check EVERY pocket before putting your clothing in the wash…

AJAX: Cleaning product, city, web paradigm

Monday, December 5th, 2005
ajax

It blows my mind how crazy some people are for AJAX these days. It’s consistently one of Technorati’s most search terms, and even the Ajax page for Wikipedia has the following:

This article or section has or is prone to spam, that is, HTML links added only to promote a site or product.
Following Wikipedia:External links, please help Wikipedia by removing any commercial links on sight. Please retain this notice if necessary, and report rampant spamming as per instructions at Wikipedia:Spam.

The word/term Ajax could be used for a lot of thing: a marketed cleaning product, a city, a web paradigm.. I wonder how long it will take, till the general public hears the word Ajax and thinks of the web instead of a cleaning product? Probably never, in any case: some people love Web 2.0, some people hate it.

Microsoft’s Xbox loss per unit $126

Wednesday, November 23rd, 2005

It was expected that Xbox would sell at a loss, most consoles in the past have. iSuppli research crunched some numbers and came out with a loss per unit of $126 US. The idea: make money off the games. In a recent issue of Technology Review, there was an article about Halo 3. Take a wild guess when Halo 3 is supposed to come out? ….. When PS3 launches.

An up-close look at the components and other materials used in the high-end version of the Xbox 360, which contains a hard drive, found that the materials inside the unit cost Microsoft $470 before assembly. The console sells at retail for $399, meaning a loss of $71 per unit — and that is just the start.

Other items packaged with the console — including the power supply, cables, and controllers — add another $55 to Microsoft’s cost, pushing the loss per unit to $126. These estimates include assumptions that Microsoft is getting a discount on many components.

IBM has the right idea:

IBM also has designed chips at the heart of the competing video-game systems — the Playstation 3 from Sony and Nintendo’s forthcoming Revolution system, both of which are due next year.

Skype to sell phone kits at RadioShack

Tuesday, November 22nd, 2005

It looks like eBay is taking Sykpe to the next level, signing a deal with RadioShack to sell kits for its web based phone service.

Skype Technologies, which counts 66 million users of its free- and low-cost Web-based telephone services, mainly in Europe and Asia, said on Sunday that it would distribute Skype phone gear through 3,500 RadioShack stores.

The move into the retail market promises to raise Skype’s profile with American broadband users, who have begun to switch from traditional phone systems and use alternatives that rely on Internet connections.

Skype is able to get past most firewalls, so even if you’re connected through VPN, you can use your Skype phone/account with no problems. This is true for example at McMaster University, where most of the campus is wireless and you connect through VPN.

A couple months ago I read an article in Technology Review about one of the early fathers of F-Secure — he forecasted that the next huge virus craze will be through Skype. This makes sense, half the battle is already won by getting through the firewall.

Google Analytics shut down for new users

Monday, November 21st, 2005

Just as I got excited to try out Google Analytics, Google shut it down to new users. Apparently since it went free there had been serious reliability issues. An article on ITworld.com says:

This is the latest snafu to hit Google Analytics since last Monday, when Google began to offer it for free. That same day, Google Analytics, which used to cost US$199 per month, began to experience serious performance problems as new and existing users alike struggled to access the service.

I’m curious if it specifically tracks and differentiates users who access the website through AdWords or normal search/direct URL access. I know a lot of people are concerned about fraudulent AdWords clicks, etc. Once it comes back, I’ll look into it more closely.

“Google Finally Goofs Up” – Motley Fool -> Google + Sun

Tuesday, October 4th, 2005

When I read the PR that Sun was going to team up with Google to push StarOffice, I felt the same way Tim Beyers felt. In a well crafted article for Motley Fool, Tim bashes the move by saying:

Go ahead, type your hate mail. I can take it. Just remember that when you read that I think Google (Nasdaq: GOOG – News) may be the most brilliant of all the copycats out there. But teaming with Sun Microsystems (Nasdaq: SUNW – News) to push StarOffice? Why, Google? Why?
You don’t really see StarOffice as the white-knight alternative to Microsoft’s (Nasdaq: MSFT – News) Office, do you?

and…

Again, the problem isn’t with the software. It’s with Microsoft’s utter dominance of the market. Numerous published reports suggest that there are anywhere between 400 and 600 million global users of Microsoft Office. Last year, Sun told U.K. trade journal Computer Weekly that there were 40 million Star Office users worldwide. Really? OK, but I wonder if this is only counting downloads…

Who knows.. with Google pumping in some new technology, a few patents here and there… you never know

Konfabulator — Windows UI to a new level

Wednesday, September 21st, 2005

If your looking for an Exposé (Apple Mac OS X) type feel in Windows, give Konfabulator a try. A seriously amazing idea, the foot print is small, and it runs great. You can even use it on a Mac. Here is some info from their website:

Konfabulator is a JavaScript runtime engine for Windows and Mac OS X that lets you run little files called Widgets that can do pretty much whatever you want them to. Widgets can be alarm clocks, calculators, can tell you your WiFi signal strength, will fetch the latest stock quotes for your preferred symbols, and even give your current local weather.

Back on July 25th, Yahoo! Took it over, you can read the PR here.

The ‘Our History’ section of the Konfab website will tell you more about them.

Google invites 400 to special event

Monday, September 19th, 2005

CNet today had a news article talking about a special Google announcement coming Oct. 25-27 at Google’s Mountain View, Calif., headquarters.

Google is planning a partner forum for about 400 people, including bloggers and journalists from major media outlets, and is prohibiting participants from writing about it, according to a search engine industry expert.

One can only begin to imagine what they could announce – but I’ve heard a couple guesses at a Google Browser being announced? A while ago, Google was buying up a bunch of Dark Fiber — crazy Google voip?

But what doesn’t really make sense is the speakers:

Speakers on the agenda, Sullivan wrote, include Google co-founders Sergey Brin and Larry Page, Chief Executive Eric Schmidt, Yahoo Chief Executive Terry Semel, MSN Senior Vice President Yusuf Mehdi, InterActive Corp’s Chief Executive Barry Diller and Microsoft blogger Robert Scoble.

Microsoft in talks to take over AOL

Thursday, September 15th, 2005

In an amazing, but almost expected turn of events, Microsoft is in talks with Time Warner to possibly take over AOL. Keep in mind, ICQ is part of AOL. Furthermore, a little while back Microsoft acquired a VOIP company.

Microsoft is aligning itself with Google, and in a sense working faster and stronger to maintain their position.

In a Sept. 14th article on CNet, Bill Gates said:

In fact (Google), they have this slogan that they are going to organize the world’s information. Our slogan is that we are going to give people tools to let them organize the world’s information. It’s a slightly different approach, based on the platform-ization of all of our capabilities and not thinking of ourselves as the organizer.

Bare in mind a couple days ago, eBay took over Skype. I wouldn’t be surprised if a partnership formed (in some fashion) with Google, Skype, or Yahoo!

We’ll see, Google Talk is good – but it’s very simple – they have to get better, fast.

Technorati and similar blog search engines seem to have a serious competitor

Wednesday, September 14th, 2005

Technorati and similar blog search engines seem to have a serious competitor now. Google released today their “Google Blog Search”. With Yahoo! and Google having their technologies so developed, is there any hope for vertical search engines like Technorati surviving?

I’ve spent a fair amount of time studying Nutch and Lucene, and it’s good to see an open source search engine in the works. But it’s only a matter of time, till all “major” vertical search engine topics will be covered by one of the big time search engine companies.

It’s been said before, (and Technorati has the idea) it’s not always about the product but the…

Bell Labs and Lucent’s “gamble” on Quantum Computing

Tuesday, September 6th, 2005

Over the past couple years Bell Labs has divested much of its core research. I’m not sure why, but one explanation could be Lucent’s stock performance over the past 5 years.

Lucent 5 Year Chart -- Copyright BigCharts.com

I’ve never been too interested in quantum computing, but last month Technology Review had a great article on emerging technologies, and one of them was quantum. The article was especially useful since it outlined not only the basics, but the status of the research now, and were it’s expected to be in the future.

One of the companies leading the charge for quantum is Lucent’s Bell Labs. Even though the technology is still a decade away from solving serious problems, Lucent believes in a payback through the development of secondary technologies.

Part of its motivation is the belief that the hardware research may pay off for Lucent long before quantum computers arrive, yielding advances in areas such as miniaturized lasers and optical components.

As the article says, for the general public quantum computing doesn’t have many applications. But for research and science, quantum computing could one day be used to solve certain problems millions of times faster than conventional computers.

Google employee fired for blogging — Feb 2005

Saturday, September 3rd, 2005

This happened a while ago, but it’s hilarious. An employee of Microsoft quits, goes to Google, and then a couple weeks later is fired by Google. Why was he fired? For blogging and advertising on Google – Here is a timeline of his Google career, as seen on SearchEngineWatch:

  • January 17: He posts about starting work at Google.
  • January 25: He gains attention after Philipp Lenssen at Google Blogoscope blogs about Jen’s blog and some critical remarks about Google on it. The blog posts disappear soon after.
  • January 26: The blog returns, along with Jen’s explanation of why he pulls some of his material down.
  • January 31: The blog gains attention again, after ads for it are spotted on Google.

You can’t do stuff like that. I imagine he felt like some super hero going to work for Google, ditching Microsoft. But you can’t parade stuff like that publicly. Google has a market capitalization of 80.55B, do you think they want a kid making posts like this?

My First Patent

Friday, August 26th, 2005

This summer I’m working for IBM in the Toronto Software Lab. I was fortunate enough to work with a couple really amazing teams, and put in a position to solve a few serious problems.

I wrote an algorithm for the WebFacing team which solves a series of problems they were having. You can learn more about WebFacing at this IBM internal site. Through the recommendation of my manager, I created a patent application and submitted the algorithm for patent approval.

I’m pretty excited about having a patent under my name, hopefully it gets approved soon.

Your Ad Here