Thursday, July 31, 2008

NameVoyager: Baby name visualization over time

Today I ran across this novel visualization tool called NameVoyager. It allows you to see how the popularity of baby names change over time. The data is collected from the Social Security Administration.

From the screenshot below, you can see all boy's names that start with E. Although Edward was very popular in the late 1800s, Eric started to dominate in the 1950s, and Elijah, Evan, and Ethan (our son's name, ranked #3 in 2007) have taken over since the 1990s.


My name hasn't fared so well (#6 in the 1880s, #262 in 2007). My wife's name went from a high of #13 in the 1970s, but it's since dropped to #105.

The creator of NameVoyager, Martin Wattenberg, writes about it in a white paper entitled Baby Names, Visualization, and Social Data Analysis.

BTW, if you are really interested in how your name affects your socioeconomic status, check out chapter 6 of Freakonomics by Steven Levitt.

Update

Another interesting name visualization tool is NameTrends.net. In addition to showing popularity of names over time, they also show geographical popularity of baby names. The map below, set at 1992, shows how Ethan was really popular in the northeast and north-central states before it became popular in all the states.


Monday, July 28, 2008

How cool is Cuil?

Today a new competitor enters the world of Web search: Cuil (pronounced "cool"). What's notable about this newcomer is that it's president and founder, Anna Patterson, is an ex-Googler as are several of Cuil's VPs.

In 2004, Patterson developed a search engine called Recall that was used to search the Internet Archive's massive corpus (apparently the search engine didn't last long... the Archive is only searchable by URL today). Shortly thereafter, she was hired by Google only to leave in 2006 to startup her own Google competitor. How much of Google's intellectual property went with her? That's a tough one to answer.

So why does Cuil think it can compete with Google?
  1. Cuil supposedly index three times as much content as Google.
  2. Cuil presents results in a magazine-like, multi-column format with more snippet text than Google, including embedded images.
  3. Cuil has an "Explore by Categories" widget that attempts to categorize pages.
Considering Google doesn't index every page they know about, it's hard to argue that the size difference is really significant. What will make or break their search engine is the quality of results and the interface. Some have already done some testing and named Google the winner. I did a little test querying for my name, and the results were not quite up to par.


Here's how I scored it:
  • Result number 1 (top-left) links to my old website at Old Dominion University instead of my current site at Harding (next result to the right). -1 point
  • The photo of me in result 1 comes from a different website entirely, so I'm impressed they made the connection. +1 point
  • The photo in the Harding result is not me (wish I was that tan). -1 point
  • The result at the bottom-left is from DBLP which indexes academic papers. It's certainly relevant. +1 point
  • The photo in the DBPL result is not me (I'm a lot more buff)- it's the actor Frank McCown, better known as Rory Calhoun. -1 point
  • The next result to the right points to celebrity entry for Frank McCown AOL's Television website. This is a website that does their own web mining and erroneously marked my blog and Harding website as belonging to Frank McCown the actor. (BTW, this is a really tough problem to solve.) -1 point
  • The first categorization labels in the upper-right under Digital Libraries were somewhat descriptive of my research interests or projects I've been involved with: Digital preservation, Open Archives Initiative, and LOCKSS. +1 point
  • But when I click on National Science Digital Library, I get 0 results. -1 point
So my overall score:-2 points. Using the same query at Google shows 8 of the top 10 results are about me (result #1 points to my blog, #3 to my Harding website), but Google is less ambitious and doesn't mix in photos or categories. Still, I'd have to give Google a higher score than -2.

Does any else have any thoughts on Cuil?

Update on 7/30/2008:

Someone at Java Rants has created a parody of Cuil using Yahoo's new BOSS Search API: Yuil.

Friday, July 25, 2008

Fav5

My pick of this week's top 5 items of interest:
  1. It's official: Google's Knol, a Wikipedia-like source of user-contributed information, is now available to the public. Lots of people are talking about it. I found the interface a little lacking... there's a search box and a list of some randomly selected Knols, but I can't figure out how to browse by subject (of course it's difficult to do this in Wikipedia as well). Also I can't tell how many knols there are yet; a search for "a" shows about 80 knols, and most appear to be health-related. My guess is the tech guys may stick with Wikipedia.

  2. At this week's SIGIR'08 conference, Microsoft Research presented a paper called BrowseRank: Letting Web Users Vote for Page Importance. The paper introduces a new relevance ranking algorithm called BrowseRank. Instead of relying on the web graph to assign web page importance as PageRank does, BrowseRank assigns importance based on users' browsing behavior. A good summary of the paper is at CNET News.

  3. Facebook will soon be using Microsoft's web search technology to give search results and sponsored ads. Currently Google is powering MySpace.

  4. According to a new report from the antivirus company Sophos, they have detected over 16,000 malicious web pages each day in the first half of 2008, most using SQL-injection techniques. Blogspot.com hosts the largest number of malicious web pages, mostly because of how easy it is to setup a blog with this service and to inject

  5. You'd better hurry: The domain ☼.com is still available! Oh, and Google has discovered at least 1 trillion pages on the Web.

Wednesday, July 23, 2008

Harding University - Oops! Couldn't find that.

You know you're in trouble when your university website gives you an error message like that.


Looks like the Harding IT guys are having some technical difficulties today... maybe they need to use Warrick. wink

Update on 7/25/2008:

Apparently there was a catastrophic disk failure; the IT guys are working through the weekend to restore data and get all the systems back up. Unfortunately, about half of the faculty and staff lost about a week's worth of data because the backups were being done improperly.

Monday, July 21, 2008

Webcrawlers wanted

I'm not a huge fan of advertisements, but this ad on Facebook, sponsored by AddGooro, is just too cool. If any of my search engine students are reading this... they're hiring.

Saturday, July 19, 2008

Fav5

My pick of the week's top 5 items of interest:
  1. With the growing popularity of the iPhone, website designers are paying much more attention to how their sites look on devices with very small real estate.

  2. Will Microsoft bite at $33 a share for Yahoo?

  3. We're getting just a little closer to realize quantum computing.

  4. This will be of interest to many of my students: How much do game programmers make?

  5. Last fall, Harding Univ made the move to Google Mail, freeing us from the burden of maintaining our own email system. Unfortunately, the IT guys left all of our old emails on the old system and didn't forward them on to our new GMail accounts. I just received an email saying in the next few weeks the IT guys will purge all of our emails from the old system. Anyone want to bet some very important email is about to be erased forever? (I did move my email over, but it took a few hours... I would hate to have lost emails from when Becky and I were dating.)

Our fifth year anniversary

Today Becky and I are celebrating 5 years of marital bliss. smile OK, it's not all bliss, but it is wonderful being married to Becky. My prayer is that my son might some day find a wife as intelligent, beautiful, and funny as his mom, and someone who encourages him to be faithful to the Lord.

The photo below was taken a few months before our wedding. (Thanks, Jeff.)


To celebrate, we are leaving Ethan with a babysitter and going out to a small town called Chimayo where there's a famous little chapel called Santuario de Chimayó and a romantic restaurant called Ranco de Chimayó Restaurante. Should be a lot of fun.

Thursday, July 17, 2008

Wal-Mart growth: 1962-2007

This is one cool visualization. Watch as Wal-Mart grows like a cancer, beginning from Bentonville, Arkansas. (It's amazing to think the world's most powerful discount store started in humble AR...)

Neo4j

I attended an interesting technical talk with the Proto Team yesterday down in Santa Fe Complex. Emil Eifrem of Neo Technologies shared with us their open source Neo4j project, a high-performance graph database that is implemented in Java.

A graph database is very different from a relational database; rather than storing data in tables of rows and columns, data is stored in a graph data structure (nodes, relationships, and properties) which is obviously a more intuitive model for networks. Such a database is ideal for storing RDF, social networks, co-authorship networks, etc. Although relational databases can be used to represent graphs, answering queries like "Who are all the friends of everyone who likes ice cream" requires many joins to be performed which takes a lot of processing time.

Emil noted that although everyone he talks to says they know what a graph database is, they practically don't exist. Wikipedia doesn't even have an entry entitled graph database, and the database article doesn't mention them at all (graph databases are distinct from the network model). Here's some slides that give a good overview of graph databases and a survey paper by the same authors.

Monday, July 14, 2008

When the Internet is my hard drive

This morning I came across a commentary by Bruce Schneier at Wired entitled When the Internet Is My Hard Drive, Should I Trust Third Parties? Schneier worries about the loss of data that is stored on the Web, including web pages and websites that are not under his control.

Schneier first notes how the Wine Therapy web bulletin board, a place where wine aficionados posted and shared information since 2000, was lost when someone hacked the site and deleted the database. The site owner had been sick and was not keeping a backup. (Join the club.)

After a few anecdotes about broken travel links, the loss of the blogging website Greatest Journal, and MySpace losing control of members' personal data, Schneier says of our online data: "there's no way to predict what will disappear when." And although there are some emerging personal archiving tools, "we don't know which bits we want until they're no longer there." He sadly concludes that "there's not much we can do about it."

Some of the comments are interesting to read. One reader says that "Link rot is actually a healthy way for clutter to evaporate from the web leaving room for useful information." I'd like to see this person's reaction when their blog "clutter" disappears one day. wink

Someone named Daniel commented that there's no simple way to backup your dynamic website, but they remain hopeful: "[I] Also expect that somebody will make it easy to backup your site--and not just from a browser perspective--and then we'll just have to wait until it becomes so cheap it's ubiquitous." hmm... maybe I'm on to something here.

Sunday, July 13, 2008

Los Alamos in the summer

We're half way through our stay here in Atomic City (Los Alamos), and I thought I'd bring everyone up to speed on what we've been doing.

I picked up Becky and Ethan in mid June from the airport in Albuquerque. The first thing Becky noticed was how many of the buildings, especially in Santa Fe, were built in a rather unique Adobe fashion. Yes, even Target:


It took a little adjusting to life in a small apartment with no A/C, but we did it. What really helps is having incredible views all around us



with plenty of places to hike



and play (there are like 10 billion playgrounds)


and a good church which has been very welcoming.

We got Ethan his first haircut just a week after arriving, and despite his facial expression (and the outrageous $16 price), he didn't cry a bit:


So far we've visited a few places including Bandelier National Monument



Taos (where many hippies call home),



and the Albuquerque Zoo (with other moms and kids from church).


I'll report more on our summer in the weeks to follow.

Friday, July 11, 2008

Fav5

My pick of the weeks' top 5 items of interest:
  1. Good news: the number of people working in IT jobs in the US has hit a record 4 million, and the unemployment rate is a meager 2.3%. Advice to incoming freshmen: Give computer science a try.

  2. Chill. It's just a phone.

  3. Neil McAllister asks an intriguing question: "Is the Web still the Web?"

  4. Digg has rolled out a new recommendation system based on the wisdom of crowds.

  5. Some cool new stuff: Protocol Buffers from Google and the BOSS API from Yahoo (see my post from yesterday).

Thursday, July 10, 2008

Yahoo's new Search BOSS API

Yahoo has just released a new web search API called BOSS (Build your Own Search Service) which improves on their earlier API in several ways:
  1. No daily query limits.

  2. No restrictions on how the results are displayed, ordered, or mixed in with other proprietary results.

  3. Ability to make money showing paid results.

The BOOS API is REST-based. You can receive results in either JSON or XML format, and you can get 10-50 results back per query.

There is one item that appears to be missing without explanation: the cached URL of each search result. This URL is useful to the user when the result's live URL is not responding. The old Yahoo web search API did provide this, so I'm not sure why it dropping in Boss.

One thing that makes me a little nervous about the API from a researcher's perspective is the prohibition in their Terms of Service against analyzing their search results:
You will not, will not attempt, or will not permit or take actions designed to enable other third parties to: ... perform any analysis, reverse engineering or processing of the Web Search Results
Analyzing the Yahoo search results is exactly what I did in my paper Agreeing to Disagree: Search Engines and their Public Interfaces. Well, better to do and ask forgiveness than get permission up front. ;-)

So here's a simple example in Java using the new BOSS API to search for the title of my blog "questio verum", the index status of my blog's root page, and all the pages indexed for my blog. To make this example work for you, simply put your Yahoo API key in API_KEY.

Note that this example is very similar to the Google AJAX example in Java from last month.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import org.json.JSONArray; // JSON library from http://www.json.org/java/
import org.json.JSONObject;

public class YahooQuery {

// Yahoo API key
private final String API_KEY = "Your Key Here";


public YahooQuery() {

makeQuery("questio verum");
makeQuery("url:http://frankmccown.blogspot.com/");
makeQuery("site:frankmccown.blogspot.com");
}

private void makeQuery(String query) {

System.out.println("\nQuerying for " + query);

try
{
// Convert spaces to +, etc. to make a valid URL
query = URLEncoder.encode(query, "UTF-8");

// Give me back 10 results in JSON format
URL url = new URL("http://boss.yahooapis.com/ysearch/web/v1/" + query +
"?appid=" + API_KEY + "&count=10&format=json");
URLConnection connection = url.openConnection();

String line;
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
while((line = reader.readLine()) != null) {
builder.append(line);
}

String response = builder.toString();

JSONObject json = new JSONObject(response);

System.out.println("\nResults:");
System.out.println("Total results = " +
json.getJSONObject("ysearchresponse")
.getString("deephits"));


System.out.println();

JSONArray ja = json.getJSONObject("ysearchresponse")
.getJSONArray("resultset_web");

System.out.println("\nResults:");
for (int i = 0; i < ja.length(); i++) {
System.out.print((i+1) + ". ");
JSONObject j = ja.getJSONObject(i);
System.out.println(j.getString("title"));
System.out.println(j.getString("url"));
}

}
catch (Exception e) {
System.err.println("Something went wrong...");
e.printStackTrace();
}
}

public static void main(String args[]) {
new YahooQuery();
}
}


Running this program produces the following results:


Querying for questio verum

Total results = 13600

Results:
1. Questio Verum
http://frankmccown.blogspot.com/
2. WikiAnswers - What does questio verum mean
http://wiki.answers.com/Q/What_does_questio_verum_mean
3. Questio Verum: URL Canonicalization
http://frankmccown.blogspot.com/2006/04/url-canonicalization.html
4. Questio Verum: WIDM 2006
http://frankmccown.blogspot.com/2006/11/widm.html
5. Questio Verum: Fav5
http://frankmccown.blogspot.com/2007/09/fav5_29.html
6. Questio Verum: Fav5
http://frankmccown.blogspot.com/2007/12/fav5.html
7. Questio Verum: August 2006
http://frankmccown.blogspot.com/2006_08_01_archive.html
8. Amazon.com: Profile for Questio Verum
http://www.amazon.com/gp/pdp/profile/A2Q6CLLQPXG55A
9. Questio Verum: JCDL 2007 - day 2
http://frankmccown.blogspot.com/2007/06/jcdl-2007-day-2.html
10. Questio Verum: OA debate - Eysenbach and Harnad
http://frankmccown.blogspot.com/2006/05/oa-debate-eysenbach-and-harnad.html


Querying for url:http://frankmccown.blogspot.com/

Total results = 1

Results:
1. Questio Verum
http://frankmccown.blogspot.com/


Querying for site:frankmccown.blogspot.com

Total results = 4080

Results:
1. Questio Verum
http://frankmccown.blogspot.com/
2. Questio Verum: OA debate - Eysenbach and Harnad
http://frankmccown.blogspot.com/2006/05/oa-debate-eysenbach-and-harnad.html
3. Questio Verum: JCDL 2007 - day 2
http://frankmccown.blogspot.com/2007/06/jcdl-2007-day-2.html
4. Questio Verum: No singles here
http://frankmccown.blogspot.com/2007/08/no-single-here.html
5. Questio Verum: Pledge Week and Insults
http://frankmccown.blogspot.com/2007/10/pledge-week-and-insults.html
6. Questio Verum: WIDM 2006
http://frankmccown.blogspot.com/2006/11/widm.html
7. Questio Verum: Fav5
http://frankmccown.blogspot.com/2007/09/fav5_29.html
8. Questio Verum: August 2006
http://frankmccown.blogspot.com/2006_08_01_archive.html
9. Questio Verum: Fav5
http://frankmccown.blogspot.com/2007/06/fav5.html
10. Questio Verum: Fav5
http://frankmccown.blogspot.com/2007/12/fav5.html


Thanks, Martin, for the head's up on this.

Update on 7/28/2008:

The missing cached URL feature is apparently coming soon.

Saturday, July 05, 2008

Are SnapShots annoying?

You may have noticed that I recently added SnapShots to my blog. When you hover over a link to an external website, a preview box pops up to show you what it links to. For some websites like Wikipedia, the preview box is formatted in a different manner (see below).


The purpose of SnapShots is to allow you to see if you really want to click on the external link and perhaps keep you on my website longer. They also display advertising and will share some of the revenue with me.

All I've really noticed though is how annoying it is to have a window pop-up over the text I'm trying to read. Does anyone else agree with me?

Maybe I just need more time to get used to it. However, a paper presented at JCDL 2008 shared an experiment with a PDF viewer where the users complained about a preview box popping-up over their text... in general it looks like users are not appreciative of such a feature.

Friday, July 04, 2008

Fav5

Happy Independence Day! My pick of the week's top 5 items of interest:

  1. The Deep Web is getting a little shallower: Google has recently improved their ability to crawl Flash content. It used to be that a website with a Flash interface was practically invisible to search engine crawlers, but now Google can find the links to other pages within the Flash program and even indexes the program's textual content.

  2. If you were late signing up for a free Yahoo email address, you might have ended up with frank1837abc@yahoo.com since all the good names were already taken. But now Yahoo has opened up two new domains under "ymail" and "rocketmail". Although Yahoo is still the email market leader with 266 million worldwide users, they want to stay ahead of Microsoft who is a close second with 264 million.

  3. Are Google, Yahoo, and Microsoft censoring themselves more than they must in China? According to a report by Citizen Lab, some sites are blocked by some search engines and others let them through. In a test to see how many questionable sites were blocked, Google had censored 15.2% of the sites tested, Microsoft censored 15.7%, Yahoo 20.8%, and Baidu (the most popular Chinese search engine) 26.4%.

  4. A Harvard marketing professor takes on Chris Anderson's "Long Tail" theory by analyzing real data about online video rentals and song purchases. Her conclusion is that maybe we aren't as individualistic in our taste as Anderson suggested.

  5. In the spirit of July 4, read about how LANL scientists are making fireworks a little "greener".

Thursday, July 03, 2008

Restart applet in Firefox

I was doing some debugging on a Java applet this morning using Firefox 3, and I couldn't figure out how to restart my applet. I was rebuilding my applet and then hitting the refresh button on Firefox, and the old version of my applet was still being executed.

In IE you must press the Ctrl button while pressing refresh (or Ctrl-F5), but this was not working for Firefox.

I finally figured it out: Open the Java Console (available from the Tools menu) and press x which runs the "clear classloader cache" option. Then press refresh, and the newest version of your applet will load.

Wednesday, July 02, 2008

The Web is getting smaller

There has recently been a surge in tools designed to make the Web a little smaller, in a sense:
  1. TinyUrl - This tool has actually been around for a while, but only recently has it been catching on. It allows you to create a small URL that is more manageable when emailing friends, posting on Facebook, etc.
    http://www.example.com/my/very/long/url  -->  http://tinyurl.com/2

    Update: urlBorg and the spanking new bit.ly are similar services that offer even more functionality.

  2. LinkBunch - The same thing as TinyUrl except your link resolves to one or more URLs.
    http://www.example.com/link1
    http://www.example.com/link2 --> http://linkbun.ch/abc
    http://www.example.com/link3

  3. Tinydb - Stores a small amount of information that can be accessed from a tiny URL.
    http://tinydb.org/_write?name=mccown&topic=small+web
    --> Puts key/value pairs into the database

    http://tinydb.org/1ct?_f=xml --> Returns XML-formatted results:

    <xml_data>
    <url>None<url>
    <topic>small web<topic>
    <tinydb_id>1ct<tinydb_id>
    <name>mccown<name>
    <created>2008-07-02 14:57:36.657199<created>
    <xml_data>


Friday, June 27, 2008

Fav5

My pick of the top five items of interest for the week:
  1. The Los Alamos National Laboratory (where I'm currently working) is now home to the world's fastest supercomptuter: the Roadrunner. This machine is the first to break the 1 petaflop barrier.

  2. Live Search Academic is no more. Apparently Microsoft is giving up on their Google Scholar competitor, and for good reason: its interface was horrible and coverage second-rate. I hate to be so critical, but it really was never a match for Google Scholar.

  3. Scotland's failing exam rates are being blamed on students copying information from websites like Wikipedia and passing it off as their own.

  4. Nicholas Carr ponders, Is Google Making Us Stupid? Actually the question being asked is if the Web has somehow changed the way we read and process information.
    The Internet is a machine designed for the efficient and automated collection, transmission, and manipulation of information, and its legions of programmers are intent on finding the “one best method”—the perfect algorithm—to carry out every mental movement of what we’ve come to describe as “knowledge work.”
  5. Gwap, a collection of games that use human intelligence to improve artificial intelligence, was recently launched by Carnegie Mellon's School of Computer Science. Readwrite has more about it.

Wednesday, June 25, 2008

GUI blooper: HTML2Image

There are more than a few GUI bloopers for this shareware product which takes snap-shots of web pages and stores them as images. A screen shot of the application is below.

Blooper #1: Disabling controls

Notice that all the controls are enabled in the "Save As Image" group box. But if you try to work with any of the controls, they will ignore your input. Only when the "Save As Image" group is checked will the controls respond. This is a no-no: the controls should be disabled and grayed-out to show that they are not accessible until "Save As Image" is checked.

Additionally the spinner to the right of the "Crop Height" checkbox should be grayed out when "Crop Height" is not checked.

Blooper #2: Grammar


Programmers often overlook grammar and spelling, especially since spell checkers are not often part of programming environments. In this case the help hint that appears above reads "the same time you capturing main image" when of course it should read "the same time you are capturing the main image." Also, what is the "main" image? This vocabulary is not used anywhere on the GUI and could confuse the user.

Blooper #3: Feedback

And finally, once the user clicks on the Save Image button, there's no indication that the somewhat time consuming job has completed. The status bar at the bottom should at least say "Image saved." or something to that effect. Otherwise the user sits there, staring at the window, wondering if the job has completed or not.

As always, if any of you have other GUI bloopers to share, my mailbox is always open.

Monday, June 23, 2008

Archive spam

So that's why Hanzo:web has been down...


Spam: A tragedy of the commons. Looks like they are not the only web archiving site to be plagued by spam; Spurl.net has had this notice posted on their website for months which apologizes for offering "reduced functionality due to heavy spam attacks":



Update 7-1-08:

I received an email from Mark Middleton this morning informing me that Hanzo:web's free archiving service has been discontinued. There's really no other free web archiving service to take Hanzo:web's place- WebCite is mainly for academic citations, Furl and Spurl only archive since HTML pages and don't make archived materials publicly available, and Archive-It charges a subscription fee.

Saturday, June 21, 2008

Back from JCDL 2008

I'm back from JCDL. It was an enjoyable week, especially since Becky was able to join me. It was great seeing so many people from previous years as well. When the JCDL crowd was asked Thurs at lunch what their favorite thing was at JCDL, someone yelled out "the people." I would have to agree.

I received some good feedback on my two talks. A number of people told me they thought injecting a website's server components was really a neat idea. One individual said he might experiment with encoding data into a YouTube video in a similar experiment. I noticed yesterday that a number of individuals (some from the conference) have submitted websites to reconstruct to Warrick.

Pittsburgh is truly an under-rated as a city... it is one of the more beautiful cities I've visited. They have over 400 bridges, more than any city in the world US.

Wed night the conference attendees ate dinner on a boat that bounced around the three rivers cutting through Pittsburgh. Heinz Field (where the Stealers play) and PNC Park (where the Pirates play) are located directly off the river and have excellent views of the city.

Thurs night Becky and I rode the Duquesne Incline to the Mount Washington neighborhood and had a nice dinner overlooking the city. We didn't have a camera, but the picture above is what we saw. We walked about a mile as the sun set and took the Monongahela Incline back down.

Becky is going to fly up with Ethan to New Mexico tomorrow. Can't wait to see my boy!

Sunday, June 15, 2008

JCDL in Pittsburgh

I'm in Pittsburgh for JCDL 2008. Tomorrow I'll be participating in the Doctoral Consortium, this time as a committee member (I participated as a student two years ago). I'm chairing a session on Tues (Automatic Tools for Digital Libraries) and presenting a paper in the afternoon (Recovering a Website's Server Components from the Web Infrastructure).

Becky will be flying in Tues evening. I'm really looking forward to seeing her since we've been apart now for two weeks. And she'll get to attend the conference dinner and see my second presentation on Thurs (Usage Analysis of a Public Website Reconstruction Tool).

I'm also looking forward to seeing the ol' ODU gang- Michael, Joan, and Martin.

I'll report later on some of the more interesting presentations.

Saturday, June 14, 2008

TouchGraph Facebook Browser

If you have a Facebook profile and want to see which of your friends are in your "inner circle", you might want to checkout the TouchGraph Facebook Browser. Below is screen shot showing the social connections between me and my "closest" 50 friends.


The connections between nodes is computed using betweenness centrality, a measure of a person's importance in a social network. This measure gives more weight to friends that branch other cliques. I'm not sure what the size of the nodes relate to.

The colors of the nodes indicate cliques/clusters - cliques have many friends within a group of friends but few connections to others outside the group.
  • The purple group are mostly friends who were in the social club Knights with me in college.
  • The red group are mainly active Harding students, employees, or spouses. Becky is in this group.
  • The green group are people I know from when I lived in Denver years ago. My sister Sara is in this group.
  • The blue group are other friends from college.
The large green circles are the networks my friends belong to. Most of the people in this graph are in the Harding or Little Rock network.

When I boil it down to only 4 friends, I'm left with Becky (78 friends in common), Hank Bingham (48), Jim Miller (45), and Mark Elrod (45). What would be interesting is if these connections could be recomputed based on communication levels... which friends do I communicate with the most?

Friday, June 13, 2008

Fav5

My pick of the week's top 5 items of interest:
  1. According to a RAND study, the US is still tops in science and technology. According to the report:
    The United States accounts for 40 percent of the total world's spending on scientific research and development, employs 70 percent of the world's Nobel Prize winners and is home to three-quarters of the world's top 40 universities.
    How long will we remain #1? Not very if we continue to make it difficult for foreigners to study here. Americans are just not majoring in technical fields like computer science like they used to.

  2. Someone has actually made a play about the publicly released AOL search queries from 2006. The play focuses on User 927, one of the "anonymous" users whose queries ranged from innocuous to downright deviant. hmmm.... I think I'll skip this one.

  3. Just this week, an Illinois public official dropped his requests to force MySpace to unveil the creators of several "defamatory" profiles that spoofed his identity. Stinks having web-savy enemies.

  4. Matt Cutts confirmed that the file extension of your web pages is very important to Google. The Googlebot will not crawl pages with extensions for binary content like .exe, .dll, .tar, etc. (at least not yet). Matt gives an interesting example: a URL ending with "/web2.0" will be rejected by Googlebot, but "/web2.0/" will be accepted.

  5. Just for fun: try the Bird Flocking Behavior Simulator. The Java applet models the flocking behavior of birds (blue and green flocks). You can place obstacles in their path (left click), give them food (right click), and add predators (red birds which eat the blue and green birds). I had a little fun trapping several of them inside a barrier. (Yes, I do have better things to do with my time. wink)


Thursday, June 12, 2008

What happens when your archive goes down?



I think it's only temporary, but what if you were relying on Hanzo:web to archive your treasured websites, only to have them phase-out their service or go out of business? Think it unlikely?

(Hanzo:web has been around for at least 3 years, but they're still in beta... sounds like they're pulling a Google.)


Update on 7/1/2008:

No, they're down for good.

Tuesday, June 10, 2008

Using Google's AJAX Search API with Java

I was rather sad a year ago when Google deprecated their SOAP Search API with their AJAX Search API. Essentially Google was saying that they didn't want anyone programmatically accessing Google search results unless they were going to be presenting the results unaltered in a rectangular portion of a website. This was particularly troubling to me because, like many academics, I have relied on the API to do automated queries, especially for Warrick.

A few months ago I got a little excited when Google opened their AJAX API to non-JavaScript environments. Google is now allowing queries using a REST-based interface that returns search results using JSON. The purpose of this API is still to show unaltered results to your website's user, but I don't see anything in the Terms of Use that prevent the API being used in an automated fashion (having a program regularly execute queries), especially for research purposes, as long as you aren't trying to make money (or prevent Google from making money) from the operation.

UPDATE: The AJAX web search API has been deprecated as of November 1, 2010. I do not know of a suitable replacement.

So, here's what I've learned about using the Google AJAX Search API with Java. I haven't found this information anywhere else on the Web in one spot, so I hope you'll find it useful.

Here's a Java program that queries Google three times. The first query is for the title of this blog (Questio Verum). The second query asks Google if the root page has been indexed, and the third query asks how many pages from this website are indexed. (Please forgive the poor formatting... Blogger thinks it knows better than I how I want my text indented. Argh.)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import org.json.JSONArray; // JSON library from http://www.json.org/java/
import org.json.JSONObject;

public class GoogleQuery {

// Put your website here
private final String HTTP_REFERER = "http://www.example.com/";

public GoogleQuery() {
makeQuery("questio verum");
makeQuery("info:http://frankmccown.blogspot.com/");
makeQuery("site:frankmccown.blogspot.com");
}

private void makeQuery(String query) {

System.out.println("\nQuerying for " + query);

try
{
// Convert spaces to +, etc. to make a valid URL
query = URLEncoder.encode(query, "UTF-8");

URL url = new URL("http://ajax.googleapis.com/ajax/services/search/web?start=0&rsz=large&v=1.0&q=" + query);
URLConnection connection = url.openConnection();
connection.addRequestProperty("Referer", HTTP_REFERER);

// Get the JSON response
String line;
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
while((line = reader.readLine()) != null) {
builder.append(line);
}

String response = builder.toString();
JSONObject json = new JSONObject(response);

System.out.println("Total results = " +
json.getJSONObject("responseData")
.getJSONObject("cursor")
.getString("estimatedResultCount"));

JSONArray ja = json.getJSONObject("responseData")
.getJSONArray("results");

System.out.println("\nResults:");
for (int i = 0; i < ja.length(); i++) {
System.out.print((i+1) + ". ");
JSONObject j = ja.getJSONObject(i);
System.out.println(j.getString("titleNoFormatting"));
System.out.println(j.getString("url"));
}
}
catch (Exception e) {
System.err.println("Something went wrong...");
e.printStackTrace();
}
}

public static void main(String args[]) {
new GoogleQuery();
}
}

Note that this example does not use a key. Although it is suggested you use one, you don't have to. All that is required is that you put your website or the URL of the webpage that is making the query in the query string (coming from the HTTP_REFERER constant).

When you run this program, you will see the following output:
Querying for questio verum

Total results = 1320

Results:
1. Questio Verum
http://frankmccown.blogspot.com/
2. Questio Verum: URL Canonicalization
http://frankmccown.blogspot.com/2006/04/url-canonicalization.html
3. WikiAnswers - What does questio verum mean
http://wiki.answers.com/Q/What_does_questio_verum_mean
4. Amazon.com: Questio Verum "iracund"'s review of How to Get Happily ...
http://www.amazon.com/review/R3VRSYWW5EJZFH
5. Amazon.com: Profile for Questio Verum
http://www.amazon.com/gp/pdp/profile/A2Q6CLLQPXG55A
6. How and where to get Emerald? - Linux Forums
http://www.linuxforums.org/forum/ubuntu-help/119375-how-where-get-emerald.html
7. Lemme hit that wifi, baby! - Linux Forums
http://www.linuxforums.org/forum/coffee-lounge/122922-lemme-hit-wifi-baby.html
8. [SOLVED] lost in tv tuner hell... please help - Ubuntu Forums
http://ubuntuforums.org/showthread.php%3Fp%3D3802299


Querying for info:http://frankmccown.blogspot.com/

Results:
Total results = 1

1. Questio Verum
http://frankmccown.blogspot.com/


Querying for site:frankmccown.blogspot.com

Total results = 463

Results:
1. Questio Verum
http://frankmccown.blogspot.com/
2. Questio Verum: March 2006
http://frankmccown.blogspot.com/2006_03_01_archive.html
3. Questio Verum: December 2006
http://frankmccown.blogspot.com/2006_12_01_archive.html
4. Questio Verum: June 2006
http://frankmccown.blogspot.com/2006_06_01_archive.html
5. Questio Verum: October 2007
http://frankmccown.blogspot.com/2007_10_01_archive.html
6. Questio Verum: July 2007
http://frankmccown.blogspot.com/2007_07_01_archive.html
7. Questio Verum: April 2006
http://frankmccown.blogspot.com/2006_04_01_archive.html
8. Questio Verum: July 2006
http://frankmccown.blogspot.com/2006_07_01_archive.html

The program is only printing the title of each search result and its URL, but there are many other items you have access to. The partial JSON response looks something like this:
"GsearchResultClass": "GwebSearch",
"cacheUrl": "http://www.google.com/search?q=cache:Euh9Z1rDeXUJ:frankmccown.blogspot.com",
"content": "<b>Questio Verum<\/b>. The adventures of academia, or how I learned to stop worrying and love teacher evaluations.*. Saturday, June 07, 2008 <b>...<\/b>",
"title": "<b>Questio Verum<\/b>",
"titleNoFormatting": "Questio Verum",
"unescapedUrl": "http://frankmccown.blogspot.com/",
"url": "http://frankmccown.blogspot.com/",
"visibleUrl": "frankmccown.blogspot.com"

So, for example, you could display the result's cached URL (Google's copy of the web page) or the snippet (page content) by modifying the code in the example's for loop.

You'll note that only 8 results are shown for the first and third queries. The AJAX API will only return either 8 results or 4 results (by changing rsz=large to rsz=small in the query string). Currently there are no other sizes.

You can see additional results (page through the results) by changing start=0 in the query string to start=8 (page 2), start=16 (page 3), or start=24 (page 4). You cannot see anything past the first 32 results. In fact, setting start to any value larger than 24 will result in a org.json.JSONException being thrown. (See my update below.)

More info on the query string parameters is available here.

From the limited number of queries I've ran, the the first 8 results returned from the AJAX API are the same as the first 8 results returned from Google's web interface, but I'm not sure this is always so. In other words, I wouldn't use the AJAX API for SEO just yet.

One last thing: the old SOAP API had a limit of 1000 queries per key, per 24 hours. There are no published limits for the AJAX API, so have at it.

Update on 9/11/2008:

Google has apparently increased their result limit to 64 total results. So you can page through 8 results at a time, up to 64 results.

Saturday, June 07, 2008

Fav5

My pick of the week's top five items of interest:
  1. How valuable is your old high school or college yearbook? At Purdue University, this year's yearbook will be their last. In fact there are only 80 US colleges that still produce yearbooks, down from 100 last year. Interest is declining with part of the blame on social networking sites like Facebook. What today's students don't realize is that 20 years from now, you may not have access to the memories you have now... free services like Facebook have no obligation to retain them indefinitely for you.

  2. Want to save some electricity and don't mind black? Try out Blackle. Blackle displays search results straight from Google, but because they are displaying search results on a primarily black screen, they are using considerably less power than Google which uses white. A similar search engine is called Blaxel, but I don't think the two are affiliated.



    Update 6-9-08:

    My Finnish amigo has pointed out the error in my post. Apparently only CRTs save energy by displaying black, but the newer LCD monitors which most everyone is using today actually take more energy to display black. So Blackle and Blaxel are actually wasting more energy! Thanks for the tip, Timo.

  3. The Digital Lives research project is conducting a quick survey of how individuals store personal computer files, find them in the future, and archive them. If you have 10 minutes and want to contribute to digital preservation research (and possibly win £200 in British Library gift vouchers), please take the survey.

  4. This is kinda cool: Yahoo has opened up its search results page to developers using a new platform called SearchMonkey. They've also developed a listing of numerous SearchMonkey plug-ins in their Yahoo Search Gallery. Do you want to see details of a movie when searching Yahoo? Download the IMDB presentation enhancement.

  5. I'm not totally sure what to make of this: a new search engine called RushmoreDrive tailors search results for the black community only. Apparently Google is too white; African Americans want different search results than European Americans, Asian Americans, etc. While I agree that web search that takes into account the user's profile (e.g., interests, age, gender, location, etc.) are likely to produce better search results, creating a search engine that tailors only to one racial group smacks of racism. While I'm sure this isn't RuchmoreDrive's intention, wouldn't we all agree that a search engine called Whitey.com that was built for the white community only was racist?

Thursday, June 05, 2008

Ethan time

I really miss my kid (and of course my wife smile). Thankfully Becky sent me some photos, and I thought I'd share a few.


Missed a spot


Boys will be boys


You found me!


Grampy's retirement lunch

Sitting out on the porch.


Glamor Shots pose


Exploring the backyard


Dad, this water's cold!


All Pro


Yep, the dryer's working fine!


Programming at a young age

Goofing around with Uncle Andy

Sunday, June 01, 2008

I'm in Los Alamos

I left Friday morning for Los Alamos and arrived Saturday afternoon (I stayed in Amarillo with some friends). This place is incredibly beautiful. Picturesque. I wish I had my digital camera, but I left it back in Arkansas with the wife and kid, just in case Ethan learns to do a one-handed hand stand (wouldn't you want a photo of your 15 month-old doing that?). You can browse some photos at Flickr to get a feel for what it looks like.

Anyway, I got us setup in an apartment and loaded up on groceries. I'm getting the place all setup for Becky and Ethan who are coming up in a few weeks. Also I drove around to get familiar with the layout, and I marveled at the houses that are built literally 2 feet away from a straight drop hundreds of feet into the crevices below.

This morning I worshiped with the Los Alamos Church of Christ; one of their members was once a CS Harding faculty member in the 1980s. Now I'm checking email, etc. at the library. For some reason they are using IE 2.0 on Windows 85 or something, so it's like I've jumped back in time. Each time I press a key, I wait a second for it to appear on the screen... really fun. Also the people around me are giving me looks because I'm apparently typing loudly.

I'm starting work at LANL tomorrow, and hopefully I'll get the Internet turned on at home. It's really boring sitting in an empty apartment with no family, no TV, and no Internet! If any of you get the chance, send Becky an encouraging email or Facebook message... it's tough dealing with a toddler by your lonesome!