Tuesday, February 28, 2006

National Archives Videos

Google has partnered with the U.S. government and National Archives to bring American history to the Internet in the form of video content. This is in my opinion the coolest application of Google Video to date. Yes, it is better then the paid content, yes, it is better than the stupid commercials, and, yes, it is better then the free music videos.

The creation of the Boulder Dam is, by far, my favorite of the video clips that I have watched from the archives collection. It provides incredible video footage of the excavation of the Colorado River basin, detailed footage of the tools and machinery, which were designed specifically for the construction of the dam, and insightful commentary throughout the duration of the video.

I am impressed with Google’s desire to initiate partnerships and develop relationships with organizations that allow them to create projects like NARA and the library project. I believe these types of relationships bring valuable and relevant information to the Internet that might not have otherwise been available. I will admit that I am a bit disappointed in the marketing department. This type of content doesn’t seem to be promoted by Google or covered by the media like some of the other projects from the Googleplex. Overall, I think these kinds of projects will help transform the current state of the Internet (aka The Wild West) into a more organized and valuable information resource.

The link for the NARA videos is http://video.google.com/nara.html. Go check it out! You won’t be disappointed, I promise.

Get all of the MSN Conspiracy Game Answers here

Sunday, February 26, 2006

Libjingle - Google Talk

Last month Sean Egan announced the release of Libjingle 0.2.0 on the Google Talk blog. The most notable change to the source base was the inclusion of a visual studio .sln. Big thanks should be in order for Mr. Egan from all of those Windows developers who are not familiar with building and compiling Linux applications. Generating Libjingle.lib and pcp.exe (the two components in the solution) is simple if you follow the 5 step outline provided in the read me file. I have included those steps below in case you want to know what is involved before downloading the project files.

1. Install Visual C++ Express 2005. It is free from this link:
http://msdn.microsoft.com/vstudio/express/visualc/

2. Install the platform SDK and integrate it into VC++ express
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/

3. Download and install binary package for expat:
http://sourceforge.net/project/showfiles.php?group_id=10127&package_id=11277

4. Update the Visual C++ directories in the Projects and Solutions section in the Options dialog box
Library files: C:\expat-VERSION\StaticLibs
Include files: C:\expat-VERSION\Source\Lib
where VERSION is the version of expat you've downoaded

5. Unzip the libjingle files, open the solution and build.

Note: Only the pcp example application currently builds on Windows. There are no open souce media components integrated at this point so there is significant work before a call can be made on Windows. Review
http://code.google.com/apis/talk/media_engine.html to interface your own media componentry with libjingle.

I built the project for Windows in just a few minutes using VS 2005. I have also collaborated with a friend on the linux version, which we have successfully built, but haven’t yet been able to get completely working. Next up, to implement the library in a solution, for which I am going to be enlisting Joe Hildebrand’s Jabber-Net.

Get all of the MSN Conspiracy Game Answers here

Saturday, February 25, 2006

Google Search History

Ever since Google introduced Search History I have wanted to export the list for my own personal use. There are a variety of things that I want to do with my search history, one of which is creating my own statistical data from the results. Google provides some statistical analysis (use the Trends link) but what if I want to find out my top 20 searches rather than my top 10? Uh oh.

I thought about page scraping but figured there must be a better way. I happen to be on one of my frequent visits to John Resig's blog (by the way John if you ever read this, you are my hero, email me and let's create a web 2.0 app and sell it to Google for 50 mil. I have a few ideas in mind and I know you are already working on a couple independently. Let me know if you need some help with those.) and found this article where John already implemented a page scraping solution to this problem. But, reading further I found this article by Mihai Parparita. Mihai found the magic url to export your search history in xml results, a technique used by the Google Search History Dashboard Widget for Mac's.

If you want to get the low down I recommend reading Mihai's article and then downloading the Mac Widget for yourself to view the source code. If you just want to get your search results in XML format visit the following link:

http://www.google.com/searchhistory/find?num=100&output=rss&client=google-mcsmhwidget&start=1&q=the&zx=MacT0H58Mws%22

You can change the num var in the query string (num=100) to num=n where n is greater than the total number of searches you have done to retrieve all of your search history results. I will warn you, if you have a large search history, as I do, this will take some time so be patient.

Mihai notes that the url is authenticated through the use of a cookie. This means that you will need to log in to authenticate yourself before you will be able to retrieve any results. No problems. Thanks Mihai for pointing out this clever hack. Now we can have our search history the way we want it.

Soon I will be writing a Google Module that uses this exploit to provide users with the ability to customize there Google Search History Module (if somebody doesn't beat me to it).

Get all of the MSN Conspiracy Game Answers here

Friday, February 24, 2006

Google Page Creator

What's the differance between Yahoo's geocities and Google's page creator? 15,000 lines of JavaScript.

In an attempt to keep up on all of Google’s products and services, I often find myself traversing a trail of links that drops me on to the blog of insert your name here. These blogs typically contain a rewrite of a recent post that was made on one of Google’s numerous Official Blogs.

I generally end up skimming the main content of the blog (unless it’s from one of the more interesting bloggers like Philipp Lenssen's or Nathan Weinberg's) so I can get on to reading the comments of other readers. Reading the comments usually provides me with some different perspectives people have on the beta services Google releases or is being rumored to release. All to often though, I am painfully reminded of the short sightedness and stupidity of the general public.

Consider this blog post by Matt Cutts. First though, visit the Google Page Creator tool. Ok, good, now you don’t need to bother reading the post, just keep scrolling until you get to the mostly worthless content (the comments). Take a look at some of these stupid comments:

“Wow, thanks for the heads up. Looks really good that Google is pushing new stuff out (though some might argue that they should be improving current products)! It would be interesting to see where they take this, and if this catches on.” - SL

According to this commentator, Google isn’t improving their current products which must be why they just added chat to Gmail right??

"How is this different from blogger?" - Ben

I want to find Ben so I can ask him how cars are different from trucks.

"No support for Opera! Shame on you, Google." - Asle Ommundsen

Asle, you should feel ashamed for even suggesting that a company waste money supporting a browser that less than 1% of people use. Here is my comment for you: Try Firefox.

"It’s cool but not worth gushing over. Anyone ever hear of Geocities?" - SeoRookie

What a Pudding head.

Get all of the MSN Conspiracy Game Answers here

Thursday, February 23, 2006

Google Mobile SMS

For those of you who haven't noticed yet, the good people at Google are exceedingly interested in mobile technology. Maybe you suspected this when you were asked to give your cellphone number in order to signup for a Gmail account? You may have spotted even more evidence on Google’s official blog. As far as I’m concerned, John Battell’s 2006 predictions (see #13) is sufficient evidence that there is a stirring interest in mobile technologies.

In this post I’m going to provide a brief synopsis of the services Google is providing for the mobile marketplace. If you don’t find sufficient details in this post, and would like to dig deeper, mobile.google.com is a good starting place.

Several services Google has already developed for your mobile device:


  • Google Personalized Homepage – Create a homepage with the data you want to see. Then browse to that page from your mobile device. This can really save you some time and energy by assembling many different data sources into one central destination.

  • Gmail – Access your Google email account from your cellphone or mobile device.

  • Local – View maps and satellite imagery or get driving directions from mobile local.

  • SMS – Get short result data including: stock quotes, definitions, conversions, and more.

  • Web Formatted – View web pages optimized for your mobile device.

  • XHTML – Get full google search results formatted for your mobile device.
Of these services, I like the results that can be achieved with SMS and XHTML. I liked the results from SMS so much that I decided to do some page scraping as a means of providing a more convenient interface to test the SMS functionality. (Disclaimer: The purpose of this is strictly educational and is in no way an attempt to violate any of Google’s copywrite policies.) Unfortunately, I do not have a mobile device that is internet ready but I wanted to do some extensive querying to the SMS database to analyze the results and provide commentary on the quality and relevancy of different search phrases.

The demo that Google provided does not have a sufficient layout for this purpose, so I created a page to simplify the search process. The web page, which can be found here , allows you to search the SMS database, and returns the results in simple plain text output. Try a few different types of searches to get a feel for the wealth of data that is available. Keep your eyes peeled as Google is sure to release more great services for your mobile device.

Get all of the MSN Conspiracy Game Answers here

Tuesday, February 14, 2006

Why Google Bought Measure Map

Some of you may be wondering why Google bought this seemingly unheard of statistical logging software, specifically created with blogs in mind, and produced by the folks over at AdaptivePath. Does Google have any sort of method behind this madness of swallowing software packages and turning them into beta services that never open up for public use (Analytics)? Criticizing Google on their recent purchases is a trivial task, trying to determine the perspective of the executives making the decisions to acquire these products is much more difficult. Since we like a challenge, we’ll focus on the latter in this post.

Google already owns a powerful software package that does statistical analysis of web traffic logs. I’m guessing that the decision makers at Google saw some promise in the combination of the two software packages, Analytics which they already owned and this new product MeasureMap. There is also the possibly that Google won’t combine these packages, and that would be no surprise to me either.

Blogging has become a huge part of the market place on the internet. Blogging companies are selling for millions and sites like myspace.com, an extremely informal blogging tool that has risen to the 9th most popular destination on the internet, are thriving. Google owns Blogger.com a very popular and well known blogging tool and they may have bought this package specifically for integration with Blogger.com. A quick search on Google will reveal that there are many users who want to see who is visiting their blog, where they came from, and how long they stayed. Currently Blogger.com does not have this functionality built in to the software and many bloggers are using third party software to obtain this data. It would make sense for Google to buy this package and integrate it right into Blogger.com while keeping Analytics open for more extensive tracking, like what might be needed on eCommerce sites.

I’ll be curious to see how long it takes them to get MeasureMap out of beta status and make it available for the public to use. As a side note, Adaptive Path, the creators of MeasureMap, are also the same company that provided a facelift for Google’s Blogger.com. I’m curious if somebody at Google mentioned the need for this type of software to Adaptive Path back then or if those guys are just that creative to develop just the tool Google was looking for. They did after all give us the popular web 2.0 phrase “AJAX”. The only thing that really surprises me about Google’s purchase of the software is the lack of existing user base for MeasureMap. The software didn’t have time to develop and test the scalability of the software package.

Get all of the MSN Conspiracy Game Answers here

Monday, February 13, 2006

Code.Google.Com - AJAXSLT

The folks at Google have recently made available a number of new open source projects. These projects range from, general to specific, simple to complex, Google product/service related to no relation with any Google product or service. Additionally, these projects have all been used and developed inside the Googleplex and are being promoted by Google as part of an open source initiative. The code base is also expected to encourage software developers to create new applications that utilize Google’s technologies. Consequently, Google has also organized its API libraries under the code.google.com domain. The API libraries and open source code projects should provide you with more than enough source files to rummage through in your spare time.

Google has utilized its resources to develop an assortment of great services and they have spent additional time and money developing programming interfaces and open source software. The interfaces are simple but powerful and usually well documented, a combination that allows for cost effective implementations. Many businesses and individuals are using Google’s products and services but they have yet to realize Google as a service partner rather than just as a service provider. It is great to use Google’s AdWords to promote your company. There is an entirely different and greater benefit that is achieved by using the AdWords API in collaboration with AdWords.

Over the next few months I am going to be promoting some of these services that Google is offering. After reading through these posts I hope that you will develop enough familiarity with the tools to begin using them.

Currently, I am going to discuss an open source project named AJAXSLT. Google’s description of AJAXSLT is “An implementation of XSLT in JavaScript, intended for use in fat web pages, which are nowadays referred to as AJAX applications. Because XSLT uses XPath, it is also an implementation of XPath that can be used independently of XSLT.” I have compiled additional information regarding the project which you can access from googlefact.com. The project is a JavaScript implementation of XSLT that is abstracted to maximize cross browser compatibility.

I am going to be demonstrating the use of the XML parse functionality that is provided with this library. It can be implemented by including two files from the project: dom.js and misc.js. (note: you must include misc.js before dom.js) Additionally, I am going to use some of the AJAX functions from the primary JavaScript file used in Google’s Personalized home page. The functions outlined below are used to retrieve the xml data and to help assign the data to page elements. Click here to view the definitions of the functions listed below.

_esc(a) - to escape the parameters passed into the XMLHTTP query string

_gel(a) – to get an element by its ID

_trim(a) – to remove the spaces before and after a string

aP() – to get an XMLHTTP object used in the AJAX request

_sendx(a,aa) – to send an AJAX request to the server to get the xml data

The simple example retrieves an xml data set and populates a div tag from the data. The working example can be found here. You can also view the xml data document here. I intended to post the ViewNotes function, which is the main processing function in this example, but the WYSIWYG editor did not want to accept the syntax. Just take a moment to look over the source of the html document given in the link above.

Brief summary of the example code: The xml parse takes place in the _sendx function after we have retrieved the xml document from the server. We then loop through the elements in the xml object produced from the xmlParse function and assign them to a hash array that we can later refer to by name. That’s all there is to it. We have parsed and processed an AJAX request on the client side. Inspecting the working example should clear up any confusion that may have arisen from this post.

Get all of the MSN Conspiracy Game Answers here

Sunday, February 12, 2006

About Google Video

If you haven't visited Google Video lately you might think about dropping by sometime for a peak. Google has revamped the home page to accommodate the new video store and has also added some convenient new features.

Unfortunately, the video stores content is still very limited, so If you are looking to buy a specific video you are probably out of luck. That is unless you are looking for a recently televised basketball game, like Kobe Bryant’s 81 point game . The NBA has published 350+ games for your digital video collection.

I don’t watch much TV and as a result, most of the content in the video store isn’t of much interest to me. However, there are some free videos available that I find quite interesting and educational. Let me share three of them with you.

  • Google Tech Talks – I am thankful Google is kind enough to share this collection of educational videos with us straight from the Googleplex. If you have a technical background and haven’t seen these yet, let me recommend them to you, they are quite a treat. The topics range from robotics to meteorites in Antarctica and are always intriguing.

  • John Battelle talk at Google NYC – This is another video from Google that doesn’t fall under the Tech Talks category. The speaker for this video was John Battelle who was a founding editor of Wired magazine, authored The Search, and has a very popular blog on search.

  • Phillip Leason’s future of Google – This is a humorous parody on the future of Google (and its use by a teenage user???). Phillip Leason has a very popular blog focused on Google.


Finally there are a few great features of Google Video that I want to highlight:

  • Google Video Player – You can now download the Google Video Player which is required for purchased videos, but can also be used with free videos that are enabled for download

  • Send Link – Google has made it easy to send a video link to your best friend or coworker if you find a video that is worth sharing.

  • More From This User Link – If you like a video and you want to see if the publisher has any other videos you can use this convenient link.

  • Put on site – This is my favorite. If you like a video and you want to host it on your own website, Google says, no problem (demonstrated below).


Get all of the MSN Conspiracy Game Answers here

Saturday, February 11, 2006

Beta Squared Gmail

Google announced yesterday on their official blog that they are currently looking for organizations to beta test the corporate use of their beta email service Gmail. If you want to try out this (beta * beta) service you will have to ask kindly and cross your fingers since like most beta services there is limited availability.

I often hear Google criticized by investors for not developing products and services that can make money independent of advertisements. While advertising makes up more than 90% of Google’s annual income, they continue to prove that free services and applications can still be profitable. They proved this with their search service, video service, earth application, and now email service.

The investors are stunned when Google buys software products like keyhole and urchin and then releases them to the public for no charge. When will they learn that there is money behind the madness of releasing free software to the general public? I believe that in the near future investors will find that all software companies will sell their products with the following business model: a free version of the software with limited functionality (or advertising generated revenue), an affordable version of the software with complete functionality (or without advertisements), and a corporate version that includes extended functionality. With that in mind, I think investors need to have a little more faith in Google executives and the decisions they make in regards to software cost and licensing.

Get all of the MSN Conspiracy Game Answers here

Friday, February 10, 2006

Google's Javascript Library

I often find myself reading the source code of other developers. Typically I am studying the code that I have inherited from a coworker or former coworker. But, I also enjoy analyzing code in my spare time, as a sort of hobby. Consequently, I find myself browsing the internet for articles with source code or dusting off one of the many titles on my bookshelf.

Recently I have spent some time looking at the JavaScript code Google has developed to power its AJAX based web services. In particular, I have been reviewing the source that is used to power the Personalized Home Page (source) and the Lens Reader (source) application. Maybe it’s just me, but I find it to be a fun challenge deciphering the obfuscated code to reveal the meaning behind each of the functions.

Today as I was examining the code in the reader application and came across the function that is used to return the DOM element with the ID that matches the value of the parameter that was passed into the function. This is a commonly used procedure in AJAX applications and I distinctly remember its implementation in the Personalized Home Page source. It stunned me to find two different implementations of the same function. With all of the JavaScript code that Google has developed, I would have thought by now they would have established a library that consisted of commonly used functions and could be included in all of the AJAX applications that Google develops. I have included the two variations below.

The reader implementation:
function h(a){
return document.getElementById(a)
}

The Personalized Home Page implementation:
function _gel(a){
return document.getElementById?document.getElementById(a):null
}

Which implementation is better is not my concern here, but rather the principle of code reuse and familiarity. While this is a very short function, there may be others which are substantially longer. Should the Google application developers each have to write there own implementation of functions or would it be better to create a library of standard JavaScript functions that are included in all of the AJAX applications? Further, if a Googler changes projects or is assigned to a new project, it would seem helpful to have a standard AJAX library to supplement the development of the application.

Get all of the MSN Conspiracy Game Answers here

Thursday, February 09, 2006

Gmail and GTalk Join Forces

The next time you log into your Gmail account you may notice some of the chat features that are now available with the recent update to Gmail. The most noticeable changes are the new "Chats" folder and the "quick contacts" list on the left menu. The quick contests list doubly serves to notify you of your contacts that are currently online/offline/idle/ or in a conversation.

If you have a contact online, click on their name in the quick contests list and, wowzers, a floating div becomes available to host your conversation. One very nice feature Google provided with the chat is the ability to pop in (as a floating div) or pop out the dialog box (as a new window).

The folks at Google were also kind enough to create the "Chats" folder which allows us, if we so choose, to begin logging our conversations to our mailbox. This addition makes it easier to keep track of those important instant message conversations that may have been getting lost. This is my favorite new addition to Gmail. Lately I have been emailing about 90% of my conversations to myself so that I could back-reference them quickly. I have a feeling that anybody who works over the Internet and uses instant messaging as their primary form of communication will also find this feature extremely useful. Now we just need to get all of those good ole AIM users to sign up for a Gmail account.

One final note: There is a slight delay in the chat history logging. Consequently, if you are talking with someone over GTalk while simultaneously viewing your conversation history, you may find that the conversation in the history window is only partially complete. Don't go email Google and say, "my chat history is broke", just give it about 5 or 10 minutes and the conversation will be compiled in its entirety.

Get all of the MSN Conspiracy Game Answers here